Technology Radar
Microservice Architecture
Een microservice architectuur is een architectuur pattern waarbij een applicatie is opgedeeld in een verzameling van services die zo veel mogelijk ontkoppeld zijn van elkaar.
Deze architectuur stelt het ontwikkelteam in staat alle services los van elkaar te ontwikkelen, deployen en te schalen. Daar staat tegenover dat het een aanzienlijke extra complexiteit met zich mee brengt ten opzichte van een monolitische applicatie.
Voordelen
- Flexibiliteit : Services kunnen apart worden opgeleverd en geschaald
- Ontwikkeling door meerdere teams : Omdat elke microservice op zichzelf staat kunnen deze door verschillende teams gebouwd en onderhouden worden. Teams kunnen er zelfs per service voor kiezen om andere talen en technieken te gebruiken als dat hen beter uitkomt.
Nadelen
- Extra overhead : Elke microservice moet apart ondersteunt en onderhouden worden, wat veel extra werk met zich mee brengt. Daarnaast is de communicatie tussen microservices onderling veel complexer dan wanneer ze in dezelfde monoliet zouden zitten.
Conclusie
Microservices zijn een uitstekende keuze voor complexe applicaties waar meerdere development teams aan individuele onderdelen van de applicatie werken, of waar het noodzakelijk is om onderdelen apart te kunnen deployen en op te schalen.
Als die behoeft er niet is, dan wegen de voordelen naar onze mening niet op tegen de extra complexiteit die het met zich meebrengt.
Bij greenfield applicaties is het volgens ons beter om te beginnen met een eenvoudigere architectuur, zoals een Modular Monolith, en pas Microservices toe te passen als daar echt behoefte aan is.