Microservices vs. monoliet: waarom wel en waarom niet?

De meeste organisaties zijn ooit begonnen met één systeem en bij sommigen is dat systeem in de afgelopen jaren uitgegroeid tot een logge monoliet waarin zich alle kritieke bedrijfsprocessen bevinden. In andere bedrijven zijn meerdere applicaties verbonden door een integratielandschap, waardoor een verzameling van gekoppelde monolieten ontstaat. Microservices kun je weer zien als kleine deelprocessen van een monoliet: heel flexibel en schaalbaar. Dat klinkt meteen een stuk beter dan een monolithisch applicatielandschap, nietwaar? Toch hebben al deze vormen hun voor- en nadelen. In dit blogartikel leggen we uit wat we verstaan onder een monoliet en microservices en bespreken we de bijbehorende plus- en minpunten.

Wat bedoelen we met een monoliet?

Wanneer een combinatie van functionaliteiten zich binnen één uitgebreid systeem bevinden, spreken we van een monoliet. Je hebt één applicatie staan en daar doe je alles mee: HRM, sales, marketing, service, etc. Maar je kunt ook een applicatie voor alleen HRM als monoliet zien, alle functionaliteiten die met HRM te maken hebben, vind je namelijk terug in dit systeem. Mocht je willen groeien en kunnen schalen, dan is het beter om functionaliteiten van elkaar los te koppelen.

Het voordeel van een monoliet is dat er sprake is van data-integriteit, want je slaat alle gegevens op, op één centrale plek. Bovendien vindt alle orkestratie tussen (complexe) processen plaats binnen één applicatie. Het nadeel van een monolithische applicatie is het aanpassen ervan. Er is vaak specialistische kennis voor nodig, zo ook voor het onderhoud en beheer hiervan én kennis van de geschiedenis en opbouw van de monoliet.

Verder is een monoliet minder schaalbaar en zijn piekmomenten lastiger op te vangen. Een monoliet is namelijk schaalbaar binnen zijn beschikbare hardware en kan de gevraagde load verdelen over de beschikbare CPU en het aanwezige geheugen. Ter vergelijking: een microservice kan schalen over de grenzen van de machine waarop deze draait, waardoor de schaalbaarheid van een microservice vele malen flexibeler is.

Benieuwd hoe WeAreFrank! de grootste verzekeraar van Nederland al 20 jaar helpt met integratie van honderden applicaties?

{{cta('fa6f702f-45c1-45e1-a270-ff98a3f75446')}}

Wat zijn microservices?

Wanneer je een applicatie opknipt in kleine stukjes van zelfstandige ‘services’, dan krijg je microservices. Hiermee zijn het niet direct kleine services. Dat ene stukje wordt juist een microservice, omdat het de eigenaar is van een proces en de bijbehorende data, bijvoorbeeld het versturen van een factuur of het verwerken van een orderaanvraag. Je IT-omgeving bestaat niet meer uit een set van applicaties, maar is opgedeeld tot het kleinste niveau: aparte onderdelen die echt maar één functie hebben.

Het grote voordeel van microservices is de schaalbaarheid. Het is niet meer nodig om je hele server te belasten wanneer je wilt opschalen, maar hiervoor worden slechts de veel bevraagde componenten opgeschaald. Binnen een applicatie gebeurt dit vaak ook, maar binnen bepaalde grenzen. Microservices draaien op een containerplatform, een soort virtualisatie van je server. Hiermee kun je snel op- en afschalen wanneer dat nodig is. Door de lossere structuur van microservices zijn onderdelen gemakkelijk te vervangen of aan te passen, maar er is veel aandacht nodig om te zorgen dat er geen ongewenste neveneffecten optreden in andere onderdelen van de ‘virtuele applicatie’.

Het lastige aan microservices is te ontdekken hoe de verschillende componenten samenwerken. Een voorbeeld: binnen HRM heb je te maken met loonstroken, medewerkers, adressen en salaristabellen. Mocht er een adreswijziging plaatsvinden dan kan dat gevolgen hebben voor de reiskostenvergoeding. In een monoliet is dat een logisch gevolg, maar met microservices is dat een ander verhaal. Je moet een goed beeld hebben van hoe alles samenhangt wanneer je je IT-infrastructuur met microservices inricht.

Microservices vs. monoliet: wat is beter?

We zeggen niet dat microservices beter zijn dan een monolithische applicatie, of andersom. Beiden hebben namelijk zo hun voor-en nadelen. Voordat je een keuze maakt, is het verstandig om te bedenken waar je als bedrijf de prioriteiten wilt leggen. Heb je de flexibiliteit van het opschalen echt nodig voor je businessmodel? Dat heeft namelijk een aardig kostenplaatje. Ben je als organisatie geschikt voor de realisatie en het complexe beheer van een microservice-landschap? En voldoet de huidige IT-infrastructuur aan jullie toekomstbeeld? Om een antwoord op deze vragen te vinden, helpt het in ieder geval om een blauwdruk te maken van jullie IT-omgeving en in gesprek te gaan met een integratiespecialist.

Wil je meer weten over hoe klanten ons Frank!Framework ervaren?

Lees dan eens onze klantcase waarin we je meenemen hoe we de grootste verzekeraar van Nederland al 20 jaar helpen met de integratie van honderden applicaties.

Vragen over deze case?
Neem contact op
Portrait of Jeroen Jansen van Rosendaal

Geschreven door
Jeroen Jansen van Rosendaal