Wat is DevOps?

DevOps is een relatief nieuwe en innovatieve methode om software van hoge kwaliteit te leveren.

Het begrip is een combinatie van de laatste woorden van software development (softwareontwikkeling) en technology operations (technologieactiviteiten). DevOps heeft namelijk betrekking op het afbreken van silo's en het samenbrengen van ontwikkeling en operationele activiteiten.

DevOps heeft een hele evolutie doorgemaakt sinds het ruim 10 jaar geleden is ontstaan. Systeembeheerders wilden gelijke tred houden met efficiëntere agile productontwikkelingsteams, die telkens sneller software van productiekwaliteit konden maken. De teams werden steeds beter in het leveren van software, maar in de rest van de waardestroom bleven knelpunten zitten op het gebied van voorafgaande planning, de implementatie en het beheer van systemen in een productieomgeving. Op dat moment, en voor veel organisaties nog steeds, zorgden deze knelpunten voor frictie tussen ontwikkelings- en operations-teams. Andrew Clay Shafer en Patrick Debois bedachten het begrip DevOps in 2008 en dankzij het eerste DevOpsDays-evenement in België in 2009 kreeg het concept voet aan de grond.

De implementatie van DevOps gaat niet alleen over tools, maar ook over de manier waarop mensen werken en de processen die ze gebruiken. DevOps doorbreekt de historische silo tussen de engineeringteams die een toepassing of service maken en de personen die verantwoordelijk zijn voor het uitvoeren van de betreffende service in een productieomgeving. Processen en werkzaamheden zijn afgestemd op de gehele levenscyclus van producten en services, en alles wat nodig is voor de levering en uitvoering ervan.

In het ideale geval beheert één team alle facetten van de service, inclusief beveiligings- en testfuncties. In grotere organisaties is er mogelijk nog steeds sprake van enkele functionele specialisaties, maar het belangrijkste is dat het proces en de communicatie zijn gericht op de end-to-end-levering van de gehele service. Deze productgerichte denkwijze kan gebaseerd zijn op iets eenvoudigs, zoals een microservice, of op een complexer geheel van leveringen die samen een release vormen (dit is vaak afhankelijk van de omstandigheden en de eindklant). Na verloop van tijd is het de bedoeling steeds kleinere veranderingen door te voeren en sneller te itereren.

De nieuwe processen en teams maken gebruik van zoveel mogelijk automatisering en technologieën die de end-to-end-verbinding van de productlevenscyclus vergemakkelijken, waaronder de zo belangrijke feedbacklus van de klant naar het team.

DevOps is belangrijk omdat het organisaties de mogelijkheid biedt zich te onderscheiden van de concurrentie door sneller op bedrijfsbehoeften te reageren. DevOps is een nieuwe en betere manier om software te bouwen. Het verbetert de samenwerking end-to-end, niet alleen tussen ontwikkelings- en operations-teams, maar ook tussen teams die verantwoordelijk zijn voor beveiliging (soms aangeduid als DevSecOps), testen (kwaliteitsborging of QA), versiecontrole en teamoverstijgende samenwerkingsmogelijkheden zoals ChatOps. DevOps leidt tot een beter softwareproduct en succesvollere implementaties.

In wezen is DevOps een best practice. Het rust op de veronderstelling dat bedrijven die zich bezighouden met de levering van toepassingen en services, het beste werken wanneer softwareontwikkelingsteams echt samenwerken, en continue integratie en continue levering (CI/CD) toepassen. Dat betekent dat aan het eind van elke iteratie, hoe kort deze ook is, de software productieklaar is, ook al wordt deze niet altijd in de productieomgeving geïmplementeerd.

Grote organisaties ondergaan DevOps-transformaties om een veelvoorkomend en fundamenteel probleem met het maken van ondernemingssoftware aan te pakken. Wanneer ontwikkelaars nieuwe software maken, coderen en testen zij deze in een offline ontwikkelomgeving die hen in staat stelt bugs op te lossen, code te verfijnen en vereisten af te stemmen zonder hun bedrijf, overheids-, zorg- of onderwijsinstelling in gevaar te brengen.

Wanneer het echter tijd is om de nieuwe software of code in de echte omgeving te implementeren, ontstaan er problemen doordat de ontwikkelomgeving niet precies gelijk is aan de steeds veranderende productieomgeving. Dit kan behoorlijk wat kopzorgen of zelfs hartzeer veroorzaken. Een mislukte implementatie kan leiden tot problemen die veel tijd en geld kosten om op te lossen. In het verleden werd dit probleem verergerd doordat er een groot aantal wijzigingen in onregelmatige releases waren opgenomen.

