Nationale Nederlanden (NN) heeft een containerplatform gebouwd op basis van Kubernetes om devops-teams eenvoudig container-technologie (Docker) te kunnen laten gebruiken. Deze containertechnologie stelt ontwikkelaars in staat sneller, eenvoudiger en veiliger applicaties te ontwikkelen, uit te rollen en te onderhouden.
Nu, zo’n anderhalf jaar na de start van het initiatief, beheert een klein centraal team zo’n dertig Kubernetes-clusters waarvan er 21 in productie zijn. Twintig ontwikkelteams werken ermee. Samen draaien ze momenteel meer dan achthonderd workloads.
Uitdaging
NN is er vrij snel in geslaagd verschillende productieomgevingen te draaien. NN behoort hiermee samen met ABN Amro en T-Mobile Nederland tot de eerste grote Nederlandse ondernemingen die dit orkestratieplatform ook daadwerkelijk voor grootschalige productie inzetten. Veel andere ’traditionele’ bedrijven met de nodige legacy oriënteren zich wel op Kubernetes maar komen hooguit tot vrijblijvende experimenten op kleine schaal.
Wiender Sarup en Annegies van ’t Zand, die deel uit maken van het Container Platform Team, presenteren hun case dinsdag tijdens Kubecon/CloudNativeCon. Deze conferentie zou aanvankelijk in Amsterdam worden gehouden maar vindt nu virtueel plaats. Volgens hen is het niet zo moeilijk om Kubernetes als managed service in de lucht te houden. De uitdaging zit vooral in de keuze van de extensies op Kubernetes, de gebruikte componenten, het netwerk en de verbindingen met de bestaande infrastructuur. Ook de veiligheid, compliance en het beheer vragen veel aandacht.
Interessante logberichten
Bij het laten draaien van Kubernetes, vooral in een enterprise-omgeving, moet aan al die aspecten worden gedacht. NN noemt als voorbeelden de ‘loadbalancing’ van applicaties. Belangrijk zijn ook de monitoring en de toegang tot meetgegevens. Als interessante logberichten opduiken, moet je dat snel in een context kunnen plaatsen. Hoe vaak doet een probleem zich voor en hoelang? Kubernetes is één stap, alles wat daarbij komt vereist veel meer werk. Heel veel componenten en tools moesten in het platform worden geconfigureerd. Voor een juiste werking zijn veel componenten van elkaar afhankelijk. Daarom waren uitgebreide testen nodig.
Het containerplatform van NN kent integratie met de centrale services zoals logging, monitoring en identity access management. Dit platform is wat NN noemt een ‘eigenzinnige compositie’ van infrastructuur en (opensource) tools. Deze consistente platform-interface wordt aan de devops-teams als ‘managed service’ geleverd.
Volgens Sarup en Van ’t Zand, beiden Kubernetes-ontwikkelaar bij NN, was het niet gemakkelijk het juiste platform te kiezen. Als basis wordt de ‘managed’ Kubernetes-dienst van Amazon Web Services (EKS) gebruikt. Om EKS heen koos het platform-team voor een eigen ‘wikkel’. Alleen de componenten en integratie die een ontwikkelteam echt nodig had, werden geïnstalleerd. Om het platform secure en operationeel te houden, worden diensten als Prometheus (monitoring en alerts), Grafana (monitoring van infrastructuur), Falco (sandbox) en Opsgenie (alerts) gebruikt.
Het Container Platform Team van NN richt zich op vier kritische uitgangspunten om hun managed NN Container Platform te leveren: self-service, life-cycle management, testing en continuous integration/continuous delivery. Dit laatste zorgt ervoor dat veranderingen in de broncode automatisch leiden tot een nieuwe container. Aan het opzetten van de ci/cd is veel tijd besteed.
Verder worden veel self-service-principes gehanteerd. Een klein team kan het platform dan in de lucht houden. Het is de bedoeling om de devops-ontwikkelaar zo veel mogelijk zelfstandig te laten werken.
Als onderdeel van het life-cycle management-raamwerk worden de centrale Kubernetes (EKS/AKS)-implementaties en de open source tooling onafhankelijk van elkaar geüpdatet zonder dat dit impact op elkaar heeft. Het team heeft een gestandaardiseerd testraamwerk.
Veel aandacht wordt besteed aan unit- en integration-testing. Dat maakt het uitrollen van de applicaties beter voorspelbaarder. Als ci/cd-oplossing gebruikt het team concepten als gefaseerd uitrollen (staged deployments) en feature flagging. Hierdoor kunnen 24/7 zonder nadelige impact wijzigingen worden doorgevoerd in een grote omgeving. Uiteindelijk hoeven de devops-teams zich hierdoor alleen maar druk te maken over het containerisatie van hun applicatie. Hierdoor wordt hun ontwikkelsnelheid significant verhoogd. Zeker nu fintech-bedrijven op deelgebieden snel nieuwe applicaties ontwikkelen, moet NN het tempo hoog houden.
Hoewel het platform oorspronkelijk op Amazon Web Services (AWS) is gebouwd, is het sinds kort ook beschikbaar gemaakt op Azure. Hierdoor kan de container workload eenvoudig verschoven worden tussen de twee publieke cloud omgevingen, zonder dat de applicaties hiervoor aangepast hoeven te worden. Het container platform is hiermee essentieel onderdeel van het realiseren van de hybride cloud strategie van NN. Het adopteren van container technologie kost weliswaar tijd maar daar staan grote voordelen tegenover. Cloud native computing, opensource, containers en Kubernetes hebben binnen het IT landschap van NN een enorme flexibiliteit, snelheid en standaardisatie gebracht. De eerste use-cases bevestigen dit.
NN is actief in Europa en Japan met verzekeringen, vermogensbeheer en andere financiële diensten.