Wat is DevOps en hoe ontwikkelt dit model zich in de cloud

Abonneer je gratis op Techzine!

Als je het basisbegrip DevOps analyseert is het een samenvoeging van de traditionele Development- en Operations-teams. Vandaag de dag is het echter veel meer dan dat. Zeker in de cloud is er sprake van een doorontwikkeling van wat het DevOps-model is, waarbij steeds meer taken worden geautomatiseerd en er meer tijd is om te focussen op de applicatie en features die het verschil maken.

We gingen rond de virtuele tafel zitten met Sebastien Stormacq, AWS Technical Evangelist bij Amazon Web Services (AWS). Hij spreekt dagelijks met grote bedrijven en dan vooral met de ontwikkelaars die daar werkzaam zijn. Hij praat met ze over hun behoeftes, hoe ze het ontwikkelen van applicaties vandaag de dag ervaren, welke tools ze belangrijk vinden, wat ze nog missen of wat op dat moment een pijnpunt is in de ontwikkeling van een applicatie of infrastructuur.

Vanuit zijn rol kan Stormacq ze adviseren over allerlei tools van AWS of derde partijen, om pijnpunten weg te nemen of verlichten. In sommige gevallen kan hij ook feedback doorgeven aan de ontwikkelteams van AWS om bepaalde diensten beter te maken. Stormacq is in elk geval iemand die middenin de DevOps-wereld staat en als geen ander weet hoe dat model zich ontwikkelt.

Lees ook: AWS vervangt steeds meer Intel Xeon-chips met zelfgemaakte ARM-chips

Samenvoegen Developers en Operations

We vroegen hem naar het succes van het DevOps-model. Stormacq stelt dat het samenvoegen van Developers en Operations onvermijdelijk was. Applicaties worden steeds complexer. Ondanks de introductie van microservices is het totaalpakket veel complexer aan het worden. Applicaties gebruiken steeds meer libraries en bestaan uit steeds meer regels code. Voorheen werd het operationele stuk over het hek gegooid bij Operations met een handleiding hoe te installeren. Dat model is niet meer houdbaar. Volgens Stormacq zijn er bijna geen bedrijven meer te vinden met gescheiden Developer- en Operations-teams, althans niet als ze aan clouddevelopment doen.

Behalve dat de samenvoeging onvermijdelijk was, biedt het volgens Stormacq ook veel meer keuze. Doordat bedrijven nu met DevOps-teams werken, kan men direct bij het ontwerpen van de applicatie bepalen hoe de infrastructuur eruit moet komen te zien. Middels programmeercode kunnen de teams de complete infrastructuur opbouwen en configureren. Daarnaast is bij de meeste organisaties de complete CI/CD pipeline geautomatiseerd, zodat het uitrollen van een applicatie met één druk op de knop kan gebeuren en Operations er niet meer aan te pas komt.

Meer Development-skills, minder Operations

Het is ons opgevallen dat de taken van een ontwikkelaar fors zijn toegenomen en die van iemand in Operations vaker zijn geautomatiseerd of verschoven naar ontwikkelaars. Volgens Stormacq is dat in de cloud wel herkenbaar. Al stelt hij dat veel Developers ook Operations-taken kunnen uitvoeren.

AWS heeft met zijn Cloud Development Kit (CDK) daar min of meer op aangestuurd. Met de CDK kan in de favoriete taal van een ontwikkelaar een complete infrastructuur worden samengesteld en opgebouwd. AWS ondersteunt hiervoor Javascript, Python, Java en C#. Ook is er ondersteuning voor vrijwel elke IDE om te ontwikkelen voor het AWS-platform, waarbij zaken als code completion, Syntax highlighting en compiler verification in de editor zijn geïntegreerd. Uiteraard in Cloud9, de eigen IDE van AWS, maar ook in Visual Studio Code, IntelliJ, JetBrains en enkele andere IDE’s.

Alles is meer Developer gedreven

In een gesprek met AWS komt het voorbeeld van Amazon natuurlijk ook snel naar voren. Amazon was er vroeg bij met het omarmen van het DevOps-principe. De complete organisatie ging hiervoor op de schop, vanwege het geloof in meer innovatie.

Bij Amazon werken ze met zogenaamde pizza-teams. Elk team moet kunnen eten van één a twee pizza’s. Daarbij wordt wel gedoeld op Amerikaanse pizza’s. Je hoeft geen honger te hebben. Dus in principe zitten in elk team maximaal 16 personen. Daarbij draagt het team de volledige verantwoordelijkheid voor de dienst die het ontwikkelt. Volledige verantwoordelijkheid betekent niet alleen de ontwikkeling, maar ook het optuigen van de infrastructuur, het onderhoud, monitoring, alerting, geautomatiseerde probleemoplossing en het aanmaken van tickets. Teams zijn dus verantwoordelijk voor het complete DevOps-traject.

Vandaar dat het automatiseren van veel zaken wenselijk is en veel Devops-teams hier gebruik van maken. Dit soort teams willen zoveel mogelijk tijd steken in het verbeteren en optimaliseren van hun applicaties voor de klant, en minder in het controleren en nalopen van Operations-taken.

Vragen we niet teveel van Developers?

