
Mikroserwisy dla biznesu czy może monolit?
29.06.2022
Monolit czy mikroserwisy dla biznesu – zadawałeś już sobie to pytanie? Rozpoczynając rozważania na temat mikroserwisów i ich znaczenia dla biznesu warto zastanowić się nad specyfiką czasów, w których żyjemy. Czy bez szybkich zdolności adaptacyjnych możliwy jest jeszcze stały rozwój? Co z elastycznym podejściem biznesu już nie tylko w kontekście potrzeb klienta ale i zmieniających się uwarunkowań społecznych, politycznych? O nieustannym rozwoju i konieczności rywalizacji z konkurencją słyszymy na każdym kroku. Pojęcie architektury mikroserwisowej wychodzi obecnie na jeden z pierwszych planów rozwoju i budowy aplikacji. Pytanie, czy należy ślepo podążać za tym trendem?
Odpowiedzi musimy udzielić zgodnie z naszą wiedzą i doświadczeniem. Nie może ona brzmieć inaczej jak: „to zależy”.
Monolit czy mikroserwisy dla biznesu? Które podejście sprawdzi się lepiej?
Do niedawna większość światowych gigantów, jak: Coca Cola, Zalando, Netflix startowała od architektury monolitycznej. Podstawowym plusem zastosowania takiego podejścia jest czas realizacji. Jeśli mówimy o początkowej fazie rozwoju stosunkowo niewielkiej z założenia aplikacji, to często właśnie monolit wygrywa z mikroserwisami. Dlaczego? Bo pozwala sprawnie uruchomić aplikację a tym samym wystartować z własnym biznesem. Na start lub w przypadku niewielkich systemów działania na tym samym kodzie można prowadzić efektywnie, a co najważniejsze zaangażowanych w nie jest mniej programistów. Stworzenie solidnej architektury monolitycznej to pierwszy krok. Pytanie co z dalszą rozbudową systemu?
Wyobraźmy sobie sytuację, w której bardzo schematycznie omawiamy proces budowy i rozwoju aplikacji do obsługi procesu reklamacji:

W przypadku, gdy chcemy szybko stworzyć taką aplikacje rzeczywiście architektura monolityczna może sprawdzić się bardzo dobrze. Mamy proste funkcjonalności (ikonki) a każda z nich stanowi integralną część jednego kodu (symbol okręgu). Wdrożenie takiej aplikacji przebiegnie stosunkowo szybko. Jeśli jednak po drodze pojawią się jakieś problemy w jednej funkcjonalności, automatycznie wstrzyma to dalsze działania we wszystkich pozostałych. Sytuacja będzie wyglądała bardzo podobnie, gdy firma zaplanuje dalszą rozbudowę aplikacji:
- dodanie nowych funkcjonalności
- rozwijanie obecnych
Jeśli cele biznesowe Twojej firmy zakładają stały rozwój i planujesz elastycznie reagować na otaczające Cię zmiany, zastanów się mocno nad wyborem monolitu. Jeśli jednak rozumiesz różnice w obu podejściach lecz zależy Ci na błyskawicznym uruchomieniu podstawowej aplikacji, jesteś we właściwym miejscu. Śmiało możesz wystartować z monolitem a później przejść na mikroserwisy. Właśnie takie było podejście gigantów wspomnianych wcześniej.
Jak analogiczna sytuacja będzie wyglądała w ujęciu architektury mikroserwisowej?

