Fb cover2

Mikroserwisy to gorący temat, który kilka lat temu szumnie wkroczył na salony IT. Chociaż zagadnienie nie jest nowe, to nadanie chwytliwej nazwy oraz zbioru reguł stosowania, zachęciło „dużych” do zmiany podejścia w tworzeniu złożonych systemów, w których szczególny nacisk kładzie się na ich skalowalność.

 

Mikroserwisy zwane również architekturą mikroserwisów – to styl programowania, w którym całość aplikacji tworzą luźno ze sobą połączone, współpracujące serwisy, każdy odpowiadający za fragment funkcji biznesowych całego systemu. W przeciwieństwie do architektury ‘monolitu’, nowy deweloper dołączający do zespołu skupiony na pojedynczym serwisie może szybciej rozpocząć prace implementacyjne - mniejsza baza kodu źródłowego, łatwiejszy do testowania. Dzięki temu, że każdy serwis może być ‘wydawany’ niezależnie od pozostałych, możemy sobie pozwolić na wydawanie kolejnych wersji z większą częstotliwością. Ponadto nie jesteśmy uwiązani jednym zestawem technologii – tworząc następny serwis możemy adoptować nowe technologie.

 

Z perspektywy Java Developer’a_

Podczas tworzenia nowego projektu, pytanie jakie się zawsze pojawia to jaki zestaw technologii pozwoli nam osiągnąć zaplanowany cel. Z perspektywy Java Developer’a, naturalnym wyborem wydaje się Spring Framework. Przemawia za tym niewątpliwe duża ilość bibliotek rozszerzających podstawową funkcjonalność o funkcje takie jak między innymi uwierzytelnianie i autoryzację, komunikację z bazami danych, obsługę systemów rozproszonych. Konfiguracja wszystkich elementów dla każdego z serwisu może odstraszać, jednak i na to jest rozwiązanie w postaci Spring Boot, który potrzebę wstępnej i sensownej konfiguracji załatwia za nas. Aplikacje Spring Boot domyślnie budowane są do postaci jar, który oprócz naszej aplikacji zawiera również kontener aplikacji webowych Tomcat. Uruchomienie całej aplikacji sprowadza się zatem do uruchomienia polecenia ‘java - jar’. Wykorzystując możliwości zestawu bibliotek Spring Cloud, możemy szybko zbudować docelową architekturę mikroserwisów zawierającą standardowe wzorce jak Gateway – umożliwiający dostęp do API każdej usługi, Discovery Service – będący rejestrem działających usług.

 

A jak to wszystko wdrożyć_?

Możemy tutaj skorzystać z technologii, która zdobyła dużą popularność na serwerach, w wielu przypadkach zastępując klasyczną wirtualizację. Mowa tutaj o narzędziu Docker, który pozwala nam stworzyć kontenery dostarczające środowisko dla naszych aplikacji. Główną zaletą Dockera w przeciwieństwie do wirtualizacji jest fakt, że możemy uruchomić nasze serwisy w wydzielonych kontenerach, bez konieczności emulowania warstwy sprzętowej i systemu operacyjnego. Przekłada się to na lepsze wykorzystanie dostępnych zasobów i mniejsze koszty utrzymania. Środowisko wirtualne utworzone z pomocą Dockera będzie działało dokładnie tak samo, niezależnie od tego gdzie zostało uruchomione. Ponadto kontenery są odizolowane od systemu operacyjnego oraz pozostałych kontenerów, co doskonale pasuje do naszej architektury mikroserwisów, gdzie każda usługa ma działać niezależnie. Każdy serwis utworzony z wykorzystaniem Spring Boot, stanowiłby osobny kontener, dzięki czemu dostarczenie nowej wersji dowolnego serwisu nie wymagałby redoploya pozostałych usług.

 

 

Chcesz rozwijać się w Connectis_? Zobacz nasze aktualne OFERTY PRACY. :)