Junior
Čo sú mikroservisy?
sobes.tech AI
Odpoveď od AI
Mikroslužby sú architektonický štýl, pri ktorom sa aplikácia stavia ako súbor malých, autonómnych služieb, z ktorých každý vykonáva určitú obchodnú funkciu.
Hlavné charakteristiky:
- Malé a zamerané: Každá služba rieši jeden úzky úlohu.
- Autonómne: Môžu sa vyvíjať, nasadzovať a škálovať nezávisle.
- Decentralizované riadenie údajov: Každá služba môže mať vlastnú databázu.
- Medzislužobná komunikácia: Zvyčajne prebieha cez ľahké protokoly (napr. REST, gRPC).
- Odolnosť voči chybám: Chyba jednej služby nevedie nevyhnutne k zlyhaniu celej aplikácie.
- Technologická heterogenita: Rôzne služby môžu používať rôzne programovacie jazyky a technológie.
Výhody:
- Rýchlejší vývoj a nasadenie.
- Lepšia škálovateľnosť jednotlivých komponentov.
- Zvýšená odolnosť.
- Jednoduchšie zavádzanie nových technológií.
Nevýhody:
- Zvýšená zložitosti systému ako celku.
- Potreba riadenia distribuovaných transakcií.
- Ťažkosti s monitoringom a ladením.
- Vyžaduje zrelšiu kultúru DevOps.
Porovnanie s monolitom:
| Charakteristika | Mikroslužby | Monolit |
|---|---|---|
| Veľkosť | Malé, zamerané služby | Jedna veľká aplikácia |
| Nasadenie | Nezávislé nasadenie služieb | Nasadenie celej aplikácie |
| Škálovanie | Škálovanie jednotlivých služieb | Škálovanie celej aplikácie |
| Odolnosť | Vysoká (zlyhanie jednej služby nie je kritické) | Nízka (zlyhanie komponentu ovplyvňuje všetko) |
| Technológie | Možnosť použitia rôznych stackov | Jednotný stack technológií |
| Vývojový tím | Malé autonómne tímy | Jeden veľký tím |
| Zložitosť | Vysoká (interakcia služieb) | Nízka (pre jednoduché aplikácie) |
| Riadenie údajov | Decentralizované | Centralizované |