Waarom zou je voor microservices kiezen?

Nicole kabisa 170x170

Geschreven door Nicole Bekkers op 12-4-2017
3 minuten leestijd

Microservices zijn een hot-topic binnen de software-wereld. Maar wat is het nu eigenlijk? En wanneer zou je voor microservices willen gaan? En wanneer juist niet? In dit artikel gaan we nader in op enkele afwegingen.

Wat zijn microservices?

Microservices zijn kleine, los deploybare, autonoom draaiende systemen die met elkaar samenwerken om een taak te volbrengen. De kernwoorden hier zijn ‘klein’, ‘los deploybaar’ en ‘autonoom draaiend’. Elke microservice focust zich op één taak of verantwoordelijkheid en communiceert met andere services via een REST API of asynchrone berichten op een wachtrij (message queue). Er is dan ook geen gedeelde database waar meerdere services data opslaan. Alle services moeten geheel los van elkaar te draaien zijn, ervan uitgaande dat fouten kunnen optreden en hier mee omgegaan kan worden. En dit betekent ook dat ze los deploybaar kunnen zijn.

Een microservice mag niet te klein zijn, maar ook niet zo groot dat het veel verantwoordelijkheden bevat. Zelfs wanneer een service groeit kan het na verloop van tijd meerdere verantwoordelijkheden bevatten. Deze kunnen opgesplitst worden in meerdere losse microservices.

Wanneer een microservice los deploybaar is, is het mogelijk om deze automatisch op te schalen wanneer dat nodig is, bijvoorbeeld omdat een service het erg druk heeft. Maar het werkt ook de andere kant op. Namelijk wanneer vele instanties van een service het rustig hebben kan terug geschaald worden. Ook kan een instantie van een service zichzelf herstarten wanneer er een probleem optreedt zonder dat andere services daar hinder van ondervinden. Een message queue zal dan leeg worden gemaakt wanneer de service weer beschikbaar is.

De mogelijkheden zijn vrijwel eindeloos en er is geen standaardoplossing. Dit klinkt erg generiek — en dat is het ook — maar het betekent dat er per systeem en functionaliteit gekeken moet worden of het een losse microservice is.

Voordelen

Nadelen

Conclusie

Er is geen one-size-fits-all oplossing wanneer het om softwaresystemen gaat. Soms zijn microservices een oplossing, maar soms ook niet. Het is volledig situatie-afhankelijk. Er zijn echter wel mogelijkheden, juist ook nadat er eerst gekozen is om één systeem te maken. Het is altijd mogelijk daarna op te splitsen.

Meer weten over microservices en wat het voor jouw organisatie betekent? Neem dan contact op met Kabisa.