Mikroserwisy (ang. microservices) to podejście do tworzenia aplikacji podzielonych na wiele modułów. Każdy moduł jest odpowiedzialny za jedną funkcjonalność i komunikuje się z innymi, tworząc spójną całość – aplikację lub system. Taki podział ułatwia zarządzanie i rozwój – odseparowaną funkcjonalność można wymienić, ulepszyć lub naprawić bez zaburzania pracy całości aplikacji.
Tym samym mikroserwisy utrzymują stałą dostępność, nie narażając firm na straty finansowe oraz ułatwiają rozwój aplikacji. Dzięki temu stały się bardzo popularne w ostatnich latach, szczególnie w kontekście aplikacji internetowych i chmury.
Najważniejsze cechy mikroserwisów: #
- Ich modularność ułatwia zarządzanie kodem, testowanie, debugowanie i wdrażanie go.
- Mogą być skalowane niezależnie, czyli umożliwiają zwiększanie lub zmniejszanie zasobów tylko w tych częściach systemu, które tego wymagają. Zapewnia to efektywne wykorzystanie dostępnych zasobów.
- Gwarantują elastyczność w tworzeniu aplikacji – każda funkcjonalność może być napisana w innym języku programowania i używać różnych technologii.
- Zapewniają wysoką dostępność – awaria jednego serwisu zazwyczaj nie wpływa bezpośrednio na działanie pozostałych.
- Najlepiej sprawdzają się w środowisku kontenerowym.
- Wymagają jednak odpowiedniej wiedzy i konfiguracji do działania: efektywnego mechanizmu komunikacji, automatyzacji procesów CI/CD oraz skutecznego monitoringu, który szybko wykryje i umożliwi rozwiązanie problemów.
Mikroserwisy – kiedy stosować? #
Mikroserwisy to podejście, które najlepiej sprawdza się w dużych, złożonych systemach, gdzie wymagana jest wysoka skalowalność i elastyczność. Nie jest to jednak rozwiązanie uniwersalne i w niektórych przypadkach tradycyjna monolityczna architektura może być bardziej odpowiednia.