Jonge en innovatieve organisaties als Spotify zeggen dat cloud native cruciaal is geweest voor hun succes. Een technologie die de afgelopen jaren in een sneltrein heeft gezeten. En een technologie die inmiddels niet enkel is weggelegd voor juist een Spotify of Netflix. Maar wat is cloud native eigenlijk en waarom juist nu cloud native meenemen in je digitale strategie?
Wat is cloud native?
We merken meer dan ooit te voren dat de digitale wereld de transformatie naar XaaS (Everything-as-a-service) ondergaat. Cloud heeft de wereld van software development voorgoed veranderd. Al begint het misschien bij een cloud transitie waarbij je software
van on-premise naar de cloud verhuist. Het is slechts stap 0 van de cloud native aanpak. Maar aan de andere kant kan uitleggen wat cloud native exact omvat eindigen in hevige discussies onder specialisten. Vraag het vier verschillende techneuten en ze
zullen elk met een ander antwoord komen. Het zou je dan ook vast niet verbazen dat de definities, software stacks en diensten die worden aangeboden nogal uiteen kunnen lopen. Maar het uitgangspunt voor cloud native staat vast: het optimaal kunnen inzetten
van het cloud model. In de volgende paragrafen volgen de naar mijn idee de twee populairste opinies.
Onderdelen uit het klassieke IT landschap zullen verplaatsen naar een afneembare service of dienst in de Cloud
Aan de ene kant zien wij een beweging die beweert dat cloud native het optimaal inzetten van cloud diensten omvat. Multicloud ofwel connected clouds worden de standaard. Of het nu gaat om public, private of hybride cloud. Deze moeten naadloos en secure
op elkaar aansluiten binnen het IT landschap. Zoveel mogelijk SaaS en Serverless diensten omarmen binnen het veranderende landschap.
Onderdelen uit het klassieke IT landschap zullen verplaatsen naar een afneembare Service of dienst in de cloud. Denk aan diensten die je nu afneemt bij Amazon in AWS die je voorheen zelf ontwikkelde en moest onderhouden. Het is een stuk gemak en kan ook zeker kosten besparen. Deze definitie van cloud native zie je dan ook juist veel terug komen vanuit de cloud providers en SaaS diensten. Zij die hun verdienmodel hebben omgezet in het gebruik van hun diensten hebben hier natuurlijk het meeste belang bij.
Maar juist wanneer je als organisatie herkent dat de doorlooptijden hoog zijn doe je er verstandig aan om je goed te laten informeren. Voordat je het weet stop je veel resources in het ontwikkelen van functionaliteiten die je beter als dienst had kunnen afnemen. Of het nu gaat om grote enterprise oplossingen of een nieuwe startup, vaak zijn een deel van je requirements al beter en sneller beschikbaar dan je denkt.
Het bouwen en draaien van software die de voordelen van compute in the cloud volledig benut
Er is echter een tweede gedachtengoed die ik zelf veel beter vind passen bij de woorden cloud native. Of geef het één van de andere trendy namen die in omloop zijn zoals: cloud native computing, cloud native development of het cloud native
deployment model.
Ook bij deze gedachte is het optimaal inzetten van de cloud het uitgangspunt. Alleen verwoorden we de definitie nu anders: Cloud native is een manier van het bouwen en draaien van software die de voordelen van compute in the cloud volledig benut. Of zoals de Cloud Native Computing Foundation het verwoordt:
In de eerste alinea zien we schaalbare applicaties in moderne dynamische omgevingen. Waarbij containers, service meshes en microservices worden ingezet.
En spreekt de tweede alinea over loosely coupled systemen that are resilient. Maar hier gaat het vooral ook over automation. Automation is het sleutelwoord.
En het resultaat van dat alles is echt wel zichtbaar in deze laatste alinea: high-impact changes frequently and predictably with minimal toil.
Wanneer je niet technisch bent zal deze definitie je vast achter de oren doen krabben. Moderne dynamische omgevingen. Waarbij containers, service meshes en microservices worden ingezet. Het gaat er uiteindelijk om dat nieuwe functionaliteiten sneller kunnen worden toegevoegd maar wel zo dat de gewenste kwaliteit en kosten daar niet op achteruit gaan. Containers, service meshes en microservices zijn daarvoor de ingrediënten.
Containers lenen zich natuurlijk uitstekend voor microservices. Containers zijn makkelijk uitwisselbaar. Zo kun je deze gemakkelijk van on-premise of van de ene naar de andere public cloud verhuizen.
En wanneer de containers worden georchestreerd in combinatie met een service mesh is ook het uitrollen, de schaalbaarheid en de management van de containers geautomatiseerd. Op dat moment maakt je architectuur optimaal gebruik van het cloud model.
Containerisatie, service meshes en microservices dus. Zonder hier veel meer in detail te treden zijn dat de ingrediënten voor een hele valide definitie van cloud native. Voor veel organisaties is dit echter een grote switch in hoe zij software ontwikkelen. Je zou kunnen zeggen dat software ontwikkeling in een transitie zit:
Kun jij vinkjes aan de rechterkant zetten? Dan ben je zeker stappen aan het maken richting cloud native development.
Wendbaarheid, snelheid en het vermogen om te innoveren
Maar waarom deze switch in software development en waarom is die cloud native strategie nu zo belangrijk?
Er ligt meer druk dan ooit te voren op IT in het digitalisatieproces. Het antwoorden met “gisteren” op de vraag wanneer een nieuwe feature ontwikkeld moet zijn is niet langer een grap maar wordt letterlijk genomen. Om competitief te blijven is de optimale Time to Market noodzakelijk en wordt een hoge mate aan flexibiliteit en wendbaarheid van ontwikkelteams verwacht.
Met kleine low-risk changes en multivariate testing wil je nieuwe ideeën in minuten of uren in plaats van weken of maanden in productie draaien.
Niet alleen onze klanten kampen met deze overlevingsdrang. Maar ook als Digital Agency blijven wij competitief in de markt. Daarom geldt ook juist voor onze development teams dat zij de afgelopen jaren hun focus hebben verlegd naar cloud native development. Dit bevordert onze wendbaarheid, snelheid en het vermogen om te innoveren.
Ja, een aantal van onze taken zijn verhuisd naar afneembare diensten in de cloud. Maar ook het tegenovergestelde is waar. Er ligt juist een hele grote en mooie uitdaging bij software development teams. Een uitdaging waar het cloud model bij helpt.
Development en DevOps zullen de stappen moeten maken. Iets dat niet voor elk team en elke IT afdeling even makkelijk is. Maar netzogoed wel noodzakelijk om innovatief te kunnen blijven en ook je digitale oplossingen in de toekomst relevant te houden.
Juist nu als onderdeel van je digitale strategie
Cloud native applicaties zijn weliswaar ontwikkeld voor het cloud model maar dit hoeft niet te betekenen dat elk nieuwe project dat je vanaf nu gaat ontwikkelen gegoten moet zijn in een Microservice architectuur. Wel is het van belang dat je organisatie
groeit naar deze moderne manier van applicatie ontwikkel- en oplevering.
Deze verandering is echter niet voor elke organisaties even gemakkelijk. IT afdelingen zijn vaak wel in staat om software draaiende te houden maar worstelen juist met de nieuwe ontwikkelingen in de markt. Met name waar de velocity van legacy software en ontwikkel teams al onder de maat is. Onze DevOps en development teams kunnen daar inspringen om je organisatie een boost te geven en te helpen in hun cloud native principes. Juist die frisse blik op een organisatie om software ontwikkeling op het volgende niveau te krijgen.
Maar vergeet ook niet dat juist de techgiganten je hierbij kunnen helpen. Zij hebben reeds de cloud native frameworks en diensten ontwikkeld die ook jij kan inzetten. Zo kun je niet alleen van start om sneller, wendbaarder en innovatiever te worden. Zo wen je ook vast aan het volgen van deze nieuwe cloud native principes. De cloud native trein rijdt in sneltreinvaart naar een nog veel mooiere bestemming. Maar let op dat je door uitstel de aansluiting niet compleet mist. Cloud native is nu toegankelijker dan ooit tevoren en staat die deur echt wijd open.
In deze tijden waar IT afdelingen risicomijdend handelen zouden zij juist moeten oppassen dat zij de grote kansen niet laten liggen!
Blik naar de toekomst
Maar maak van de belofte vooral ook geen illusie. Software ontwikkeling is en blijft complex. En vergeet ook niet dat wanneer een gedistribueerd platform eenmaal draait je deze ook draaiend moet houden.
Gelukkig zien we dat de markt ook niet stil staat en zijn de afgelopen twee jaar enorme stappen gemaakt in de vorm van o.a. Serverless platformen. Platformen die het cloud native model steeds toegankelijker maken voor ons allemaal.
Waar je voorheen bij containerisatie en orchestration op de eerste plaats aan netwerken en servers dacht zijn diensten als KNative van Google en Fargate van Amazon deze gedachte voor zowel goed als kwaad aan het weg abstraheren. De inhaalslag die deze diensten op dit moment aan het maken zijn op de populariteit van Kubernetes is enorm. Maar ook een framework als Dapr waar Microsoft een behoorlijke push in maakt zijn tekenen voor een mooie toekomst.
Zo hoeven we ons in de toekomst steeds minder bezig te houden met de infrastructuur en setup en kunnen wij onze focus direct gaan verleggen naar het genereren van waarde. Wat maakt dat we zo langzamerhand nu eindelijk in de buurt gaan komen van de cloud zoals deze al zeker 10 jaar aan ons wordt beloofd.