Služby a mikroslužby
Služby a mikroslužby
Monolit
Jeden artefakt, jedno nasazení, jeden runtime. Vnitřní volání jsou volání metod.
Výhody: jedna nasaditelná jednotka, žádná síť mezi moduly. Nevýhody: dlouhý release cyklus, škáluje se jen jako celek, těžko se dělí mezi týmy.
Mikroslužby
graph LR
C[Klienti] --> G[API Gateway]
G --> B[Book service]
G --> R[Review service]
B --> BD[(Book DB)]
R --> RD[(Review DB)]
Každá služba se vyvíjí, nasazuje, škáluje a povyšuje samostatně a může vlastnit svou databázi.
Struktura je stabilní, když je volně svázaná a silně soudržná.
- Volná vazba – služby spolu mluví přes API; změna uvnitř jedné nevynutí změnu v druhé.
- Soudržnost – jedna služba vlastní právě jeden kus dat.
12-Factor – čtyři, které rozhodnou o vašem týdnu
| Faktor | V praxi |
|---|---|
| Konfigurace | konfigurace přichází z prostředí, ne z image |
| Procesy | bezstavové; stav patří do backing service nebo na volume |
| Disposability | rychlý start, korektní ukončení po SIGTERM |
| Logy | zapisovat na stdout/stderr, nikdy do souboru v kontejneru |
Aplikace, která tato pravidla porušuje, se s Kubernetes popere celý týden:
nepřežije přeplánovaný pod, rolling update ani kubectl logs.