Microservices vs. monolithische architectuur

Het ontwikkelen van applicaties en het onderhouden ervan is een topprioriteit voor bedrijven. Het kiezen van de juiste architectuur vóór de ontwikkeling kan het gehele proces vereenvoudigen. Twee van de meest populaire architecturen zijn: monolithisch en microservices. In dit artikel gaan we hier verder op in.

Development
29 maart 2021
Martijn van der Put

Microservices is een belangrijke softwaretrend die grote implicaties kan hebben voor de IT-functie van een onderneming. Op dezelfde manier heeft de monolithische architectuur zijn eigen voordelen.

 

Wat is monolithische architectuur?

Een monolithische applicatie is er één waarin alle functionaliteiten van de applicatie zich binnen één enkele code bevinden. Alle code die nodig is om de functies van deze applicatie te ontwerpen, bevindt zich binnen hetzelfde container in een monolithische architectuur. 

Voorbeeld: je ontwerpt een timerapplicatie voor een smartphone. Laten we aannemen dat de timer een klok en een stopwatch heeft. In een monolithische architectuur wordt de code voor de timer, de stopwatch en de klok allemaal binnen één enkele codebase geplaatst.

Ontwikkelaars ontwerpen elke functie in lagen en implementeren deze binnen één enkel bestand. Elke nieuwe functie die wordt toegevoegd, wordt eenvoudigweg binnen dezelfde codebase geplaatst. De reden waarom dit wordt aangeduid als monolithische architectuur, waarbij mono één vertegenwoordigt.

Wat zijn microservices? 

Een andere benadering om te gebruiken is microservices. In dit type is de hele applicatie omgebouwd uit een reeks kleinere services. Deze services communiceren met elkaar via een vooraf gedefinieerde set protocollen zoals HTTP. 

Wanneer we kijken naar hetzelfde voorbeeld als monolithische architectuur, dan werkt het voor microservices als volgt: je ontwerpt de klok, stopwatch en timer individueel. Vervolgens koppel je ze met een HTTP-protocol zodat ze één applicatie worden. Precies de andere kant op dus. 

Voordelen monolithische architectuur

  • Monolithische architectuur is gemakkelijk te ontwikkelen.
  • Dit type applicatie is makkelijk te implementeren.
  • Het vereist minder ontwikkelingsmiddelen dan microservices.
  • Er zijn minder problemen met netwerklatentie ten opzichte van microservices.
  • Minimale beveiligingsproblemen.


Wat zijn de nadelen van monolithische architectuur? 

  • De omvang blijft toenemen, waardoor het onderhoud na verloop van tijd moeilijker wordt. 
  • De hele applicatie moet opnieuw geïmplementeerd worden bij een kleine wijziging of update.
  • Het begrijpen van de kernlogica is moeilijk voor nieuwe medewerkers die zich bij het team voegen.
  • Inefficiënt.
  • Met een steeds grotere omvang nemen ook implementatietijd en -kosten voortdurend toe.
  • Eén kleine bug of fout kan de hele applicatie doen crashen.



Voordelen microservices

  • Bij het bijwerken van één functie, kun je eenvoudig de microservice bijwerken en opnieuw implementeren.
  • De implementatietijd is kort vanwege afzonderlijke services.
  • Voor het bijwerken van een afzonderlijke functie, kun je dat eenvoudigweg doen door enkel de individuele microservice bij te werken.
  • Bij een bug of fout kan de afzonderlijke functie uitgeschakeld worden terwijl de applicatie online blijft.
  • Updates kunnen afzonderlijk van elkaar geïmplementeerd worden.


Wat zijn de nadelen van microservices? 

  • De ontwikkeling en het beheer van microservices is moeilijker dan bij monolithische applicaties.
  • Ontwikkelaars moeten bekwaam zijn om dit type te ontwikkelen.
  • Wanneer je niet de juiste middelen toewijst, krijg je te maken met een groot aantal netwerklatentieproblemen
  • Foutopsporing is moeilijk.



Conclusie

Microservices is een prima keuze voor organisaties die in een groeifase zitten en de juiste medewerkers in dienst hebben. Microservices zijn wellicht niet de beste keuze voor kleine bedrijven. Heb je hier hulp bij nodig? Laat het ons weten en wij helpen je graag verder.

Wil je meer informatie? Neem dan contact op.

Cookies
Deze site gebruikt geanonimiseerde cookies. Klik op "Akkoord" als je akkoord gaat met het gebruik van cookies, of klik op "Aanpassen" om je voorkeuren te bepalen.
Deze site gebruikt geanonimiseerde cookies.