Microservices voor je IT-oplossingen: 7 dingen om rekening mee te houden
Veel organisaties werken met monolithische IT-oplossingen: oplossingen uit één stuk. Als je een grote toepassing nodig hebt, zijn deze oplossingen makkelijk te ontwikkelen, te testen en uit te breiden. Tegelijkertijd zit in dat laatste voordeel ook het nadeel: na verloop van tijd wordt het systeem vaak te complex. En voor je het weet kan dit ingewikkelde systeem vervolgens niet meer snel genoeg reageren op veranderende vragen van klanten of omgevingsfactoren – het wordt te log.
Om dit te voorkomen, kun je gebruikmaken van microservices. Een microservice is een klein, zelfstandig, maar combineerbaar programma, met eigen applicatielogica en een eigen database. Elke afzonderlijke microservice is verantwoordelijk voor één bedrijfsfunctie. De microservices communiceren onderling met behulp van API’s. Meerdere microservices samen kunnen gegroepeerd worden tot een service, waarbij ze gezamenlijk een totaaloplossing zijn.
Bedrijven die al langer werken met microservices zijn onder andere Netflix, Zalando en AutoScout 24.
Overweeg jij als ontwikkelaar met microservices te gaan werken? Dan zijn de volgende 7 punten goed om in gedachten te houden.
1. Microservices zijn modulair
Iedere microservice wordt verbonden met een andere, waardoor een kleine groep van microservices ontstaat, die samen een dienst vormen. Iedere dienst heeft een specifieke functie met een eigen toepassing en zelfs een eigen databank. Als je diverse diensten samenvoegt, ontstaat een nieuw product. Een groot voordeel van microservices is het vermogen om snel te schakelen.
Als je als organisatie gewend bent met bijvoorbeeld Java te werken, vraagt dat wel een omschakeling in werkwijze. Wil je met microservices werken, plan dan zeker een pilotproject om je IT-mensen te helpen aan de nieuwe werkwijze te werken.
Iedere dienst heeft een specifieke functie met een eigen toepassing en zelfs een eigen databank. Als je diverse diensten samenvoegt, ontstaat een nieuw product.
2. Microservices zijn snel te ontwikkelen
Een ander groot voordeel van microservices is dat ze snel te ontwikkelen, te testen en te implementeren zijn. En dat maakt het werk van ontwikkelaars minder gecompliceerd en sneller. De ontwikkelaar hoeft zich immers slechts op één facet te richten.
3. Het kan nieuwe beveiligingseisen oproepen
Een microservices-architectuur kan nieuwe beveiligingsaspecten oproepen. Omdat microservices API-gestuurd zijn, is misschien niet iedere organisatie hier klaar voor. De API’s kunnen, zonder goede beveiliging, toegang geven tot informatie die je niet vrij wil geven. Het is dus van het grootste belang om de beveiliging goed op orde te hebben. Er zijn natuurlijk tal van oplossingen die ervoor zorgen dat de beveiliging optimaal is, maar het vraagt wel extra aandacht van IT.
4. Je bent vrijer in technologische keuzes
Als je met microservices aan de slag gaat, word je niet langer beperkt door de begrensde mogelijkheden van een monolithisch systeem. Bij monolithische applicaties zit je vast aan applicatiestructuren en methodieken die lastig te veranderen zijn. Als je met microservices aan de slag gaat, beschikken ontwikkelaars over meer keuzevrijheid. Ze kunnen met de specifieke technologie aan de slag gaan die bij het beste bij de te ontwikkelen oplossing past.
5. De snelheid is afhankelijk van het basissysteem
Het zal geen verrassing zijn dat de snelheid van microservices afhankelijk is van het onderliggende systeem en netwerk. Als één service traag is, heeft dat effect op de totale applicatie. Het helpt als je investeert in tools die het netwerk versnellen en APM-tools (Application Performance Monitoring) die de diverse componenten kunnen monitoren.
Als één service traag is, heeft dat effect op de totale applicatie.
6. Doe het stapje voor stapje
De overstap naar microservices hoeft niet ineens plaats te vinden. Als je van tijd tot tijd modules omzet naar een microservice, slinkt het monolithische ‘monster’ langzamerhand. Als je voldoende modules geconverteerd hebt, zal de monolithische oplossing ophouden te bestaan. Zeker als je tegelijkertijd nieuwe functionaliteiten niet toevoegt aan het bestaande systeem, maar van de nieuwe codes een nieuwe stand-alone microservice maakt.
7. In deze situaties kun je beter niet met microservices werken
Niet in alle situaties is het aan te raden met microservices te werken. De overstap naar microservices kan veel vragen aan mankracht. Beschik je niet over voldoende capaciteit (uren), dan moet je goed nadenken of je wel de juiste move maakt.
Andere situaties waarbij organisaties erachter komen dat de voordelen niet opwegen tegen de kosten zijn bijvoorbeeld situaties waarbij:
- Een organisatie met applicaties werkt waarbij veelvuldige agile veranderingen aan de applicatie niet nodig zijn.
- De organisatie liever bij het vertrouwde blijft, een sterke aversie heeft van enige risico’s en ook het proces niet wil aangaan om bekende processen opnieuw te bekijken.
- De noodzaak ontbreekt om met onafhankelijke API’s for externe klanten te werken.
- De organisatie nog niet gewend is met teams te werken waarin developers en operations samenwerken (DevOps teams). Ook in dat geval heeft het bedrijf niet altijd de capaciteit om complexe microservices te managen.
Werk jij met microservices? Ik ben benieuwd naar jouw ervaringen!