De operations-teams moeten ervoor zorgen dat de producten betrouwbaar in de productieomgeving draaien. Met behulp van de juiste controlemechanismen wordt een betrouwbare implementatie gegarandeerd. Er kan frictie ontstaan tussen operations- en ontwikkelingsteams die zo snel mogelijk hun codewijzigingen in de productieomgeving proberen te krijgen.

Bij een op DevOps gebaseerde leveringspijplijn draait alles om ontwikkelaars en operations-personeel:

  • Beter samen te laten werken

  • Op dezelfde golflengte te laten denken en handelen

  • Barrières en silogebaseerde constructies af te breken

  • Verantwoordelijkheden te laten delen

  • Te laten focussen op QA, versiebeheer, configuratiebeheer en releasebeheer als een samenhangende, continue leveringsactiviteit, vaak aangeduid als een waardestroom

Door ontwikkelings- en operations-teams te integreren en daar automatisering aan toe te voegen, kunnen organisaties de samenwerking, werkcultuur en uiteindelijk de productiviteit verbeteren. DevOps-integratie is gebaseerd op het automatiseren van infrastructuur en workflows, het mogelijk maken van continue levering van toepassingen in de productieomgeving en het voortdurend meten van de prestaties van toepassingen.

Automatisering is een belangrijke best practice van organisaties die gebruikmaken van een DevOps-model. Automatiseer zoveel mogelijk taken, met name de volgende:

  • Code-, gebruikers- en beveiligingstests

  • Workflows, inclusief stage-gates en releases

  • Infrastructuurimplementaties en -wijzigingen

  • Validatie van wijzigingen in het configuratiebeheer

DevOps biedt een groot concurrentievoordeel dankzij de automatisering van de doorvoer van code gedurende de hele levenscyclus van softwareontwikkeling. Automatisering gebeurt echter alleen als teams weten dat deze automatiseringsmogelijkheden beschikbaar zijn en dat veel functies kunnen worden geautomatiseerd die voorheen handmatig werden uitgevoerd, zoals ITIL-veranderbeheer. Automatisering kan de ontwikkelbeleving aanzienlijk verbeteren door ontwikkelaars administratieve taken uit handen te nemen.

DevOps Change Management - ServiceNow DevOps voor het wijzigingsbeheer van bedrijven.

Een andere best practice van DevOps is dat ontwikkelaars kleine stukjes softwarecode schrijven die binnen enkele uren kunnen worden geïntegreerd, getest, gecontroleerd en uitgerold. Dit is een verbetering ten opzichte van de oude werkwijze, waarbij het schrijven en testen van grote hoeveelheden softwarecode weken of maanden in beslag nam. Ontwikkelingsteams kunnen zo beter inspelen op de bedrijfsbehoeften en is er minder kans op een grootschalige onderbreking wegens een grotere release met veel wijzigingen. Daarnaast is het op deze manier ook eenvoudiger om een kleine wijziging terug te draaien als er iets misgaat in productie. Deze best practice is van toepassing op zowel nieuwe cloudeigen technologieën als op meer traditionele infrastructuren.

Niet alle projecten kunnen in meer regelmatige kleine stukjes worden geleverd. Soms is het nog steeds logischer om wijzigingen te groeperen in grotere of minder regelmatige releases in een grotere DevOps-levenscyclus. DevOps-teams blijven echter werken volgens het principe dat hun code onmiddellijk implementeerbaar is.

Hoewel de meeste bedrijven aanzienlijk veel ervaring hebben met agile ontwikkeling en experimenteren met of volledig investeren in DevOps-principes, zijn sommigen van mening dat DevOps nog niet klaar is om in grotere organisaties te worden uitgerold. Deze overtuiging is gebaseerd op een aantal factoren, waaronder de grote organisatorische veranderingen in personeel, processen en technologie die voor de invoering van DevOps zijn vereist. Een andere factor is dat bijna alle grote ondernemingen aan tal van wettelijke voorschriften zijn onderworpen, vooral wanneer systemen in aanraking komen met financiële gegevens, persoonlijk identificeerbare informatie (PII) of medische gegevens. Deze wettelijke voorschriften zorgen ervoor dat grote organisaties streng toezicht op IT-activiteiten houden bij het uitbrengen van toepassingsupdates. Deze controles zijn rijp voor automatisering, aangezien deze op handmatige processen zijn gebaseerd.

Naarmate het aantal DevOps-implementaties, de ervaring en de automatisering blijven groeien, zal DevOps vaker worden ingezet voor het aanpakken van problemen uit de praktijk en het bedrijfsleven. Wanneer mensen ontdekken hoe ze een balans kunnen vinden tussen snelheid, flexibiliteit, regulering en controle, zullen ze meer dan bereid zijn om een echt nieuwe softwarefunctionaliteit te creëren. Succesvolle DevOps-werkwijzen zijn geworteld in de erkenning van deze realiteit en kunnen mensen productiever maken, omdat systemen volgens het principe 'plannen, bouwen, uitvoeren' efficiënter werken.

