ABN Amro is bezig met de transformatie naar devops. Naast het implementeren van ci/cd (continuous integration/continuous delivery), is er ook aandacht voor een hybrid cloud strategy. Door opensourcesoftware te gebruiken, wordt maximaal geprofiteerd van de voordelen van de cloud. Denk aan kortere ontwikkeltijden en de mogelijkheid snel op te schalen. De 250 jaar oude bank probeert de droom van iedere ontwikkelaar te realiseren. Dat betekent het geautomatiseerd uitrollen van applicaties, het schaalbaar maken en het beheer ervan.
Tijdens de grote ontwikkelaarsconferentie Kubecon/CloudNativeCon in Barcelona deelde de bank zijn ervaringen, iets wat de opensourcecommunity op prijs stelt. ABN Amro behoort tot de pioniers op gebied van Kubernetes. Dit opensourcesysteem voor het beheer van applicaties die in containers zitten verpakt, lijkt uit te groeien tot de standaard op dit gebied. Maar zeker in een sterk gereguleerde sector als het bankwezen blijkt de implementatie van zo’n ‘container orkestrator’ een hele uitdaging. De adoptie van Kubernetes in een grootzakelijke omgeving is geen sinecure.
Laura Rehorst, product owner Stratus Platform (ABN Amro), is daar open over. Zij laat weten dat Kubernetes geen software is die je zomaar even opstart en dan meteen zijn werk doet. Maar als oud-bokskampioene is zij gewend zich door tegenslagen heen te werken.
Rehorst begint haar presentatie met de constatering dat bij de implementatie van een containerplatform een duidelijke begeleiding (governance) cruciaal is. Bovendien moeten de beste cloud features ‘gemakkelijk verteerbaar’ zijn voor developers, zodat zij zich kunnen concentreren op de ontwikkeling van hun applicaties. Ook is een uniforme werkwijze gewenst. En tenslotte is het belangrijk de opgedane kennis en ervaringen te delen tussen teams en ‘best practices’ te creëren. Dit zorgt er voor dat teams niet elke keer het wiel opnieuw hoeven uit te vinden, maar verder kunnen bouwen op elkaars kennis.
Missie van het Stratus-team, waarvan Rehorst product owner is, is de ontwikkelteams in staat te stellen veilige software van hoge kwaliteit te maken.
Uitgangspunt voor de bank is dat het managed containerplatform waarmee wordt gewerkt, gemakkelijk te gebruiken is. Daarbij staat veiligheid hoog in het vaandel, want als bank heb je een grote verantwoordelijkheid. Containers brengen nieuwe risico’s met zich mee, zoals kwetsbaarheden in containers. Het scannen van images en containers is dan ook van groot belang alvorens er iets naar productie gaat.
Portabiliteit
Portabiliteit is een ander argument waarom de bank met containers werkt. Ze moeten makkelijk van de ene cloud naar de andere zijn over te dragen. Om dit te faciliteren, maakt de bank zoveel mogelijk gebruik van agnostische tooling, zodat je niet te veel gebonden bent aan de cloudprovider. De bank streeft ook naar herbruikbare software-componenten, zoals infrastructure-as-code-modules en base-images die zijn te hergebruiken door de ontwikkelteams.
Eind vorig jaar werd bij ABN Amro het Stratus-team samengesteld dat op basis van deze uitgangspunten de eerste versie van een minimum viable product heeft ontwikkeld. Voor de orkestratie worden de Kubernetes-versies van Amazon (EKS) en Azure (AKS) gebruikt. De apps met alles wat daarbij hoort, worden met Docker ingepakt in containers, gescand met Twistlock en naar productie gebracht middels een geautomatiseerde pipeline.
Focus
Wat zijn de lessen die tot nog toe zijn geleerd? Rehorst benadrukt het belang van een goede focus. Richt je op het minimum viable product en laat je niet afleiden. Belangrijk is een holistische benadering waarbij je je niet alleen richt op de technische aspecten maar ook een heldere governance wordt gecreëerd waarbij alle verantwoordelijkheden in kaart zijn gebracht.
Les drie is om vooral te denken aan de mogelijkheden die het platform biedt voor developers en op basis daarvan de beste tooling te selecteren en niet andersom. De nadruk ligt op het bieden van de juiste faciliteiten waardoor de developers beter en makkelijker kunnen werken. Rehorst: ‘We kijken in de eerste plaats naar wat de ontwikkelaars nodig hebben en niet naar wat al voorhanden is en eventueel goed werkt.’
Ook de iteratie is een punt van aandacht. Rehorst: ‘We willen niet meteen een heel groot platform neerzetten. Begin klein en breid in kleine stappen uit. Doe dat ‘lean’ met echte klanten.’ Zo’n gefaseerde uitrol met feedback vanuit de developers werkt het beste. Probeer zo veel mogelijk te automatiseren. ‘Want het op grote schaal uitrollen van containers valt niet meer handmatig te doen’, aldus Rehorst. Dit laatste advies sluit ook aan bij Kubernetes, een manier die ontwikkelaars de mogelijkheid biedt snel en geautomatiseerd software te testen en live te zetten in clouds.
Tikkie
Het geautomatiseerd uitrollen en beheren van applicaties is de droom van iedere ontwikkelaar. Dat geldt ook voor ABN Amro met zijn ruim vierhonderd ontwikkelteams. Die teams zijn jaarlijks bezig met meer dan drieduizend applicaties. Als al die applicaties automatisch zijn uit te rollen, scheelt dat veel tijd en moeite.
ABN Amro kent verschillende cases waar de bank containers voor gebruikt. Denk aan containers die de developers helpen om hun software te ontwikkelen. Ook worden ze gebruikt om software te scannen met het oog op de kwaliteit en de veiligheid van de code. Daarnaast bieden sommige leveranciers hun software tegenwoordig aan in containers. Een mooi voorbeeld van een applicatie die momenteel in containers draait, is Tikkie, de app om via WhatsApp geld terug te vragen dat je hebt voorgeschoten. Een tweede voorbeeld is Cloudbees Jenkins. De bank gebruikt deze applicatie voor zijn continous integration pipelines.
Voor Kubernetes bestaan er overigens alternatieven zoals Docker Swarm. Maar volgens Rehorst is Kubernetes de standaard waar de markt naar toe beweegt. Zelfs Docker EE biedt tegenwoordig ingebouwde Kubernetes aan, boven op Swarm. Rehorst: ‘Met het team hebben we uitgebreid onderzoek gedaan naar de beschikbare alternatieven en er ook mee geëxperimenteerd. Conclusie van deze proof of concepts is dat Kubernetes het beste aansluit op onze behoeften en visie.’
Het Cloud Platform Team van ABN Amro werkt nauw samen met de ‘compliance officers’. De bank gebruikt infrastructure-as-code om haar EKS clusters (Kubernetes-versie van Amazon) uit te rollen. Ook in gebruik is compliance-as-code om bepaalde policies (regels) af te dwingen – waar moet ontwikkelde software aan voldoen? En als het hier niet aan voldoet, dan wordt het automatisch tegengehouden in de pipeline en kan de container niet naar productie. Dit is ‘shift left’ in compliance; je pakt de risico’s al veel eerder aan door het te automatiseren. Hiervoor wordt Open Policy Agent gebruikt.