Als je kijkt naar de ontwikkeling van Developers de afgelopen jaren, dan valt op dat ze er steeds meer taken hebben bijgekregen. Ze moeten niet langer alleen de applicatie ontwikkelen. Ook de code programmeren voor de infrastructuur, rekening houden met applicatiebeveiliging, het testen van de applicatie, data science toepassen en databeheer vallen onder het takenpakket. Daarnaast zijn er nog compliance eisen en wil men graag een optimale gebruikservaring. Alles schuift een beetje richting het bord van de ontwikkelaar. We vroegen aan Stormacq hoe hij dat ziet en of we niet teveel vragen van een ontwikkelaar.

Stormacq zegt hierover dat dit in de basis wel klopt, maar dat je ook heel veel specialisaties ziet ontstaan. Waar je voorheen veel full stack ontwikkelaars had voor zowel de front-end als back-end, zie je dat dat al meer gescheiden is. Voor bedrijven is het belangrijk om bij het bouwen van een DevOps-team goed in de gaten te houden welke specialisaties je nodig hebt.

Uiteindelijk kan je het vergelijken met de bouw van een huis. Je hebt veel bouwvakkers en gereedschap nodig. Qua gereedschap voorziet de cloud in een enorm assortiment. Alleen AWS heeft al meer dan 200 clouddiensten die je als gereedschap kan tellen, maar je hebt ook verschillende specialisten nodig. In plaats van bouwvakkers als schilders, stukadoors, loodgieters en elektriciens zijn het ontwikkelaars met specialisaties in infrastructuur, security, data-analyse, automation of zelfs governance. Zorg dus dat je een goede mix hebt in je DevOps-team.

Automatiseren betekent ook ontzorgen van Developers

Verder doen bedrijven er verstandig aan hun ontwikkelaars de vrijheid te geven om tools te gebruiken die taken kunnen automatiseren of kunnen ondersteunen bij de ontwikkeling van een applicatie. De CI/CD pipeline hebben veel bedrijven wel geautomatiseerd, maar qua automation is nog veel meer te winnen.

Zo beschikt AWS over diensten waarbij de broncode actief gescand kan worden op beveiligingslekken en bugs. De dienst kan overweg met grote code bases en kan hier de nodige fouten uit halen. Daarnaast zijn er diensten om de dependencies bij te houden en ervoor te zorgen dat er enkel stabiele en veilige versies in productie worden genomen. Steeds meer ontwikkelaars gebruiken allerlei libraries om hun applicaties op te baseren, maar het afgelopen jaar zijn die ineens een geliefd doelwit van cybercriminelen. Door bugs en backdoors in libraries te stoppen, worden applicaties vatbaar voor aanvallen. Tot slot is er een forse toename in het gebruik van machine learning en data science. Ook hier zal je meer en meer automation gaan zien.

Hoe meer taken geautomatiseerd kunnen worden, des te meer de ontwikkelaar zich bezig kunnen houden met het verbeteren van applicatiefeatures en de wensen van de klant. Vooral saaie herhalende taken moeten als eerst worden geautomatiseerd. Daar valt het meeste te winnen.

Naast de AWS-oplossingen zijn er natuurlijk ook externe diensten, waarmee automation in het DevOps-model kan worden toegepast. Op het vlak van application security kan een bedrijf gebruikmaken van bijvoorbeeld Snyk of Micro Focus.

Low-code heeft potentie, maar niet in DevOps-teams

Tot slot vroegen we Stormacq naar de ambities van AWS op het gebied van low-code. Recent heeft AWS een eerste stap gezet met een workflow editor voor AWS Lambda. Daarmee kan je middels drag-en-drop serverless diensten bouwen. Stormacq laat weten dat in het bestuur van organisaties wel vaker over low-code en no-code wordt gesproken. Er ligt volgens hem ook een enorm potentieel. Iedereen die een beetje fatsoenlijk met Excel overweg kan, kan zijn werkzaamheden sneller en beter maken met low-code of no-code.

Volgens hem spelen low-code en no-code in DevOps-teams echter geen rol. Low-code en no-code worden echt gezien als basisoplossing voor rapportages of snel een formulier invullen. DevOps-teams bij grote organisaties werken vaak aan hele complexe applicaties, die ga je niet vervangen met low-code. Hij is zelf ook enthousiast over de workflow editor van AWS Lambda, aangezien je er snel serverless-applicaties mee kan bouwen.

DevOps beweegt naar meer automation en specialisatie

We kunnen concluderen dat het DevOps-model al breed is omarmd in veel organisaties. Zeker als bedrijven al actief bezig zijn met de cloud. Stormacq ziet het DevOps-model ook nog niet op zijn eind lopen. Er staat nog geen nieuw model klaar om het over te nemen. Wel verwacht hij dat er de komende jaren nog veel meer automation zal worden toegepast om het leven van een ontwikkelaar makkelijker te maken. Daarnaast denkt hij dat er nog wel meer specialisaties gaan komen onder ontwikkelaars. Applicaties worden uiteindelijk steeds complexer en dat vraagt ook om meer vakmanschap. Net als bij de bouwvakkers heb je specialisten, je kan niet alles af met een klusjesman.

Tip: AWS benadrukt belang van fundering en Well Architected Framework