Cloud native werken belooft snelheid, wendbaarheid en betere controle. Maar hoe kies je het juiste platform voor jouw organisatie? Hoe rol je applicaties overal geautomatiseerd uit met minimale IT-inzet? Hoe houd je grip op shadow IT, security en compliance? En wanneer kies je Kubernetes, wanneer Cloud Foundry en wanneer combineer je ze juist?

In dit artikel nemen André Honders en Marc van der Logt je mee langs de belangrijkste keuzes rond modern app development, containers, microservices, governance en platform engineering. Dit artikel is gebaseerd op de inspiratiesessie tijdens het PQR-klantevenement RUST.

Waarom modern apps ?

De eerste vraag in de sessie was meteen de kernvraag. Waarom zou je als organisatie modern apps willen gebruiken? “Omdat modern apps softwareontwikkeling versnellen”, vertelt André. “Teams realiseren hiermee consistente, gestandaardiseerde en snellere delivery.” Daarmee wordt direct duidelijk wat modern apps opleveren, namelijk meer snelheid, meer voorspelbaarheid en meer ruimte om door te ontwikkelen. Maar hoe werkt dat precies?

André legt uit dat modern apps zorgen voor meer consistentie en snelheid van development naar productie, omdat er in code wordt gewerkt. Daardoor kun je sneller nieuwe of verbeterde diensten en functies beschikbaar stellen aan gebruikers, zonder de volledige applicatie te hoeven aanpassen. Door abstractie van de onderliggende infrastructuur komt de focus meer te liggen op de functionaliteit die nodig is. En doordat er minder silo’s ontstaan in de organisatie, verbetert ook de samenwerking.

Van complex beheer naar wendbare applicaties

Het verschil met traditionele apps is groot. Traditionele apps bestaan uit virtuele machines. Zowel schaalbaarheid als lifecycle management zijn complex en voor elk platform is een aparte installer nodig. Modern apps zijn gebaseerd op containers en microservices. Daardoor kun je makkelijker op- en afschalen en sneller versie-updates uitrollen. Ze zijn bovendien code-onafhankelijk, waardoor je ze op elk cloudplatform kunt draaien.

André vergelijkt dit met een huis. Als je dat huis zou bouwen als een modern app, dan kun je bijvoorbeeld het fundament of het dak vervangen terwijl de rest van het huis intact blijft. Zo werkt het ook bij modern apps, doordat ze zijn gebaseerd op microservices kun je één specifieke functie vernieuwen of aanpassen, zonder dat de rest van de code daardoor wordt beïnvloed.

Hoe abstractie de development stack vereenvoudigt

De stap naar containers en serverless maakt de development stack eenvoudiger. Door te verschuiven naar containers en serverless neemt de ontwikkelsnelheid toe en vermindert de infrastructuurcomplexiteit.

Simplify Development Stack - Platform

Marc schetst hoe organisaties hierin kunnen groeien. Veel organisaties doen vandaag de dag alles in eigen beheer, van compute en storage tot en met functies en data. Bij Infrastructure as a Service (IaaS) besteed je de onderlaag uit aan een MSP of cloudprovider. Daardoor hoef je alleen nog je eigen omgeving en runtime te beheren. Als je de abstractielaag verder opschroeft, werk je op een containerlaag waarop je runtime draait.

Het hoogste niveau is FaaS: Function as a Service. Hierbij wordt de volledige onderlaag automatisch opgebouwd en beschikbaar gesteld, inclusief security en policies. Daardoor kun je sneller risico’s reduceren. Bij een zero day-exploit kun je alle getroffen apps weggooien, het golden image bijwerken en alle apps opnieuw opbouwen. Dat is een kwestie van uren, terwijl dit bij klassieke applicaties, zeker bij grote aantallen, weken kan duren.

Waarom modern apps ook grip geven op governance

Modern apps bieden niet alleen snelheid en wendbaarheid, maar ook voordelen voor enterprise governance. Met een gestandaardiseerde, betrouwbare productieomgeving en een sterk geautomatiseerd platform kun je security en compliance afdwingen voor alle apps. Dat maakt modern apps geschikt voor cloud-native apps, voor de modernisering van legacy apps en als fundament onder een multi- of hybride cloudstrategie.

Moderniseren begint met kiezen: wat, waarom, wanneer en hoe?

Succesvolle appmodernisering begint volgens Marc met bepalen welke applicaties je waarom en wanneer verandert. Veelvoorkomende redenen om apps te moderniseren zijn licentiekosten, kansen in de markt, risicoreductie bij bedrijfskritische toepassingen en het verhogen van de snelheid van changes. Daarna bepaal je wat je kunt moderniseren. Daarbij kijk je naar technische factoren zoals architectuurontwerp, statefulness, het gebruik van proprietary tools en het gebruik van workloads. Vervolgens bepaal je wanneer en hoe je applicaties moderniseert: zijn domeinexperts beschikbaar of huur je die in, en is de nieuwe werkwijze al ingebed in de organisatie? Om de cloud(on)mogelijkheden van applicaties in kaart te brengen, classificeren Marc en André apps met het 5 R-model: Retain, Retire, Replatform, Rehost en Refactor.

Het groeipad naar cloud-native: refactoren als maturity model

