Als bedrijven zich willen onderscheiden van de competitie, moeten ze zich focussen op waar ze het beste in zijn. It-afdelingen kunnen dat proces ondersteunen door developers in staat te stellen sneller te bouwen en algemene taken te automatiseren. Deze paradigmaverandering vraagt om een transformatie. Dit betekent vaak een meerjarige reis, die al begonnen is lang voordat de cloud werd geïntroduceerd – of ze dat nou in de gaten hebben of niet.
In de periode voor virtualisatie werd infrastructuur handmatig uitgerold. Het duurde maanden om deze beschikbaar te stellen, aan te sluiten, te installeren en te configureren. De meeste applicaties waren monolithisch, sterk onderling afhankelijk en moesten handmatig worden beheerd. Installatie en configuratiegidsen waren tientallen, zo niet honderden pagina’s lang. Efficiënte datacentra waren eveneens een uitdaging. Met zulke lange uitrolcycli kochten bedrijven 25 tot 40 procent meer capaciteit in dan ze nodig hadden. Met zoveel verspilde capaciteit waren gebruikscijfers vaak lager dan 10 procent.
In dit model opereerden de ontwikkel-, infrastructuur- en beheerteams allemaal in losse silo’s, waardoor ze weken of zelfs maanden moesten plannen voor elke verandering. Dagelijks beheer werd een enorme uitdaging aangezien alles handmatig moest worden gedaan, met weinig overeenkomsten tussen omgevingen.
De belofte van virtualisatie en de privécloud
Virtualisatie en de privécloud beloofden een betere manier. Efficiëntere servers, een kleine infrastructurele voetafdruk, nieuwe modellen voor automatisering en dienstverlening en, het meest belangrijk, een meer wendbare manier van werken.
Devirtualisatie van servers had positieve gevolgen voor het energieverbruik en hielp organisaties met het verkleinen van hun datacenters, maar veel van de beloofde voordelen blijven vooralsnog uit. Het ‘bijprikken’ van servers kost tegenwoordig hoogstens een paar minuten, maar toch is planning op dat gebied nog altijd niet echt verbeterd. Ontwikkelaars maken nog te vaak ruwe schattingen over benodigde capaciteit en het vooruit plannen ervan neemt nog steeds jaren in beslag.
De infrastructuurteams beginnen steeds meer hun voordeel te doen met de automatisering waartoe virtualisatie ze in staat stelt, maar die capaciteiten breiden zich vooralsnog niet uit naar de ontwikkelteams. Zogenaamde self-service is in de praktijk nog vaak afhankelijk van wekenlange handmatige goedkeuringsprocessen. Dat is lastig te veranderen aangezien teams veelal werken in silo’s, en daarin veranderingen aanbrengen brengt vaak een hoop bureaucratie met zich mee die meestal niet goed gemanaged wordt. Uiteindelijk is op het gebied van ontwikkelsnelheid nog te weinig winst geboekt.
Goed nieuws is dat organisaties wel stappen hebben ondernomen om hun omgevingen te automatiseren en te kiezen voor een cloudstrategie waarmee ze sneller kunnen evalueren dan partijen die deze verandering nog niet hebben doorgemaakt. Virtualisatie versimpelt niet alleen de daadwerkelijke migratie van virtuele machines, maar laat ook zien in welke mate een bedrijf in staat is te veranderen, zich aan te passen en de mogelijkheden voor werknemers uit te breiden.
Door over te stappen naar de cloud, zien bedrijven de onvervulde belofte van virtualisatie. Het on-demand uitrollen van netwerken, computers, opslag, databases en andere bronnen via een pay-as-you-go-model biedt niet eerder vertoonde wendbaarheid en helpt de ontwikkelteams sneller te werken. Maar zelfs in de cloud is deze transformatie niet instant: naarmate een bedrijf de verschillende stadia van adoptie doormaakt, zal de ontwikkelsnelheid hoger komen te liggen.
Cloud-adoptie: projecten tijdens de migratie
Tijdens de eerste drie stadia van cloudadoptie, waarin organisaties beginnen met enkele projecten om achter de voordelen te komen (stadium 1), de fundering leggen voor transformatie van een organisatie (stadium 2) en enmassale migratie uitvoeren (stadium 3), worden enkele sleutelfactoren zichtbaar die de snelheid van bouwers ten goede komen.
- Infrastructuur als code: al vroeg in de projectfase zullen klanten bepaalde zaken handmatig uitvoeren. Wanneer ze verder komen zullen ze echter steeds meer infrastructuur als code omarmen. Dat betekent dat infrastructuur niet enkel geautomatiseerd wordt met scripts, maar wordt ontwikkeld en beheerd als code. Met die herbruikbare templates kunnen binnen enkele minuten hele omgevingen en stacks opnieuw worden uitgerold.
- Cloud center of excellence: cloud center of excellence-teams ontwikkelen en beheren de belangrijkste templates voor infrastructuur, leiden de ontwikkelteams op en helpen hen applicaties naar de cloud te migreren. De ontwikkelteams gebruiken infrastructuur als code-pijpleidingen en ontwikkelen doorlopende integratiepijpleidingen voor hun eigen applicaties.
- Adoptie van cloudservices: in dit vroege stadium worden de belangrijkste cloudservices geïntegreerd. Organisaties koppelen hun monolithische applicaties los en doen waar mogelijk hun voordeel met clouddiensten. De mate van adoptie van verdere clouddiensten hangt af van de migratiestrategie, welk percentage van de applicaties cloud native is en welk percentage opnieuw gehost of zelfs ontwikkeld moet worden om goed in de cloud te werken.
- Beveiliging: alhoewel beveiliging traditioneel gezien een groot obstakel kan zijn voor wendbaarheid, kan deze, wanneer goed ingebed in de cloud, wel een bepaald niveau van transparantie en automatisering bieden, meer dan lokaal mogelijk zou zijn.
Cloud-adoptie: de fase van heruitvinding
Het lijdt geen twijfel dat de snelheid van ontwikkelteams veel groter wordt naarmate een organisatie de initiële stadia van adoptie is doorgekomen. In de meeste gevallen eindigt optimalisatie niet na de migratie. Slechts weinig bedrijven hebben tijdens de migratie de tijd om applicaties opnieuw in te richten. Door te blijven vernieuwen zal de snelheid van ontwikkelaars omhooggaan. Het opnieuw bouwen van applicaties houdt vaak in dat de monoliet uiteen moet worden getrokken en worden onderverdeeld in kleinere diensten met api’s zodat ze makkelijk hergebruikt kunnen worden.
Het ontwikkelen van de allerbeste oplossingen is niet iets dat voor de meeste bedrijven het verschil maakt. Het zijn de algoritmen, zakelijke workflows en realtime analytics waar hun klanten blij van worden. Daarom focussen bedrijven zich op de ontwikkeling van referentie-architecturen, betere opties tot governance en compliance en gunnen ze ontwikkelteams meer autonomie bij uitrol van infrastructuur en applicatie.
De evolutie van rekenkracht en big data
Laten we, om dit in perspectief te plaatsen, kijken naar hoe deze evolutie zich op het gebied van rekenkracht en big data heeft voltrokken. De eerste grote evolutie van de laatste tijd was van fysieke servers naar virtuele servers in datacenters. Dat bracht uniforme omgevingen, onafhankelijkheid van hardware met zich mee. De volgende fase bestond uit servers in de cloud, wat weer zorgde voor on-demand resources, betere schaalbaarheid en wendbaarheid, verbeterde beschikbaarheid en weerbaarheid tegen fouten. Maar er was nog steeds ruimte voor verbetering als het gaat om de snelheid van ontwikkelen. Je moet immers blijven ontfermen over debeschikbaarheid, beheer van golden images, het patchen van servers, enzovoort. Terwijl zij nu juist willen focussen op goede werking van de infrastructuur of reageren op problemen
Toen kwam de verschuiving naar serverless computing om de hoek kijken; servers die niet meer beheerd of gepatcht hoeven te worden. De bouwer schrijft een functie, serverless computing zorgt voor uitrol, beschikbaarheid en schaalbaarheid. Hoewel ontwikkelaars er zeker hun voordeel mee kunnen doen, blijven veel uitdagingen die ze kennen van lokale infrastructuur in de cloud ook altijd bestaan. Vanwege de gekoppelde natuur van opslag en rekenkracht kan een cluster tijdens pieken nog steeds overvraagd worden.
Het is bij elke transformatie moeilijk om te bepalen hoe je succes meet en het einddoel in zicht houdt. Door ontwikkelteams in staat te stellen zo snel mogelijk te werken is echter een flinke stap in de goede richting gezet. Die organisaties blijven evolueren en zichzelf opnieuw uitvinden.