Opbreken die monoliet!

Veel primaire en secundaire bedrijfsprocessen zijn afhankelijk van monolithische systemen. Een monolithisch systeem is een groot en complex systeem met veel functionaliteit dat onderling verbonden is. Dergelijke systemen zijn vaak uitgebouwd met wijziging op wijziging, waardoor onderhoud moeilijk en foutgevoelig is. Deze systemen zijn in de loop van de jaren tegen hoge kosten ontwikkeld en worden gezien als bedrijfskritisch. Deze monolieten zorgden in het verleden vanwege degelijkheid en sterk geïntegreerde functies voor een voorsprong in de markt. Vandaag de dag zien we steeds vaker dat ze remmend werken op het vermogen van bedrijven om zich aan te passen aan veranderingen in hun markt, ook wel agility genoemd. Daarnaast zijn de kosten van instandhouding relatief hoog, waardoor investeringsruimte wordt beperkt.

Met andere woorden:

Monolithische systemen belemmeren de business

Hoe komt dit? Waarom zijn monolieten minder agile? In het verleden werden alle applicaties uitgerold naar eigen of gehuurde machines. De keuzes in architectuur werden grotendeels beïnvloed door de hardware. Eisen als schaalbaarheid en performance werden opgelost door gebruik te maken van loadbalancers en caching of gewoon door zwaardere hardware (scale up) in te zetten. Doordat integratietechnologieën nog niet zo ver gevorderd waren als nu, waren er weinig stimuli om de applicaties op te breken in kleinere onderdelen. Tevens zorgen wijzigingen in een monoliet, waar veel functionaliteiten met elkaar verweven zijn, voor veel kostbare regressietesten. Dit maakt de wens om minder vaak te releasen alleen maar groter. Een typische monolithische applicatie heeft een release cycle van een half jaar of langer. En dus hebben aanpassingen en het toevoegen van nieuwe functionaliteit ook minimaal deze doorlooptijd. Door deze relatief lange doorlooptijd zijn organisaties vaak niet in staat om snel te reageren op marktontwikkelingen, waardoor een achterstand kan ontstaan op de concurrentie. Er is ook een risico op het overtreden van wetgeving, met forse boetes tot gevolg. Hoe snel kan een organisatie bijvoorbeeld anticiperen op GDPR, nieuwe exportreguleringen of andere veranderingen in de wetgeving?

Microservices is een architectuurrevolutie gevoed door de cloud

Hoe dan wel? Er is behoefte aan het sneller kunnen aanpassen van softwaresystemen onder voorwaarde dat het behalen en borgen van de gewenste kwaliteit en het uitrollen betaalbaar blijft. Dit kan worden bereikt door een architectuur te kiezen waarbij er rigoureus gesneden wordt in de afhankelijkheden. De SOA (Service Oriented Architecture) architectuur belooft dit al, maar blijkt vaak te duur door de overdaad aan servercapaciteit die nodig is voor piekbelastingen. De opkomst van cloudtechnologie voorziet ons van veel betere mogelijkheden op dit vlak. Bij cloudoplossingen wordt immers alleen voor capaciteit betaald die gebruikt wordt. Verder biedt cloud de mogelijkheid om betrouwbaar en bijna tot het oneindige op te schalen naar kleine, goedkopere machines. Een uitstekende voedingsbodem voor een architectuurrevolutie: Microservices. De microservicesarchitectuur combineert het verbreken van afhankelijkheden met de uitrolmogelijkheden die cloudtechnologie biedt. Door het opsplitsen van de applicatie in kleine zelfstandige eenheden of microservices, kunnen deze eenheden onafhankelijk van elkaar uitgerold en geschaald worden. Zo ontstaat de mogelijkheid om functionaliteit lokaal toe te voegen of te wijzigen zonder dat andere delen van de applicatie aangeraakt, laat staan aangepast moeten worden. Deze andere delen hoeven daarmee ook niet getest en opnieuw uitgerold te worden. Dit leidt tot een kortere time-to-market van nieuwe functionaliteit en daardoor ook tot een hogere business agility.

Moderne applicatieverwachtingen zijn: beschikbaar, schaalbaar, agile en betaalbaar

Natuurlijk brengt de transitie van een monolithische applicatie naar een microservicesarchitectuur zijn eigen uitdaging en investering met zich mee. In deze tijd is business agility echter noodzakelijk. Je wilt als organisatie niet verrast worden door een plotselinge start-up van een bestaande of nieuwe concurrent. Hier zorgt een moderne architectuur ervoor dat de bedrijfskritische applicaties de concurrentiepositie versterken in plaats van verzwakken. Dan kan er met veel minder risico gekozen worden om een maatwerksysteem te implementeren om onderscheidend te zijn in de markt. Want in tegenstelling tot de bekende monoliet is het onderhoud van een applicatie gebaseerd op microservices ook veel beter beheersbaar. Een verouderde monolithische applicatie heeft een (soms zeer) hoge total cost of ownership (TCO). Er is specialistische, schaarse, kostbare expertise en ook diepgaande kennis van de geschiedenis van de applicatie nodig voor onderhoud. Er zijn TCO-opdrijvende factoren, die bepaald worden door incidenteel voorkomende piekbelasting zoals benodigde specifieke hardware, operationele kosten en kosten bij operationele uitval. Maar ook het vele werk bij patches en upgrades voor dit soort type applicaties is erg kostbaar. Een microservicesapplicatie is gebaseerd op cloud-technologie en is veel minder onderhevig aan bovengenoemde kosten. De TCO voor dergelijke applicaties is doorgaans veel lager dan bij de monoliet. In combinatie met de hoge toegevoegde waarde die deze wendbare software biedt voor de moderne organisatie, wordt vaak een verrassend positieve ROI gerealiseerd.

Auteur: Aarjan Meirink, Lead Cloud Architect

Aarjan is altijd op zoek naar betere manieren om complexe enterprise-oplossingen te ontwerpen zodat ze succesvol, flexibel, schaalbaar en makkelijk te onderhouden zijn. Hij gelooft niet in ‘one size fits all’, volgens hem heeft elke businessuitdaging zijn eigen technische oplossing. Aarjan weet als geen ander uit te leggen welke consequenties bepaalde keuzes hebben voor zowel business als IT. Hij beschikt over het vermogen om complexe software-issues en technische terminologie in begrijpelijke taal uit te leggen.

Als architect en coach op het vlak van System Integration, Replatforming, Monolitische omgevingen en Custom Development helpt Aarjan organisaties succesvolle en toekomstbestendige oplossingen te bouwen.

De overstap vanaf een monolitisch systeem brengt vele voordelen met zich mee. Leer er alles over in ons webinar: 'Agile architecture: zorg voor een wendbaar IT-landschap'

Michel Heijman
Principal Consultant

What's your challenge?