Powrót do bloga
Technology

Czym różni się aplikacja typu Monilith od architektury API-Client?

Autor Kamil Zawadzki Managing Partner
W świecie programowania jest niewiele terminów tak często omawianych i dyskutowanych jak architektury monolityczna (Monolith) i mikroserwisów (API-Client). Na początku warto podkreślić, że nie ma jednoznacznej odpowiedzi, które rozwiązanie jest lepsze. W zależności od potrzeb, czasu, budżetu, funkcjonalności systemu musimy rozważyć poszczególne właściwości obu rozwiązań. Przybliżymy to zagadnienie i postaramy przedstawić wady i zalety obu koncepcji.

Czym jest architektura typu Monolith?

Monolith jest postrzegany jako klasyczna metoda developmentu. Sama idea oparcia architektury o jedną aplikację ma długą historię. Jest pozostałością czasów gdzie najczęściej jeden mocny komputer obsługiwał wielu klientów. Monolith możemy traktować jako rozwiązanie nierozproszone. Interfejs użytkownika, logika biznesowa, obsługa danych i aplikacje istnieją jako jedna całość. Monolith jest dużą, samodzielną strukturą, w której wszystko jest zbudowane liniowo. Daje to możliwość pełnej kontroli każdego aspektu i zadania jakie ma wykonać aplikacja.

Konsekwencją takiej budowy jest wzrost komplikacji systemu wraz ze wzrostem złożoności problemu oraz zwiększenie zapotrzebowania mocy obliczeniowych. W pewnym momencie system może stać się zbyt duży i nieporęczny.


Czym jest architektura API-Client?

Powstanie architektury Api-Client, zwanej również architekturą mikrousług lub mikroserwisów, było odpowiedzią na problemy architektury monolitycznej. Komunikacja API została stworzona w celu rozwiązania podstawowych problemów, głównie poprzez rozdzielenie zadań na pojedyncze mikrousługi. Mikrousługi lub mikroserwisy tworzone są jako osobny segment, jako część zbiorczej grupy usług.  Mikrousługa może być samodzielna, ale zwykle działa jako jedna z wielu usług, które pozostają ze sobą w relacji i składają się na cały proces. Użytkownik, może korzystać z jednego interfejsu, tak jak w przypadku architektury monolitycznej, ale poszczególne wywołania będą kierowane do osobnych mikroserwisów, nie obciążając całej aplikacji. Dodatkową zaletą jest możliwość łatwej modyfikacji, dołączania, odłączania poszczególnych mikroserwisów bez ingerencji w całe środowisko aplikacji.

Interfejsy API są wykorzystywane do komunikacji, gdzie każda mikrousługa posiada swoją autonomię oraz reprezentuje zdefiniowany zakres z określoną funkcją.

Porównanie

Zalety architektury monolitycznej:

Wady architektury monolitycznej:

Zalety architektury mikrousług:

Wady architektury mikrousług:

Podsumowanie

Ciężko jednoznacznie stwierdzić czy architektura monolityczna jest lepsza od architektury Client-API. Każde z rozwiązań ma swoje zalety i jest zalecane przy określonych warunkach. Wybór zależy między innymi od celu, budżetu, czasu jaki mamy na tworzenie i wdrożenie systemu. Aplikacje monolityczne zdecydowanie lepiej sprawdzają się przy małych projektach o niewielkim budżecie. Architektura mikroserwisów natomiast przyniesie wiele korzyści przy rozbudowanych projektach o złożonej strukturze. 

Kamil Zawadzki
Managing Partner
Dynamiczny lider z rozległą wiedzą techniczną w dziedzinie programowania. Jest zwolennikiem architektury SOLID i prostych rozwiązań (KISS), zawsze dopasowując swoje podejście do potrzeb biznesowych.
Udostępnij

Pomożemy Ci osiągnąć cele biznesowe

Pomożemy Ci osiągnąć cele biznesowe

Porozmawiajmy o Twoich wyzwaniach
Podobne artykuły

Flutter - wszystko co powinieneś wiedzieć
Flutter to świeże rozwiązanie zaproponowane przez Google, umożliwiające tworzenie natywnych aplik...
IP Box a działalność software house i samodzielnych programistów
Pracujesz w branży programistycznej? W takim razie na pewno już słyszałeś o obowiązującej od zesz...
Rodzaje skalowalności systemów architektury hostingowej skalowalność horyzontalna i wertykalna
Przeciążenie systemów to jeden z najmniej przyjemnych elementów pracy programisty. Liczba użytkow...