Architektura
Monolith vs microservices: kdy co použít
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.