Mikroserwisy to styl architektury, w którym aplikacja jest podzielona na małe, niezależne usługi, z których każda odpowiada za jedną funkcję i komunikuje się z innymi przez API. Przeciwieństwem jest monolit.
Mikroserwisy a monolit
Monolit to jedna aplikacja wdrażana jako całość, prostsza w rozwoju na początku. Mikroserwisy pozwalają niezależnie rozwijać i skalować poszczególne części kosztem większej złożoności.
Zalety mikroserwisów
- niezależne wdrażanie i skalowanie usług,
- możliwość użycia różnych technologii,
- awaria jednej usługi nie wyłącza całości,
- łatwiejszy podział pracy w dużych zespołach.
Wady i ryzyka
Trzeba zarządzać komunikacją sieciową, spójnością danych i monitoringiem wielu usług. W małych projektach taki podział często jest przerostem formy (overengineering).
Kiedy warto przejść na mikroserwisy?
Gdy zespół i produkt urosły tak, że jedna baza kodu spowalnia pracę, części systemu mają bardzo różne wymagania skalowania albo zespoły chcą wdrażać niezależnie. Rozsądnie jest zacząć od dobrze zorganizowanego monolitu i wydzielać usługi stopniowo. Przedwczesny podział generuje koszt infrastruktury, który bardzo trudno cofnąć.
