Van monolieten naar microservices: De weg naar het nieuwe normaal

De modernisering van het applicatielandschap is voor veel bedrijven een belangrijk thema. In het geval van monolithische architecturen en legacy-applicaties staat modernisering met behulp van containerplatforms en microservices vaak op de agenda.

Bedrijven en ontwikkelaars staan voor de taak om innovatie te stimuleren en de time-to-market te vergroten door gebruik te maken van productievere technologieën. De doelen zijn hogere efficiëntie, wendbaarheid en snelheid.

Monolithische architecturen zijn hier in principe minder geschikt voor. Ze zijn te groot en te complex, komen traag op gang en zijn duur om te testen op updates. Zelfs één fout kan de beschikbaarheid van de toepassing beïnvloeden en er kunnen conflicten ontstaan tussen modules bij het schalen. Door deze kenmerken kunnen ze ook een obstakel vormen voor de invoering van nieuwe technologieën.

In tegenstelling tot monolithische architecturen bieden containerplatforms en microservices de mogelijkheid om innovatie snel en tegen geoptimaliseerde kosten door te voeren. Containers zijn in feite technologieën die kunnen worden gebruikt om applicaties te verpakken, in te kapselen en te isoleren met alle vereiste componenten en configuratiedetails en de volledige runtime-omgeving – dat wil zeggen: met alle bestanden die nodig zijn voor de werking.

Containers, Microservices, DevOps

Containers zijn de belangrijkste technologie voor de invoering van microservices, die de bouw van modulaire, losjes gekoppelde applicaties mogelijk maken. Zij bieden bedrijven cruciale ondersteuning bij het versneld creëren van toepassingen.

Services worden geleverd via lichtgewicht, technologie-agnostische API’s die de flexibiliteit bij implementatie, schaling en onderhoud vergroten. DevOps-processen en -methodologieën maken het ook mogelijk om het testen van de kwaliteit bij elke stap van het proces te automatiseren, waardoor ontwikkelaars aanzienlijk minder tijd en moeite hoeven te doen.

Als gevolg hiervan kiezen steeds meer bedrijven bij het moderniseren van hun applicaties voor de weg van migratie van monolieten naar containerplatforms en microservices. In principe zijn er hiervoor drie opties: re-hosting, re-platforming en re-factoring.

Veel of weinig behoefte aan verandering?

Bij re-hosting of lift-and-shift verpakken ontwikkelaars bestaande applicaties en workloads – zonder verdere modernisering – in een container met zo min mogelijk wijzigingen, migreren ze naar de cloud en exploiteren ze daar als PaaS.

In het re-platforming- of lift-and-reshape-proces bepalen ontwikkelaars welke delen van de toepassing baat hebben bij containertechnologie, herwerken ze deze door ze over te zetten in microservices en voegen ze API-lagen toe voor communicatie. De toevoeging van nieuwe lagen maakt ook bestaande applicatiefunctionaliteit toegankelijk voor nieuwe applicaties, waardoor ontwikkeltijd en -kosten worden bespaard.

Tot slot behelst re-factoring of herschrijven een fundamentele wijziging van de programmacode van een applicatie op basis van een nieuwe microservices-architectuur.

Snel of duur?

De keuze voor een moderniserings- en migratiestrategie hangt af van verschillende factoren, zoals de applicatie, de bedrijfsvereisten of contextuele factoren. Er moet ook rekening mee worden gehouden dat de drie varianten soms aanzienlijke verschillen vertonen wat de duur en de kosten van de migratie betreft. In de regel is de snelste en meest kosteneffectieve procedure de re-hosting, terwijl de meest tijdrovende en kostenintensieve de re-factoring is.

Markus Eisele is bij Red Hat in dienst getreden als Developer Adoption Program Lead EMEA.

De drie migratiepaden helpen applicatie-architecten en ontwikkel- en operationele teams om bestaande applicaties te moderniseren zonder dat daarvoor volledig nieuwe ontwikkelingen nodig zijn. In veel gevallen is gebleken dat een opeenvolgende aanpak zinvol is in het kader van een overkoepelende moderniseringsstrategie: van re-hosting naar re-platforming naar re-factoring, wat uiteindelijk de meest uitgebreide procedure is om de applicatiearchitectuur te moderniseren.