Bij Refactoring herstructureer je de applicatie-architectuur tot een collectie microservices, zodat het een volledige cloud-native applicatie wordt. Daardoor kan de applicatie op iedere cloud draaien. In de praktijk gebeurt het maken van cloud-native applicaties gefaseerd, op basis van de genoemde factoren. Marc: “Wij adviseren om het 5R-model als leidraad te nemen om jouw organisatie naar cloud native te transformeren. Je kunt het zien als een maturity model, dus je hoeft niet alle stappen in één keer te zetten.”

Daarna wordt duidelijk waar organisaties op moeten letten. Marc en André haalden in de sessie een aantal situaties aan, zodat organisaties op voorhand gewaarschuwd zijn.

  • Uitdaging 1: cloud-native vraagt om strikte principes
    Cloud-native werken vraagt om strikte principes in architectuur, processen en automatisering. Die principes zijn vastgelegd in de 15 Cloud-Native Factors. Kies je ervoor om een applicatie te replatformen, dan moet je er zeker van zijn dat de app aan deze eisen voldoet. Doe je dat niet, dan crasht de app op Kubernetes. Dit geldt uiteraard ook voor refactoring.
  • Uitdaging 2: het cloud-native tools landscape blijft groeien
    Een tweede uitdaging is het cloud-native ecosysteem. Dat is ongelofelijk omvangrijk en groeit nog steeds. De kunst is daarom om de juiste tooling te kiezen en daarop te standaardiseren. In de sessie belichtten Marc en André twee van de meest gebruikte platforms.
  • Platformkeuze 1: Kubernetes voor schaalbare en modulaire orkestratie
    Kubernetes is het meest gangbare platform, mede omdat veel externe softwareontwikkelbedrijven hierop zijn gestandaardiseerd. Kubernetes biedt een schaalbaar en modulair platform waarin control plane en worker nodes applicaties betrouwbaar orkestreren. Het bestaat uit bouwblokken waarmee je applicatie-uitrol abstraheert via objecten zoals Deployments, Pods en Services voor consistente operations. Deze apps kunnen zowel op bare metal als op virtual machines draaien.
  • Platformkeuze 2: Cloud Foundry voor eenvoud en controle
    Cloud Foundry is volgens Marc en André de overtreffende trap om in control te komen over soevereiniteit, eigen apps en data warehouses. Het biedt een hoog geautomatiseerd platform waarmee developers zonder infrastructuurkennis applicaties kunnen uitrollen. Cloud Foundry abstraheert nog meer van de onderliggende lagen, waardoor de leercurve veel lager is dan die van Kubernetes.

Kubernetes en Cloud Foundry: kiezen of combineren?

Tijdens de sessie viel het de zaal op dat Kubernetes veel populairder is, terwijl Cloud Foundry veel makkelijker is. Marc liet dat zien in een demo. Hij demonstreerde hoe snel en eenvoudig een voorbeeldapplicatie met Cloud Foundry kan worden gemaakt, vergeleken met wat daarvoor nodig is in Kubernetes. Cloud Foundry biedt minder flexibiliteit en minder keuzemogelijkheden, maar kan erg waardevol zijn als je één of meer eigen softwareontwikkelteams hebt. Kubernetes is door de eerdergenoemde standaardisatie juist goed inzetbaar als je applicaties van leveranciers wilt draaien. Moet je dan kiezen? Nee: je kunt ze ook allebei draaien.

Welke vendor past bij jouw platformkeuze?

Diverse vendoren bieden Kubernetes-platformen aan die verschillen in beheerlast, integratie en enterprise-functionaliteit. VMware biedt vSphere Kubernetes Service en Tanzu. Red Hat biedt OpenShift en SUSE biedt Rancher. Bij hyperscalers heb je de keuze tussen Amazon Elastic Kubernetes Service, Google Kubernetes Engine en Azure Kubernetes Services. Zo ontstaat de laatste keuzevraag: wat past het beste bij jouw organisatie? Daarover adviseren Marc en André graag.

Wat namen de bezoekers mee uit de sessie tijdens Rust.?

  • Modern apps zijn een versneller voor jouw organisatie. Je kunt apps zelf ontwikkelen en runnen. Ze zijn meestal gebaseerd op code waardoor ze beter reproduceerbaar, dupliceerbaar, aanpasbaar en wendbaar zijn. Transformatie van bestaande apps gaat je ook helpen om releases, updates en lifecycle management te versnellen.
  • Modern apps dragen ook bij aan enterprise governance door automatisering, standaardisatie, snellere software delivery en ingebouwde security en compliancy.
  • Kies je voor containers of app development? Dat bepaalt mede de keuze voor Kubernetes of Cloud Foundry.
  • En kies je voor closed of open source tools? Hou dan rekening met de beschikbare ondersteuning, van de vendor of via een community. Ook speelt een financieel aspect mee. Zet de kosten van de licenties eens af tegen de kosten van de specialisten die je nodig hebt.

Meer weten of dit live zien werken?

Wil je meer informatie over enterprise automation voor jouw organisatie, heb je interesse in een inspiratiesessie of wil je het live zien werken? Neem dan contact met ons op.

Geplaatst door

André Honders