Containers waarin verpakt applicaties, zijn bezig aan een onstuitbare opmars in de softwarewereld. De techniek maakt het mogelijk snel applicaties uit te testen en in productie te brengen. De softwareontwikkeling kan hierdoor in een hogere versnelling. Geen wonder dat vooral devops-organisaties dol op containers zijn. Ontwikkelaars zien snel resultaat van hun inspanningen. Ook passen containers goed bij een architectuur van microservices.
Een ander voordeel is de grote flexibiliteit. Het op schaal brengen en uitrollen gaat eenvoudiger. Containers zijn gemakkelijk op meerdere servers en in verschillende cloud-omgevingen te draaien. Anders dan virtual machines delen containers het besturingssysteem en diens functies. Daardoor zijn per applicatie veel minder resources nodig.
Alle toonaangevende enterprise-containerplatforms zijn gebaseerd op opensourcetechnologie zoals het containerformaat Docker en het container-orkestratieplatform Kubernetes. Docker behoort samen met Red Hat tot de toonaangevende containerplatforms voor het bouwen, configureren en distribueren van containers.
Vooral Kubernetes, een ecosysteem voor het beheren van grotere aantallen (clusters) Docker-containers, heeft de grote stoot tot de populariteit van containers gegeven. Behalve Linux is er geen enkel opensourceplatform waar ontwikkelaars zoveel bijdragen aanleveren. Dit orkestratieplatform, dat vijf jaar geleden door Google werd overgedragen aan de onafhankelijke Cloud Native Computing Foundation (CNCF), is momenteel de snelst groeiende Linux-toepassing.
De ontwikkeling is bij de it-leveranciers niet onopgemerkt gebleven. Alle grote cloud-leveranciers hebben Kubernetes omarmd. Ook softwareleveranciers zetten hier massaal op in. Veel eindgebruikers zijn Kubernetes aan het uittesten. Belangrijker nog is dat ook steeds meer containers in productie komen.
De pioniers waren jonge techbedrijven als Airbnb, Pinterest, Reddit, Spotify en Tinder. Pokemon Go kon dankzij Kubernetes razendsnel worden opgeschaald. Maar ook meer klassieke ondernemingen bouwen inmiddels systemen op basis van containers.
Hobbels
In Nederland behoort Tele2, dat begin dit jaar op ging in T-Mobile, tot de voorlopers. De overgang naar het enterprise-containerplatform Docker is positief verlopen, aldus Dennis Ekkelenkamp, manager cloud & infrastructure solution T-Mobile. Maar dat het niet gepaard ging met de nodige hobbels, is een tweede. Tijdens het congres Container Today in Den Haag sprak hij openhartig over de uitdagingen bij de transitie.
Tele2 zocht zijn heil in containers vanwege het gemak waarmee applicaties zijn uit te rollen. Wat ook aansprak, was het vooruitzicht dat de onderliggende infrastructuur flexibeler wordt. Containers vormen de logische basis voor een microservices-architectuur waarbij wordt gewerkt met kleine stukjes software. Volgens Ekkelenkamp is de kwaliteit van de software er door te verbeteren. Een ander voordeel is dat de ontwikkeling veel sneller gaat. Aanpassingen zijn ook gemakkelijker door te voeren.
Voordat het nieuwe platform klaar was, moesten echter nog heel wat problemen met de ‘resources’ worden overwonnen. Bovendien waren er technische uitdagingen, met name op gebied van security. Ook moest een deel van het team aan de veranderingen wennen. Ekkelenkamp sprak van ‘old school thinking’. Verantwoordelijkheden moesten opnieuw worden toegewezen, wat niet altijd even soepel verliep.
Uiteindelijk lukt het de oude gewoontes te doorbreken. Gewerkt werd in een klein kernteam. Een
ander advies is de eenmaal ingezette koers naar containerisatie stevig door te zetten. ’Go big or go home,’ aldus Ekkelenkamp. ‘Kies grote belangrijke applicaties. Als zo’n project een succes wordt, dan krijgt dat ook de volle aandacht. Dan krijg je meer kansen om meer met containers te gaan doen.’
Ingeslagen weg
Verder onderstreepte hij het belang van een goede communicatie binnen de organisatie en een strakke planning met deadlines. Werk ook met voorbeeldprojecten. De templates en richtlijnen die deze eerste projecten opleveren, kunnen weer bij andere projecten worden gebruikt. Verder is het zaak om de ‘ownership’ goed te regelen. Verantwoordelijkheden dienen helder te zijn. Ekkelenkamp waarschuwde geen grijze gebieden open te laten.
Ekkelenkamp concludeert dat Docker de aanzet heeft gegeven tot versnelde veranderingen en transformatie. De ontwikkeltijden zijn aanzienlijk ingekort. Voorheen werd nieuwe software elke drie weken uitgerold. Nu gebeurt dat dagelijks. De ontwikkelaars zijn niet meer afhankelijk van het infra-team. ‘Infra is geen rem meer. Hun rol wordt ook meer adviserend.’ Het testen is veel eenvoudiger geworden. Het werken met containers geeft ontwikkelaars meer vrijheid. Ze kunnen veel sneller nieuwe software afleveren. Continuous delivery/continuous integration (ci/cd) is een realiteit geworden. Het containerplatform brengt teams op een natuurlijke manier meer tot elkaar. Het gebruik van containers helpt ook het denken in silo’s te verminderen.
Hij stelt dat de ‘net promotor score’ als indicator van kwaliteitsverbeteringen behoorlijk omhoog is gegaan. Bovendien werken ontwikkelaars graag met containers, waardoor talent makkelijk is te vinden en vast te houden.
T-Mobile gaat dan ook zeker op de ingeslagen weg door. De Tele2 Webshop is op Docker gebouwd. Sindsdien zijn meer en meer applicaties uitgerold. Nieuwe workloads worden aan het Docker platform toegevoegd.
Het werken met een microservices-architectuur en containers staat bij T-Mobile nu hoog op de agenda. Het succes van de eerste Docker-projecten maakt het gemakkelijker de containerisatie te promoten in de nieuwe organisatie waar Tele2 nu deel van uitmaakt.
Oud-bokskampioene
ABN Amro behoort tot de pioniers op gebied van Kubernetes en containerisatie met Docker. De bank is bezig met de transformatie naar devops en het implementeren van ci/cd. Kubernetes versnelt de transitie richting ‘hybrid cloud’. Door opensourcesoftware te gebruiken, wordt maximaal geprofiteerd van de voordelen van de cloud. Denk aan kortere ontwikkeltijden en de mogelijkheid snel op te schalen. ABN Amro bouwt niet alleen nieuwe systemen op basis van containers maar doet dit ook voor bestaande ’legacy-applicaties’
Zeker in een sterk gereguleerde sector als het bankwezen blijkt de implementatie van zo’n ‘containerorkestrator’ 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.
Volgens Rehorst is bij de implementatie van een containerplatform een duidelijke begeleiding (governance) cruciaal. Bovendien moeten de beste cloud-eigenschappen ‘gemakkelijk verteerbaar’ zijn voor developers, zodat zij zich kunnen concentreren op de ontwikkeling van hun applicaties. Ook is een uniforme werkwijze gewenst. En ten slotte is het belangrijk de opgedane kennis en ervaringen te delen tussen teams en ‘best practices’ te creëren.
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 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.
Lessen van ABN Amro
Wat zijn de lessen die ABN Amro tot nog toe zijn geleerd bij het werken met containers? Laura 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. Kijk 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.
(Deze bijdrage verscheen eerder in Computable-magazine 06/2019)
Kubernetes snel volwassen
Marktonderzoeker Gartner ziet het aantal ‘use cases’ uitbreiden. Volgens senior analist Wataru Katsurashima is Kubernetes de basis van de moderne, cloud-native infrastructuur aan het worden. Als middleware wordt deze ‘toolkit’ voor het beheer van ‘workloads’ tussen applicaties en de infrastructuur geplaatst. Overigens is Kubernetes niet overal voor geschikt. Volgens Katsurashima moet de applicatie schaalbaar zijn. Een andere vereiste is dat de organisatie agile en devops wil zijn. Als orkestratie-platform kan Kubernetes nog veel belangrijker worden. De Gartner-analist ziet ook use cases op gebied van big data en edge computing. Maar het succes hiervan moet nog wel overtuigend worden aangetoond. Hetzelfde geldt voor machine learning.
De verdere volwassenheid van Kubernetes hangt mede af van de beschikbaarheid van commerciële versies van deze opensourcesoftware. Veel grote ondernemingen hechten zwaar aan de dienstverlening die daarbij wordt gegeven.
Ecosysteem groeit
Onlangs zijn veel nieuwe technologieën aangekondigd die zijn te integreren in Kubernetes. Het ecosysteem groeit. Verschillende leveranciers bieden thans oplossingen om de uitrol van containers veiliger te maken. Vooral ondernemingen die willen overgaan tot productie, zitten daar om te springen. Een andere nuttige toevoeging is de software voor het monitoren van moderne applicaties en containers. Continu moeten statistieken worden bijgehouden. Ontwikkelaars hebben behoefte aan oplossingen waarbij rekening wordt gehouden met het kortstondige en geïsoleerde karakter van containers en applicatiediensten. Zeker bij een gedistribueerde infrastructuur als Kubernetes is het monitoren geen eenvoudige klus.