Containers zetten hun opmars door. Vooral omdat zij modernisering van bedrijfsprocessen mogelijk maken. Uit onderzoek van CCS Insight, in opdracht van Red Hat, blijkt evenwel een sterke behoefte aan tools en automatisering van de it-processen die gepaard gaan met de inzet van containers. Partners en leveranciers bepalen mede het succes van containergebruik.
‘Containers and Kubernetes; Market Dynamics Report 2021’ heet het rapport van de analisten van CCS Insight; de weerslag van een enquête onder meer dan 570 bedrijven in Europa, het Midden-Oosten en Afrika, waaronder 48 uit Nederland en België.
Interessant is te lezen waarom containers zo in trek zijn. Dat heeft alles te maken met het gebruik van cloud computing. Applicatieontwikkelaars stappen af van de tijdrovende watervalmethode en hanteren agile-processen. Daar zijn elementen bijgekomen als gebruikerservaring en devops. Deze veranderingen vormen de achtergrond voor de volgende fase: cloud operations.
Voor veel organisaties is de cloud niet nieuw meer. Uit de studie blijkt dat 57 procent containers lokaal bouwt, 52 procent test ze lokaal, 51 procent benut containers om ze in de cloud te gebruiken en 41 procent zet ze on-premises in. Het antwoord op de vraag ‘welke van deze continue integratie, test en implementatie mogelijkheden gebruikt u vaak?’ is als volgt: Azure DevOps (32 procent), Github actions (31 procent), Jenkins (31 procent), AWS CodeDeploy (30 procent), in-house ontwikkelde scripts (24 procent) en Maven (23 procent).
Innovatie
Containers helpen organisaties bij de overstap naar de cloud door een micro-infrastructuur aan te bieden waarop ze toepassingen kunnen draaien die vervolgens kunnen worden ingezet in verschillende clouds. Een ontwikkelaar kan een gedistribueerde applicatie in verschillende containers draaien en diezelfde containerarchitectuur kan draaien in private of publieke clouds. Containertechnologie vermijdt de valkuilen die je vaak tegenkomt bij het draaien van virtuele machines, die aangepaste configuraties kunnen vereisen en niet zo lichtgewicht zijn als containers.
Containers dragen bij aan de portabiliteit van applicaties; hetzelfde implementatiepatroon is dan bruikbaar voor meerdere clouds. ‘Uit ons onderzoek blijkt dat respondenten containers zowel technische als zakelijke voordelen toedichten. Het meest relevant is dat respondenten cloudadoptie zien als het grootste voordeel van het gebruik van containers’, aldus het rapport.
Bij de technische voordelen van cloud staat innovatie bovenaan met 39 procent, gevolgd door modernisering (36 procent) en ondersteuning van hybride it-operations. Cloudadoptie is met 33 procent nummer een bij de zakelijke voordelen van containers, gevolgd door innovatie (31 procent) en schaalbaarheid (30 procent). De voordelen van containers worden als volgt beschreven: voor de integratie of consistentie van interne systemen (43 procent), om oplossingen automatisch op te schalen die geen interne opschalingsmechanismen hebben (35 procent) en ontwikkeling en levering van commerciële oplossingen voor externe klanten (32 procent).
Geen wonder dat IDC een flinke groei verwacht van containers: ‘Tegen 2024 zal 75 procent van de organisaties prioriteit geven aan infrastructuurflexibiliteit en operationele efficiëntie, wat zal leiden tot een toename van vijf maal de adoptie van cloudnative architecturen voor core business applicaties’.
Uitdagingen
In deze begindagen van veelvuldig gebruik van containers voor bedrijfsapplicaties in multi- en/of hybride cloudomgevingen schuilt nog wel een aantal uitdagingen. Opvallend is dat ontwikkelaars van containers zich niet alleen bezig houden met de code, maar evenzeer met de operationele aspecten van de werking van applicaties. De opstellers van de studie juichen dit toe: ‘Containers vereisen vaardigheden in zowel de ontwikkelings- als operationele functies, aangezien zij beide beïnvloeden. Het resultaat is dat beide meer op één lijn komen rond devops dan voorheen. Voor sommige organisaties die hebben geworsteld om in de richting van een devops-cultuur te evolueren, kunnen containers het antwoord zijn.’
Die vaardigheden vormen overigens wel een uitdaging. De afgelopen jaren hebben veel ontwikkelaars zich bekwaamd in het werken met virtuele omgevingen; de kennis en ervaring die nodig is om succesvol met containers te werken is nog ruim onvoldoende aanwezig. Hier zien de auteurs een rol voor leveranciers en partners op gebieden als training van en ondersteuning bij het werken met containers.
Tools en automatisering
Ontwikkelaars dienen zich bezig te houden met het bouwen van moderne applicaties en zich niet hoeven te bekommeren om de processen die nodig zijn om containers succesvol toe te passen. Vrijwel alle respondenten geven aan dat er behoefte is aan tooling. Orkestratie staat met stip bovenaan.
Een microservices-architectuur zal elke service in zijn eigen container hebben draaien en elke container kan meerdere kopieën hebben voor redundantie en schaalbaarheid. Containers kunnen ook veel tijdelijker zijn dan virtuele machines met een korte levensduur. De snelle fluïditeit en complexiteit van deze opzet kan uitdagend zijn om te beheren. Met de ontwikkeling van Kubernetes is getracht dit op te lossen, maar dit platform is geen wondermiddel gebleken. De wijdverspreide adoptie – alle grote publieke clouds draaien er een versie van – heeft geholpen, maar containerorkestratie is nog steeds moeilijk. Naarmate meer containers binnen een omgeving draaien, neemt de behoefte aan automatisering van de bijbehorende it-processen toe.
‘Organisaties erkennen dat er een groeiende behoefte is aan automatisering van it-processen’, meldt het onderzoek. ‘Het bereiken van schaalgrootte is een uitdaging die niet handmatig kan worden aangepakt; alleen door processen te automatiseren zullen moderne organisaties gedijen en mogelijk overleven. Het probleem is niet alleen dat mensen overbelast kunnen raken, maar ook dat ze niet snel genoeg kunnen reageren op veranderingen; automatisering zorgt voor herhaalbaarheid, wat de kwaliteit ten goede komt. De mate van automatisering is een indicator van de volwassenheid en vooruitstrevendheid van een organisatie.’
De auteurs van het onderzoek menen verder dat het toepassen van microservices wellicht een vroege dood zal sterven als het gebrek aan kennis/vaardigheden, tools en automatisering niet wordt opgelost.
Vertrouwen
Partners kunnen helpen de huidige onvolkomenheden van het werken met containers op te lossen. Hoewel organisaties de vaardigheden de vaardigheden van hun eigen mensen moeten verbeteren, is er nog steeds een rol te spelen. Zij kunnen behulpzaam zijn bij het versnellen van adoptie en verandering, maar dit moet wel gepaard gaan met het opleiden van interne medewerkers. Dit verklaart de populariteit van co-located projecten waarbij de derde partij en de organisatie in dezelfde ruimte samenwerken (fysiek, en meer recent virtueel) om ideeën, kennis en vaardigheden uit te wisselen.
Leveranciers van derden zijn ook belangrijk omdat zij platforms en hulpmiddelen kunnen bieden om de uitdagingen die met containers gepaard gaan het hoofd te bieden. Uit de enquête bleek dat bij het zoeken naar een partner voor containergebaseerde applicaties, 44 procent van de respondenten zegt dat ‘vertrouwen’ in de top drie criteria staat. Dit werd gevolgd door overwegingen zoals ‘bruikbaarheid’ (genoemd in de top drie door 37 procent van de respondenten), ‘flexibele prijzen’ (36 procent), ‘ondersteuning voor opensourcesoftware’ (31 procent), en ‘toegankelijke training’ (31 procent).
61 procent van de respondenten erkent container-orkestratiediensten nodig te hebben; 19 procent ziet het echter als te complex om zelf te implementeren. Meer dan de helft van alle respondenten verwacht dan ook dat de ontwikkeling van containers in hun organisatie zal worden uitgevoerd door een externe dienstverlener, hetzij volledig (24 procent) of via een combinatie van een dienstverlener en interne middelen (32 procent). Er rust dus een zware taak op zowel de schouders van leveranciers als die van partners om het gebruik van containers tot een succes te maken.
Is orkestratie niet een ander woord voor (proces)spaghetti?
Dan is het de hoogste tijd om procesmodellen te vereenvoudigen met beslissingstabellen:
https://blog.sapiensdecision.com/how-the-decision-model-drastically-simplifies-process-models/
https://www.modernanalyst.com/Resources/Articles/tabid/115/ID/1954/The-Decision-Model-and-Process-Models-with-BPMN.aspx
die hier nog minder gelukkig decision models worden genoemd.
Het onderbrengen van orkestratie in beslissingstabellen is dus beslist een stap in de goede richting:
https://openrules.wordpress.com/2020/10/17/rules-based-service-orchestration/
al mag het van mij nog wel wat doelgerichter, zoals blijkt uit de hier vermelde Loan Origination example/challenge.
Kubernetes is de orkestratietool voor containers. Of dat nou proces-spaghetti is ..
Ik lees een hoop over tabellen en xls files.
Zijn we weer terug bij het kunstmatig formuleren van een probleem waarvoor je een oplossing hebt omdat je de oplossing zo leuk vindt.
Waarom toch bij dit soort technieken altijd weer DevOps, Scrum en de cloud erbij trekken?
Containertechnieken zijn goed in het ‘dichtbinden’ van omgevingen waarbinnen een applicatie kan draaien. Hoe die applicatie is gemaakt (waterval, agile of desnoods verkregen door het sublimeren van code uit tuinkabouters) of de werkomstandigheden van teams (bijv. DevOps, DevSecOps) is niet van belang.
Container technieken maken het mogelijk om een applicatie te distribueren op een manier waarbij de configuratie van de uiteindelijke omgeving waarbinnen de applicatie komt te draaien (OS, hardware, cloud, VM, etc.) er minder toe doet.
Het valt mij nog mee dat de auteur er blockchain nog niet bij heeft getrokken.