DevOps
DevOps brengt ontwikkeling en operations op één lijn om de kwaliteit en levering te optimaliseren.
Artikelen
Tutorials
Interactieve handleidingen
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 team empowerment, communicatie en samenwerking tussen teams en technologie-automatisering.
De DevOps-beweging begon rond 2007 toen de community's voor softwareontwikkeling en IT operations hun bezorgdheid uitten over het traditionele softwareontwikkelingsmodel, waar ontwikkelaars die code schreven, apart werkten van mensen die de code implementeerden en ondersteunden. De term DevOps, een combinatie van de woorden ontwikkeling en activiteiten, weerspiegelt het proces van integratie van deze disciplines in één continu proces.
Hoe werkt DevOps?
Een DevOps-team bestaat uit ontwikkelaars en IT operations die de volledige 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 development en operations teams niet langer 'geïsoleerd'. Soms worden deze twee teams samengevoegd tot één team waar de engineers binnen de volledige levenscyclus van toepassingen werken — van ontwikkeling en tests tot implementatie en operations — en over verschillende multidisciplinaire vaardigheden beschikken.
DevOps-teams gebruiken tools om processen te automatiseren en te versnellen, wat helpt de betrouwbaarheid te vergroten. Een DevOps-toolchain helpt teams belangrijke basisbeginselen voor DevOps te volgen, waaronder continue integratie, continue levering, automation en samenwerking.
DevOps-waarden worden soms toegepast op andere teams dan ontwikkeling. Als 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, schakelen tussen context te verminderen, automation te introduceren en waarneembaarheid en monitoring mogelijk te maken.
DevOps toolchains volgen meestal twee benaderingen: een alles-in-één of open toolchain. Een alles-in-één toolchain biedt een complete oplossing die meestal niet kan worden geïntegreerd met andere externe tools, terwijl een open toolchain aanpassingen mogelijk maakt met verschillende tools. 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 apps van toonaangevende leveranciers en marketplace-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 development 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 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 te bouwen om een en ander eenvoudiger te maken.
Een overdreven 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-methoden zijn enorm populair binnen de software-industrie, omdat ze teams in staat stellen om per definitie flexibel zijn, goed georganiseerd en in staat 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 release workflow 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
Automation 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 automation 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
Of je organisatie nu een on-premise datacenter heeft of zich volledig in de cloud bevindt, de mogelijkheid hebben om snel en consequent infrastructuur in te richten, configureren en beheren is de sleutel tot succesvolle DevOps-toepassing. Infrastructure as Code (Iac) gaat verder dan alleen maar het scripten van infrastructuurconfiguratie en het behandelen van uw infrastructuurdefinities als werkelijke code: met behulp van bronbeheer, code-reviews, tests, etc.
Microservices
Microservices is een architecturale techniek waarbij een toepassing wordt gebouwd als een verzameling kleinere services die onafhankelijk van elkaar kunnen worden geïmplementeerd en gebruikt. Elke service heeft zijn eigen processen en communiceert met andere services via een interface. Deze scheiding van zorgen en ontkoppelde onafhankelijke functie maakt DevOps-werkwijzen mogelijk, zoals continue levering en continue integratie.
Controle
DevOps-teams monitoren de volledige levenscyclus van ontwikkelingen — van planning, ontwikkeling, integratie en testen, implementatie en operations. Hierdoor kunnen teams snel en automatisch reageren op eventuele achteruitgang in de klantervaring. En nog belangrijker, het stelt teams in staat om 'naar links te verschuiven' naar eerdere ontwikkelingsstadia en afgebroken productiewijzigingen tot een minimum te beperken.
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 stakeholders dan om te proberen 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 verplaatsen. 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.
Meld je aan voor onze DevOps-nieuwsbrief
Thank you for signing up