Monolith není sprosté slovo. A microservices nejsou silver bullet.
Monolith¶
- ✅ Jednoduchý development a deployment
- ✅ Žádná network latence mezi službami
- ✅ Jednoduchý debugging
- ✅ Jedna databáze, jednoduché transakce
- ❌ Škáluje jako celek
- ❌ Jeden tým, jeden deploy
- ❌ Technologicky homogenní
Microservices¶
- ✅ Nezávislý deployment
- ✅ Škálování per službu
- ✅ Technologická diverzita
- ✅ Izolace chyb
- ❌ Distribuovaný systém complexity
- ❌ Network latence
- ❌ Distributed transactions
- ❌ Potřebujete DevOps maturity
Kdy monolith¶
- Malý tým (<10 vývojářů)
- Early stage startup
- Nejasné domain boundaries
- Chcete rychle shippovat
Kdy microservices¶
- Velký tým (>20 vývojářů)
- Jasné domain boundaries
- Potřebujete nezávislý deployment
- Různé škálovací požadavky per služba
Modular monolith — nejlepší z obou¶
Monolith s jasnými moduly/boundary kontexty. Můžete ho později rozdělit na microservices, pokud bude potřeba.
Pravidlo¶
Start with a monolith. Split when it hurts (not before). A microservices is not a goal — it’s a solution to a specific problem.
architekturamicroservicesmonolith