Mikroslužby vs.
Monolitická architektura

Dva přístupy k návrhu moderních systémů

Pokročilé programování

Bc. Pavel Bařina & Bc. Adam Novák
Univerzita Tomáše Bati

UTB
1 / 13

Co je softwarová architektura?

2 / 13

Monolitická architektura

3 / 13

Výhody monolitu

4 / 13

Nevýhody monolitu

5 / 13

Mikroslužby

6 / 13

Komunikace mezi mikroslužbami

7 / 13

Výhody mikroslužeb

8 / 13

Nevýhody mikroslužeb

9 / 13

Porovnání vlastností

Vlastnost Monolith Mikroslužby
Škálovatelnost Nízká — škáluje se celek Vysoká — škálují se části
Komplexita Nízká — jednoduchá struktura Vysoká — více služeb
Nasazení Jedno — vše najednou Oddělené — každá služba zvlášť
Snadnost startu Snadný — jeden projekt Složitější — více částí
Izolace chyb Nízká — chyba ovlivní vše Vysoká — chyba jen v jedné službě
Lokální vývoj Jednoduchý Náročnější — více služeb
Operační náklady Nízké — méně infrastruktury Vysoké — správa služeb
10 / 13

Reálné příklady z praxe

✦ Mikroslužby
Netflix700+ mikroslužeb, 2M+ req/s
AmazonPrůkopníci mikroslužeb
Uber2000+ mikroslužeb
VS
✦ Monolit (úspěšně)
ShopifyRails monolit, $7B+ obratu
Stack Overflow1B+ req/měsíc, ~9 serverů
BasecampRails monolit — filosofie
11 / 13

Kdy co použít?

view_in_ar
Monolit
  • Malý tým (2–8 vývojářů)
  • Nový / neověřený produkt
  • Jednoduchá doména
  • Rychlá iterace
  • Omezené DevOps kapacity
  • MVP — rychle na trh
VS
hub
Mikroslužby
  • Více autonomních týmů
  • Skutečné škálovací požadavky
  • Jasné doménové hranice
  • Nezávislé release cykly nutné
  • Zralá DevOps kultura
  • Miliony requestů denně
12 / 13

Zdroje

13 / 13