Ta strona wykorzystuje pliki cookie w celu prezentacji dopasowanych dla Ciebie treści. Możesz włączyć/wyłączyć obsługę plików cookies w swojej przeglądarce.

Dowiedz się więcej
Mikroserwisy w Javie - czym są i kiedy warto je stosować?

Mikroserwisy w Javie - czym są i kiedy warto je stosować?

Opublikowano  przez Marek Zoellner

Mikroserwisy to bardziej dojrzałe podejście do tworzenia architektury oprogramowania, gdzie cały program składa się z mniejszych, niezależnych elementów komunikujących się ze sobą. Dzięki nim możemy zdekomponować tradycyjną, monolityczną aplikację na zwinne mikroserwisy i umieścić je w chmurze.

W kilku zdaniach można to wyjaśnić w ten sposób: monolit (ang. monolithic application) jest to system, który został stworzony w ramach jednej aplikacji. Z reguły systemy takie definiowane są jako systemy samowystarczalne i pozbawione modularności, realizujące wiele funkcji z różnych dziedzin biznesu - kolokwialnie mówiąc - wielki klocek odpowiedzialny za wszystko.

Szkolenia PRO (dla doświadczonych)

Architektura mikroserwisów jest zaś architekturą systemu rozproszonego, gdzie cały system składa się z wielu odseparowanych od siebie komponentów, a każdy z tych komponentów jest odpowiedzialny za pewną domenę funkcjonalności. Taki pojedynczy komponent nazywamy mikroserwisem (ang. microservice). To niewielkich rozmiarów aplikacje udostępniające specjalny zestaw usług.

Zalety mikroserwisów:

  • odporność na awarię i wpływ działania pojedynczego komponentu na dostępność innych usług,
  • do tworzenia oprogramowania systemu możemy zastosować różne technologie i różne sposoby komunikacji wewnątrz systemu - REST, kolejki itp.,
  • przez wzgląd na to, że pojedynczy mikroserwis powinien być niewielką aplikacją, programiści powinni mieć niski próg wejścia, aby wprowadzać zmiany. Wdrożenie nowej wersji oprogramowania zwykle będzie ograniczać się do zrobienia deploy’u konkretnego mikroserwisu.

Są oczywiście i wady, takie jak: utrudniona analiza logów, problem z transakcyjnością, a także fakt, że zwykle jeden zespół pracuje nad kilkoma (1-5) mikroserwisami, a pozostałe zespoły nad kolejnymi, co powoduje problemy z utrzymaniem tej samej jakości i jednolitych technik pisania kodu.

Mikroserwisy z perspektywy Java Developera

Sporo artykułów na temat mikroserwisów można znaleźć w portalu Bulldogjob. W jednym z nich również czytamy, że dzięki nim:

“(...) nowy developer 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.”

Inny tekst potwierdza, że choć rozproszona architektura w oparciu o mikroserwisy to rozwiązanie bardziej skomplikowane niż monolit i wymagające większej ilości pracy i uwagi (zarówno na etapie projektowania, jak i wdrażania), zapewnia ona jednak wysoką skalowalność oraz odporność na awarie.

“Z pewnością jest to dobre rozwiązanie dla firm, które szybko potrzebują wdrażać nowe zmiany, skalować swój biznes i pozwolić na autonomiczny, równoległy rozwój wielu jego gałęzi. Jeżeli jednak istnieje potrzeba szybkiego i tańszego uruchomienia mniej skomplikowanego projektu, to monolit nadal jest opcją do rozważenia” .- czytamy

Przeczytaj również:

Mikroserwisy - oferty pracy dla programistów

Ofert pracy, w których można znaleźć wymagane doświadczenie związane z architekturą mikroserwisową, nie brakuje. Dotyczy to zarówno developerów z wieloletnim stażem i umiejętnościami na wysokim poziomie, midów/regularów, jak i juniorów.

Oto jedna z przykładowych ofert z Bulldogjoba dla juniora z minimum rocznym komercyjnym doświadczeniem w obszarze Java. Fragment opisu z oferty:

“W zależności od wymagań klienta biznesowego będziesz zaangażowany w rozwój architektury opartej o mikroserwisy i hostowanej w chmurze (np. AWS, GCP, Azure).”

Poza doświadczeniem wymagano:

  • Praktycznego doświadczenia w wykorzystaniu podstawowych funkcjonalności frameworka Spring (np. Spring Boot/Hibernate).
  • Płynnego posługiwania się językiem angielskim. Umiejętności pracy z platformą Docker.
  • Znajomości platformy Kubernetes.
  • Doświadczenia/znajomości rozwiązań chmurowych: AWS, Azure, GCP. Znajomości procesów CI/CD.

W innym ogłoszeniu, tym razem w portalu Just Join IT, od juniora wymaga się 1-2 lat doświadczenia jako Fullstack Developer zorientowany w obszarze Java, na drugim miejscu wśród wymagań wymieniono zaś właśnie znajomość architektury mikroserwisowej. Trzeba mieć też doświadczenie z AWS oraz znać Java Spring Boot i J2EE.

Naucz się tworzyć mikroserwisy

To jednak tylko niewielki fragment zagadnień towarzyszących pojęciu mikroserwisów i nauce ich zastosowania. Szerzej omawiamy je w trakcie naszego szkolenia PRO - Mikroserwisy w Javie. Jest to kurs online z indywidualnym Mentorem dla osób, które chcą poszerzyć kompetencje z programowania w Javie, znających ten język na poziomie junior/regular. Wymagana jest także wiedza w zakresie Spring i REST API.

Czego się nauczysz?

  • Tworzenia mikroserwisów i umieszczanie ich w chmurze,
  • technik komunikowania się mikroserwisów między sobą,
  • sposobów zarządzania i monitorowania farmy mikroserwisów,
  • podstaw konteneryzacji,
  • popularnych rozwiązań chmurowych i ich modeli.

Mikroserwisy w Javie

Umów się na rozmowę z doradcą Kodilli