Wat is DevOps?
Verbeter je ontwikkelaarservaring, catalogiseer alle services en verbeter de gezondheid van je software.
Compass gratis uitproberen
Verbeter je ontwikkelaarservaring, catalogiseer alle services en verbeter de gezondheid van je software.
Wat is DevOps?
DevOps is een aantal procedures, tools en een culturele filosofie die de processen tussen softwareontwikkeling en IT-teams automatiseert en integreert. Het legt de nadruk op teamversterking, communicatie en samenwerking tussen teams en technologie-automatisering.
Hoe werkt DevOps?
Een DevOps-team bestaat uit ontwikkelaars en IT-medewerkers die gedurende de hele levenscyclus van het product samenwerken om de snelheid en kwaliteit van de software-implementatie te verhogen. Het is een nieuwe manier van werken, een culturele verschuiving, die belangrijke gevolgen heeft voor teams en de organisaties waarvoor ze werken.
Onder een DevOps-model zijn ontwikkelings- en operationele teams niet langer 'geïsoleerd'. Soms worden deze twee teams samengevoegd tot één team waar de engineers gedurende de hele levenscyclus van de toepassing werken (van ontwikkeling en tests tot implementatie en exploitatie) en over verschillende multidisciplinaire vaardigheden beschikken.
DevOps-teams gebruiken tools om processen te automatiseren en te versnellen, wat helpt de betrouwbaarheid te verhogen. Een DevOps-toolchain helpt teams belangrijke basisbeginselen voor DevOps te volgen, waaronder continue integratie, continue levering, automatisering en samenwerking.
DevOps-waarden worden soms toegepast op andere teams dan op ontwikkeling. Wanneer beveiligingsteams een DevOps-benadering gaan gebruiken, vormt beveiliging een actief en geïntegreerd onderdeel van het ontwikkelingsproces. Dit noemen we DevSecOps.
De DevOps-levenscyclus
Vanwege het continue karakter van DevOps gebruiken gebruikers de infinity-lus om te laten zien hoe de fasen van de DevOps-levenscyclus zich tot elkaar verhouden. Ondanks dat de lus achter elkaar lijkt te stromen, symboliseert hij de behoefte aan constante samenwerking en iteratieve verbetering gedurende de volledige levenscyclus.

De DevOps-levenscyclus bestaat uit acht fasen die de processen, mogelijkheden en tools vertegenwoordigen die nodig zijn voor ontwikkeling (aan de linkerkant van de lus) en bewerkingen (aan de rechterkant van de lus). Gedurende elke fase werken teams samen en communiceren ze om de afstemming, snelheid en kwaliteit te behouden.
Ontdek
Het bouwen van software is een teamsport. Ter voorbereiding op de komende sprint moeten teams workshoppen om ideeën te onderzoeken, te ordenen en te prioriteren. Ideeën moeten afgestemd zijn op strategische doelen en klantenimpact leveren. Agile kan helpen om DevOps-teams te begeleiden.
Plan
DevOps-teams moeten agile-processen toepassen om snelheid en kwaliteit te verbeteren. Agile is een iteratieve benadering voor projectmanagement en softwareontwikkeling die teams helpt het werk in kleinere stukken te verdelen om incrementele waarde te leveren.
Build
Git is een gratis en open source beheersysteem. Het biedt uitstekende support voor het opdelen, samenvoegen en herschrijven van repository-geschiedenis, wat heeft geleid tot veel innovatieve en krachtige workflows en tools voor het ontwikkelproces.
Testen
Met continue integratie (CI) kunnen meerdere ontwikkelaars samenwerken aan een enkele gedeelde repository. Wanneer codewijzigingen worden samengevoegd, worden automatische tests uitgevoerd om ervoor te zorgen dat ze correct zijn voordat ze worden geïntegreerd. Het samenvoegen en testen van code helpt ontwikkelingsteams vaak om zekerheid te krijgen over de kwaliteit en voorspelbaarheid van de code zodra deze is geïmplementeerd.
Implementeren
Met continue implementatie (CD) kunnen teams regelmatig op geautomatiseerde wijze functies vrijgeven. Teams hebben ook de mogelijkheid om te implementeren met functievlaggen, waardoor gebruikers gestaag en methodisch nieuwe code geleverd krijgen in plaats van allemaal tegelijk. Deze aanpak verbetert de snelheid, productiviteit en duurzaamheid van softwareontwikkelingsteams.
Gebruiken
Beheer de end-to-end levering van IT-services aan klanten. Dit omvat de procedures met betrekking tot het ontwerp, de implementatie, de configuratie, de uitrol en het onderhoud van alle IT-infrastructuur die de services van een organisatie ondersteunt.
Observeren
Identificeer problemen die van invloed zijn op de uptime, snelheid en functionaliteit van producten en los ze op. Stel je team automatisch op de hoogte van wijzigingen, risicovolle acties of storingen, zodat je services aan kunnen blijven.
Continue feedback
DevOps-teams moeten elke release evalueren en rapporten genereren om toekomstige releases te verbeteren. Door continu feedback te verzamelen, kunnen teams hun processen verbeteren en feedback van klanten verwerken om de volgende release te verbeteren.
DevOps-tools

