Junior
Co jsou mikroservisy?
sobes.tech AI
Odpověď od AI
Mikroslužby jsou architektonální styl, při kterém je aplikace postavena jako soubor malých, autonomních služeb, z nichž každá vykonává určitou obchodní funkci.
Hlavní charakteristiky:
- Malé a zaměřené: Každá služba řeší jeden úzký úkol.
- Autonomní: Mohou být vyvíjeny, nasazovány a škálovány nezávisle.
- Decentralizované řízení dat: Každá služba může mít vlastní databázi.
- Interakce mezi službami: Obvykle přes lehké protokoly (například REST, gRPC).
- Odolnost vůči chybám: Selhání jedné služby nutně nevede k selhání celé aplikace.
- Technologická heterogenita: Různé služby mohou používat různé programovací jazyky a technologie.
Výhody:
- Rychlejší vývoj a nasazení.
- Lepší škálovatelnost jednotlivých komponent.
- Zvýšená odolnost.
- Snazší zavádění nových technologií.
Nevýhody:
- Zvýšená složitost celkového systému.
- Nutnost správy distribuovaných transakcí.
- Těžkosti s monitoringem a laděním.
- Vyžaduje zralejší kulturu DevOps.
Porovnání s monolity:
| Charakteristika | Mikroslužby | Monolit |
|---|---|---|
| Velikost | Malé, zaměřené služby | Velká aplikace |
| Nasazení | Nezávislé nasazení služeb | Nasazení celé aplikace |
| Škálovatelnost | Škálování jednotlivých služeb | Škálování celé aplikace |
| Odolnost vůči chybám | Vysoká (selhání jedné služby není kritické) | Nízká (selhání komponenty ovlivňuje vše) |
| Technologie | Možnost použití různých technologií | Jednotný technologický stack |
| Vývojový tým | Malé autonomní týmy | Velký tým |
| Složitost | Vysoká (interakce mezi službami) | Nízká (pro jednoduché aplikace) |
| Správa dat | Decentralizovaná | Centralizovaná |