Stworzenie aplikacji opartej o architekturę mikroserwisową w biznesie opłaci się wówczas, gdy system jest złożony lub od razu wiadomo, że trzeba będzie go mocno rozbudowywać. Wydzielone funkcjonalności stają się wówczas mikroserwisami. Nad ich rozwojem pracują dedykowane zespoły, każdy koncentruje uwagę wyłącznie na własnym zadaniu. Połączone mikroserwisy tworzą efektywnie działającą aplikację. Dużym plusem tego podejścia jest możliwość elastycznego rozwoju wybranych funkcjonalności i szybkie eliminowanie błędów. W przypadku mikroserwisów dla biznesu warto zwrócić szczególną uwagę na optymalizowanie komunikacji pomiędzy wydzielonymi usługami oraz na samą infrastrukturę.
Za i przeciw – szybkie podsumowanie
Mikroserwisy dla biznesu umożliwiają nieograniczone skalowanie aplikacji. Współcześnie to nieoceniony atut, który pozwala efektywnie budować przewagę konkurencyjną. W przypadku, gdy konkretna funkcjonalność wymaga zwiększenia zasobów, można to zrobić błyskawicznie, bez konieczności rozbudowy całej aplikacji. Bardziej złożoną kwestią jest zarządzanie całością – bez doświadczonego partnera, który poznał tajniki tworzenia i rozbudowy złożonych systemów w skali Enterprise, całe przedsięwzięcie może okazać się sporym wyzwaniem. Podstawą jest optymalne zaprojektowanie i wdrożenie komunikacji miedzy poszczególnymi mikroserwisami. Tylko w ten sposób cała aplikacja będzie efektywnie spełniać swoje funkcje. Nie można zapomnieć o stałym monitorowaniu działania poszczególnych usług, by odpowiednio wcześniej zapobiegać nieplanowanym awariom.
Można odnieść wrażenie, że monolit w kontekście realizowania celów biznesowych jest obecnie uznawany za podejście przestarzałe. Szczerze? Nie jest to prawda! Aplikacja stworzona zgodnie z założeniami podejścia monolitycznego może efektywnie działać przez długi czas. Oczywiście wówczas, gdy została dobrze zaprojektowana. Dobrze to znaczy w taki sposób, by była w stanie realizować cele biznesowe konkretnej firmy. Jeśli dodamy do tego regularną troskę o samą aplikację i utrzymanie jej poprawnego funkcjonowania, na pewno nas nie zawiedzie. Monolit doskonale sprawdzi się w tych przedsiębiorstwach, w których mamy do czynienia z niską różnorodnością usług. Ważny jest też sektor działalności. Jeśli obserwowane zmiany w środowisku biznesowym przez wiele lat utrzymują się na podobnym poziomie i jest to specyficzny obszar działalności – aplikacja monolityczna prawdopodobnie będzie najlepszym wyborem.
Zazwyczaj realia wielu firm na starcie wyglądają w bardzo podobny sposób: pojawia się potrzeba stworzenia jednej, centralnej aplikacji. Takiej, która pozwoli wystartować z biznesem i umożliwi realizację podstawowych celów. W takich przypadkach architektura monolitu jest mało skomplikowana i zespół developerów może bardzo szybko rozpocząć prace. Jeśli założymy, że cały system będzie obciążony tylko jednym procesem, to całość, która powstanie będzie bardzo wydajna. W przypadku działania na jednym kodzie nie będą się pojawiały kłopoty z komunikacją (usługi nie są tu przecież rozproszone).
Jednak problemy pojawią się gdy przedsiębiorstwo będzie chciało rozszerzyć zakres swoich działań. W przypadku monolitu zazwyczaj skalować można jedynie całą aplikację a cały system jest … kruchy. Wystarczy jeden błąd by cała aplikacja przestała realizować przyjęte funkcje. A to już poważna komplikacja biznesowa. Tym samym wprowadzanie jakichkolwiek zmian często jest bardzo kosztowne. Sprawy nie ułatwia również stosunkowo wolna reakcja na wystąpienie awarii.
Indywidualne podejście to podstawa
W przypadku tworzenia jakiegokolwiek systemu IT warto od samego początku mieć na uwadze jedną, podstawową zasadę: prawdziwą siłą Twojego przedsiębiorstwa będzie system dopasowany dokładnie do tego, czego potrzebujesz. I nie jest to jedynie pusty slogan. Aplikacja monolityczna czy mikroserwisy dla biznesu – wybór odpowiedniego podejścia pozwala wyeliminować możliwe problemy w późniejszych etapach eksploatacji i rozwoju systemu. Dlatego nie można mówić tutaj o uniwersalnym podejściu i tezie opartej wyłącznie na faworyzowaniu mikroserwisów jako bardziej nowoczesnej koncepcji.
Dla kogo więc są omawiane podejścia? Odpowiadamy infografiką:

Czy zastanawiałeś się kiedyś, dlaczego tak potężne marki, jak LinkedIn, Twitter, Netflix zaczynały od aplikacji stworzonej w architekturze monolitycznej? Odpowiedzi może być kilka, ale bez wątpienia przemawiały za tym następujące argumenty:
- bardzo łatwo można tutaj określić wymagania na start
- monolit jest na starcie łatwiejszy w utrzymaniu niż mikroserwisy
- biznes może wystartować szybko a aplikacja spełnia podstawowe założenia
- zapewnienie bezpieczeństwa jest tu łatwiejsze, gdyż komunikacja odbywa się w pamięci (mikroserwisy – po sieci)
- infrastruktura, która umożliwia poprawne działanie aplikacji nie rośnie tak dynamicznie, jak w przypadku mikrousług
- to podejście dobre dla firm, które na starcie mają trudności w określeniu dokładnych kierunków rozwoju (a jest to niezwykle trudne w przypadku młodych biznesów)
Czy złoty środek w tworzeniu aplikacji w ogóle istnieje?
Oczywiście! Jeśli system, którego potrzebuje Twoja firma ma być niewielki i powinien obsługiwać jeden proces – wybierz monolit. Na start to dobra opcja. Jeśli dodatkowo zależy Ci na tym, by nie utrudniać sobie możliwości rozwoju w przyszłości postaw na monolit modularny. Dlaczego? W praktyce monolit modularny powstał jako ewolucja tradycyjnego podejścia monolitycznego. Wszystko po to, by w nieskomplikowany sposób można było przekształcić aplikację monolityczną w mikroserwisy. A to już realny plus i szanse na bezproblemowe podzielenie systemu na mikrousługi wtedy, gdy Twój biznes rzeczywiście będzie tego potrzebował.
Taka ścieżka rozwoju oprogramowania pozwoli Ci optymalizować koszty oraz kontrolować efektywność realizowanych celów biznesowych. Zyskujesz również czas na wyklarowanie szczegółowej wizji swojego przedsiębiorstwa, co ułatwi tworzenie złożonej architektury mikrousług w przyszłości. Znalezienie konkretnych obszarów funkcjonalnych jest łatwe, gdy dokładnie poznasz swoje długoterminowe cele biznesowe.
Zastanawiasz się, które podejście jest dla Ciebie? Po przeczytaniu tego artykułu pojawiły się w Twojej głowie dodatkowe pytania? Opowiedz nam o nich. Doradzimy optymalne podejście, gdy bliżej poznamy Twoje przedsiębiorstwo i jego potrzeby. Kontakt
Monolit czy mikroserwisy dla biznesu – wniosek
Opisane powyżej przykłady nie wyczerpują w pełni tematu różnic między architekturą monolityczną a mikroserwisami dla biznesu. W naszej ocenie cechy wybrane do omówienia stanowią elementy najczęściej wykorzystywane do prezentacji wyższości mikroserwisów nad monolitem. Należy zawsze pamiętać, że są to podejścia alternatywne lub wariantowe. Nie powinno się w żaden sposób zakładać bezwzględnej wyższości jednego podejścia nad drugim.