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

FaktorV praxi
Konfiguracekonfigurace přichází z prostředí, ne z image
Procesybezstavové; stav patří do backing service nebo na volume
Disposabilityrychlý start, korektní ukončení po SIGTERM
Logyzapisovat 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.

Reference