Monolith pakira vso funkcionalnost v enega samega razporedljivega bloka; mikrostoritve to funkcionalnost razdelijo na številne neodvisno razporedljive storitve. Temeljna razlika je enota razporeditve in meje med moduli.
Monolith pakira vso funkcionalnost v enega samega razporedljivega bloka; mikrostoritve to funkcionalnost razdelijo na številne neodvisno razporedljive storitve. Temeljna razlika je enota razporeditve in meje med moduli.
| Vidik | Monolith | Mikrostoritve |
|---|
| Razporeditev | Ena enota | Številne neodvisne enote |
| Podatkovna baza | Običajno ena skupna DB | Ena DB na storitev |
| Skaliranje | Skaliraj celo aplikacijo | Skaliraj storitve posamezno |
| Komunikacija | Klic v istem procesu | Omrežje (HTTP/gRPC/dogodki) |
| Povezanost ekip | Visoka | Nizka (lastništvo po storitvah) |
| Polmer učinka napake | Cela aplikacija | Pogosto izolirana na eno storitev |
| Operativna kompleksnost | Nizka | Visoka |
MONOLITH best when:
✓ small team / early-stage product
✓ domain not yet well understood
✓ simplicity and fast iteration matter most
MICROSERVICES best when:
✓ large org with many teams
✓ parts have very different scaling needs
✓ you need independent deploy cadence
Slabo modulariziran monolith se ne izboljša magično, ko ga razdelješ — dobil boš le distribuirano zmešnjavo. Najprej popravi meje.
Izbira napačnega sloga je draga: preuranjena delitev dodaja zakasnitve, operativne stroške in boli pri odpravljanju napak za majhno ekipo.
Sej uspešni sistemi se začnejo kot dobro strukturirani monolith in izvlečejo storitve le, ko velikost ekipe ali pritiski skaliranja to jasno opravičijo.