DevOps-tools behandelen de belangrijkste fasen van de DevOps-levenscyclus. Ze versterken DevOps-werkwijzen door te helpen de samenwerking te verbeteren, minder te hoeven schakelen tussen context, automatisering te introduceren en waarneembaarheid en monitoring mogelijk te maken.
DevOps-toolchains volgen meestal twee benaderingen: een alles-in-één- of een open toolchain. Een alles-in-ééntoolchain biedt een complete oplossing die meestal niet kan worden geïntegreerd met andere externe tools, terwijl een open toolchain aanpassingen met verschillende tools mogelijk maakt.Beide benaderingen hebben voor- en nadelen.
Een voorbeeld van een open DevOps-toolchain is de Open DevOps-oplossing van Atlassian, die Jira als basis heeft en integreert met toonaangevende leveranciers en marktetplace-apps.
Welke voordelen biedt DevOps?
In de DevOps Trends Survey 2020 van Atlassian zei 99 procent van de respondenten dat DevOps een positieve impact had op hun organisatie. De voordelen van DevOps zijn onder meer snellere en eenvoudigere releases, teamefficiëntie, verhoogde beveiliging, producten van hogere kwaliteit en dus tevreden teams en klanten.
Snelheid
Teams die DevOps gebruiken, releasen vaker, met meer kwaliteit en stabiliteit. In feite bleek uit het DORA 2019 State of DevOps-rapport dat elite-teams 208 keer vaker en 106 keer sneller implementeren dan minder goed presterende teams. Door continue levering kunnen teams software bouwen testen en leveren met geautomatiseerde tools.

Verbeterde samenwerking
De basis van DevOps is een cultuur van samenwerking tussen ontwikkelaars en operations teams, die verantwoordelijkheden delen en werk combineren. Dit maakt teams efficiënter en bespaart tijd met betrekking tot werkoverdracht en het creëren van code die is ontworpen voor de omgeving waarin het wordt uitgevoerd.

Snelle implementatie
Door de frequentie en snelheid van releases te verhogen, verbeteren DevOps-teams producten snel. Er kan een concurrentievoordeel worden behaald door snel nieuwe functies te releasen en bugs op te lossen.

Kwaliteit en betrouwbaarheid
Zaken zoals continue integratie en continue levering zorgen ervoor dat veranderingen functioneel en veilig zijn, wat de kwaliteit van een softwareproduct verbetert. Monitoring helpt teams in realtime op de hoogte te blijven van de prestaties.

