Programowanie

Monolit vs Mikroserwisy vs ?

Na konferencji BoilingFrogs (o której pisałam tutaj) byłam na prezentacji Łukasza Szydło „Modularity – the final frontier” dotyczącej architektury modularnej. Zainspirowała mnie ona do napisania tego wpisu.

Monolit vs Mikroserwisy

Zwykle to, co słyszymy na różnych konferencjach to

Monolity są be, a mikroserwisy są super!

I co mamy zrobić z taką informacją? Wiele utworzonych aplikacji to stare, ciężkie monolity. Mamy teraz rzucić wszystko i przepisać całość na podejście mikroserwisowe? Tak od razu? Monolit -> Mikroserwisy?

Czy mamy tylko te 2 opcje?

No właśnie niekoniecznie. Zmiana całej architektury aplikacji to poważna sprawa. Trzeba się za nią zabrać z pomysłem i wdrażać stopniowo.

Jednym z ważnych aspektów, o których wspomniał Łukasz, było pokazanie, że istnieją inne rozwiązania, niż zwykły monolit lub mikroserwisy. Istnieją etapy pośrednie.

modularity

Okazuje się, że może być coś gorszego od monolitu – czyli próba utworzenia rozproszonego monolitu. Może to się kończyć przykładowo deployem wielu aplikacji na raz.

Ale może być też coś lepszego od zwykłego monolitu! Jest to efektywny, modularny monolit. Może on być etapem pośrednim przy dążeniu do wprowadzenia struktury mikroserwisowej. Ale może również istnieć sam, bez potrzeby późniejszego przekształcania go na mikroserwisy.

Podsumowanie

Droga od monolitu do mikroserwisów może być trudna. Należy pamiętać, żeby w trakcie stopniowej (!) zmiany architektury stawiać na modularność (tworząc modularny monolit), a nie na rozproszenie (rozproszony monolit).

3 myśli na temat “Monolit vs Mikroserwisy vs ?

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Connecting to %s