U kunt de DevOps-methodologie op intelligente wijze in uw organisatie uitrollen, het risico van een snelle werkwijze wegnemen en de frictie tussen IT-operations en ontwikkelingsteams tot een minimum beperken. Grote ondernemingen die vertrouwen op strikte controlemechanismen voor bedrijfscontinuïteit kunnen gebruikmaken van opkomende technologieën zoals waardestroombeheer (VSM) om hen bij deze transitie te ondersteunen.

DevOps-levenscyclus - ServiceNow Maak gebruik van het ServiceNow-platform voor DevOps-levenscyclusbeheer.

Een goed lopend DevOps-team itereert snel en levert op simpele wijze allerlei voordelen op: kleinere en frequentere softwarereleases, die op tijd of eerder dan gepland worden geleverd met minder problemen in de productiefase. Zelfs als in de productiefase bugs worden gevonden, worden deze sneller opgelost. Daarnaast leert en verbetert het team door gebruik te maken van de gegevens die door samenwerking en waardestroombeheer beschikbaar worden.

Goede DevOps-teams ervaren minder fouten en implementeren code vele malen sneller dan minder presterende collega's. De transitie naar DevOps bevordert een continue verbeteringsmentaliteit in de hele organisatie, omdat alle betrokkenen toegang hebben tot informatie over de volledige levenscyclus. Bovendien zorgen de opkomende AI-mogelijkheden in DevOps voor nog meer efficiëntie dankzij automatisering en een verbeterde betrouwbaarheid.

Hoewel er een duidelijke business case voor DevOps is, kan de uitrol ervan een onverwachte leiderschapsuitdaging met zich meebrengen. Bedrijven moeten over een goede voorbereiding en veel doorzettingsvermogen beschikken om van waterval- naar agile-softwareontwikkeling te gaan en vervolgens DevOps te implementeren. Het zal echter ook veel opleveren.

Stabiliteit

Veel best practices van DevOps helpen de stabiliteit te verbeteren. Een voorbeeld hiervan is de focus op het doorvoeren van kleinere veranderingen die waarschijnlijk niet tot grootschalige onderbrekingen leiden en die snel en vaak automatisch kunnen worden teruggedraaid als er iets misgaat. Het continue integratieproces van DevOps helpt ervoor te zorgen dat codewijzigingen op de juiste manier worden gecombineerd en getest. Door de toepassing van beleidsregels en tools kunnen problemen zo vroeg mogelijk in de cyclus worden geëlimineerd.

Beveiliging

Het rapport Puppet State of DevOps uit 2019 laat zien dat een sterke DevOps-basis ervoor zorgt dat beveiliging eenvoudiger en betrouwbaarder te implementeren is. Beveiliging wordt op dezelfde manier onderdeel van het DevOps-team als het ontwikkelen, testen en uitvoeren van code. De samenwerking verbetert en beveiliging is onlosmakelijk met het proces verbonden.

Snelheid

Door in kleinere iteraties en in gecombineerde end-to-end-teams te werken, worden wijzigingen sneller doorgevoerd en kunnen teams beter inspelen op de bedrijfsbehoeften. De totale tijd vanaf het eerste idee tot het verschijnen van de wijziging in productie kan aanzienlijk worden verkort, wat een snellere time-to-value oplevert.

Samenwerking

De voordelen van DevOps worden versterkt door de verbeterde samenwerking en communicatie. Ontwikkelaars krijgen directe feedback op hun werkprestaties in de productie en operators hebben meer inzicht in wat er wordt geleverd en waarom. Alle betrokkenen, inclusief beveiliging en kwaliteitsborging, hebben de mogelijkheid om hun beleidsregels te delen en te verfijnen met de steun van het hele team.

Het kan lastig zijn om ontwikkelaars en operations-teams te laten samenwerken, snel te bouwen en code vrij te geven in productie. DevOps is sterk afhankelijk van culturele en procesveranderingen, samen met de beschikbaarheid van de juiste DevOps-tools. Het is begrijpelijk dat veel IT-, engineering- en businessunitleiders in grote organisaties zich zorgen maken over het plannen van een dergelijke transitie. De business case voor DevOps is echter overtuigend en producten zoals ServiceNow DevOps vereenvoudigen de workflow. Er is voor organisaties simpelweg geen reden om voor een DevOps-implementatie terug te deinzen.

Hybride DevOps-model verbindt Dev met Ops - ServiceNow ServiceNow DevOps helpt u om ontwikkeling en operations met elkaar te verbinden.

DevOps aanschaffen

Vergroot het succes van DevOps binnen de gehele onderneming. Versnel het tempo zonder risico's en beperk de frictie tussen IT-operations en -ontwikkeling.