Beveiliging
Door beveiliging te integreren in een pipeline van continue integratie, continue levering en continue implementatie, is DevSecOps een actief, geïntegreerd onderdeel van het ontwikkelingsproces. Beveiliging is ingebouwd in het product door actieve beveiligingsaudits en beveiligingstests te integreren in agile ontwikkeling en DevOps-workflows.
Wat zijn de uitdagingen van het implementeren van DevOps?
Gewoonten zijn moeilijk te doorbreken. Teams die verankerd zijn in geïsoleerde manieren van werken kunnen worstelen met verandering van teamstructuren of er zelfs op tegen zijn, om DevOps-werkwijzen te omarmen. Sommige teams denken ten onrechte dat nieuwe tools voldoende zijn om DevOps toe te passen. Toch is DevOps een combinatie van mensen, tools en cultuur. Iedereen in een DevOps-team moet de volledige waardestroom begrijpen, van idee tot ontwikkeling tot de ervaring van de eindgebruiker. Er moeten silo's worden afgebroken om tijdens de volledige levenscyclus van het product samen te werken.
DevOps is niet de taak van één persoon. Het is de taak van iedereen.
Robert Krohn
Hoofd Engineering, DevOps bij Atlassian
Overstappen van een oude infrastructuur naar het gebruik van Infrastructure as Code (IaC) en microservices kan snellere ontwikkelingen en innovatie opleveren, maar de toegenomen operationele werkdruk kan een uitdaging zijn. Het is het beste een sterk fundament van automatisering, configuratiebeheer en continue leveringsprocedures op te stellen om een en ander eenvoudiger te maken.
Een te grote afhankelijkheid van tools kan teams afleiden van de noodzakelijke grondbeginselen voor DevOps: de team- en organisatiestructuur. Als er eenmaal structuur is, volgen de processen en het team en vervolgens de tools.
DevOps toepassen
DevOps voor de eerste keer toepassen vereist het evalueren en eventueel wijzigen of verwijderen van teams, tools of processen die je organisatie momenteel gebruikt. Het betekent het opzetten van de benodigde infrastructuur om teams de autonomie te bieden om hun producten te bouwen, te implementeren en te beheren zonder dat ze te sterk afhankelijk zijn van externe teams.
DevOps-cultuur
Een DevOps-cultuur is waar teams nieuwe werkmethoden omarmen die meer samenwerking en communicatie met zich meebrengen. Het is de afstemming van mensen, processen en tools op een meer uniforme klantgerichtheid. Multidisciplinaire teams nemen de verantwoordelijkheid voor de volledige levenscyclus van een product.
Continu leren
Organisaties die DevOps correct toepassen, zijn plekken waar experimenteren en risico's nemen worden gestimuleerd. Waar buiten de kaders denken de norm is, en mislukking wordt opgevat als een natuurlijk onderdeel van leren en verbeteren.
Agile
Agile-methodologieën zijn enorm populair binnen de software-industrie, omdat ze teams in staat stellen om per definitie flexibel, goed georganiseerd en in staat te zijn om te reageren op veranderingen. DevOps is een culturele verschuiving die samenwerking bevordert tussen mensen die software bouwen en onderhouden. Gecombineerd zorgen agile en DevOps voor een hoge efficiëntie en betrouwbaarheid.
DevOps-werkwijzen
Continue integratie
Continue integratie is het automatiseren van de integratie van codewijzigingen in een softwareproject. Het stelt ontwikkelaars in staat om codewijzigingen regelmatig samen te voegen in een centrale repository waar builds en tests worden uitgevoerd. Dit helpt DevOps-teams om bugs sneller op te lossen, de softwarekwaliteit te verbeteren en sneller nieuwe software-updates te valideren en te releasen.
Continue levering
Continue levering gaat verder dan continue integratie door automatisch codewijzigingen in een test-/productieomgeving te implementeren. Het volgt een pipeline van continue levering, waarbij geautomatiseerde builds, tests en implementaties als één releaseworkflow worden gecoördineerd.
Bewust zijn van de situatie
Het is cruciaal dat elk lid van de organisatie toegang heeft tot de gegevens die ze nodig hebben om hun werk zo effectief en snel mogelijk te doen. Teamleden moeten worden gewaarschuwd voor storingen in de implementatie-pipeline (of het nu systematisch is of als gevolg van mislukte tests) en tijdig updates ontvangen over de status en prestaties van toepassingen die in productie worden uitgevoerd. Statistieken, logs, traces, monitoring en waarschuwingen zijn allemaal essentiële bronnen van feedback die teams nodig hebben om hun werk te informeren.
Automatisering
Automatisering is een van de belangrijkste DevOps-werkwijzen omdat het teams in staat stelt het proces van het ontwikkelen en implementeren van hoogwaardige software veel sneller te doorlopen. Met automatisering kan de eenvoudige handeling van het pushen van codewijzigingen naar een broncode-repository een build-, test- en implementatieproces triggeren dat de tijd die deze stappen kosten aanzienlijk verkort.
Infrastructure as Code
Automation is one of the most important DevOps practices because it enables teams to move much more quickly through the process of developing and deploying high-quality software. With automation the simple act of pushing code changes to a source code repository can trigger a build, test, and deployment process that significantly reduces the time these steps take.
Microservices
Automation is one of the most important DevOps practices because it enables teams to move much more quickly through the process of developing and deploying high-quality software. With automation the simple act of pushing code changes to a source code repository can trigger a build, test, and deployment process that significantly reduces the time these steps take.
Controle
Automation is one of the most important DevOps practices because it enables teams to move much more quickly through the process of developing and deploying high-quality software. With automation the simple act of pushing code changes to a source code repository can trigger a build, test, and deployment process that significantly reduces the time these steps take.
Aan de slag met DevOps
De eenvoudigste manier om met DevOps aan de slag te gaan, is door een kleine waardestroom te identificeren (bijvoorbeeld een kleine ondersteunende app of service) en met een paar DevOps-werkwijzen te gaan experimenteren. Net als bij softwareontwikkeling is het veel eenvoudiger om één stream te transformeren met een kleine groep belanghebbenden dan om een alles-in-één organisatorische transitie naar een nieuwe werkmethode te proberen.
Atlassian biedt een Open DevOps-oplossing die end-to-end DevOps-processen biedt met Atlassian en andere externe tools. Met Jira als basis kunnen teams Atlassian-producten gebruiken of hun favoriete producten naar de open toolchain brengen. Het Atlassian-ecosysteem biedt verschillende integraties en add-ons, waardoor teams hun toolchain kunnen aanpassen aan hun behoeften.
Bekijk zeker onze DevOps-tutorials voor automatisering, testen, beveiliging, waarneembaarheid, functiemarkering en continue levering.
