Als je de ontwikkelingslevenscyclus wilt verkorten, de softwarekwaliteit wilt verhogen en continue levering wilt bieden, moet je DevOps overwegen. Patrick Debois, een ontevreden consultant die genoeg had van de inefficiënties veroorzaakt door de scheiding tussen softwareontwikkeling en IT-beheer, bedacht de term in 2007.
Sindsdien hebben veel bedrijven DevOps-principes omarmd om zich effectiever aan te passen aan hun zakelijke uitdagingen. DevOps was vroeger beperkt tot IT-diensten, maar is inmiddels uitgebreid naar het hele bedrijf. Daarbij beïnvloedt het processen en gegevensstromen en veroorzaakt het aanzienlijke organisatorische veranderingen.
Wat is DevOps?
DevOps is een methodologie die softwareontwikkeling (Dev) en IT-beheer (Ops) combineert. Het is een geheel van werkwijzen, DevOps-tools, processen en zelfs mensen dat tot doel heeft de samenwerking binnen teams te verbeteren en snellere, betrouwbaardere productreleases te realiseren. Een DevOps-omgeving is bedoeld om automatisering en documentatie te stimuleren en communicatie en samenwerking te bevorderen.
In tegenstelling tot meer traditionele benaderingen (zelfs Agile en Scrum), waarbij afdelingen worden opgesplitst in “silo's,” benadrukt DevOps de integratie van alle teamleden die betrokken zijn bij het maken van het product: van softwareontwikkelaars tot testers en IT-beheerprofessionals (zoals systeembeheerders, databasebeheerders en systeemingenieurs).
-
Spacelift
Visit Website -
ManageEngine Applications Manager
Visit WebsiteThis rating combines scores from multiple user review sites to reflect overall customer sentiment about the product.4.3 -
Site24x7
Visit WebsiteThis rating combines scores from multiple user review sites to reflect overall customer sentiment about the product.4.7
Hoe DevOps werkt
Ontwikkelings- en operationele teams werken nauwer samen binnen een DevOps-model. De technici van beide teams integreren en werken gedurende de volledige levenscyclus van de applicatie, van ontwikkeling en testen tot DevOps-implementatie en beheer. DevOps combineert de verschillende vaardigheden van beide kanten gedurende het hele applicatieproces.
Kwaliteitsborgings- en beveiligingsteams kunnen binnen verschillende DevOps-modellen nauwer worden verbonden met ontwikkeling en beheer, evenals met de volledige levenscyclus van softwareontwikkeling. Voorbeelden hiervan zijn SecDevOps (dat zich richt op beveiliging) en QAOps (waarbij meer nadruk ligt op het testen van productkwaliteit).
Deze groepen gebruiken best practices om voorheen arbeidsintensieve en trage processen te automatiseren. Ze maken gebruik van een technologiestack en infrastructuur om toepassingen snel en betrouwbaar te laten werken en evolueren.
DevOps-praktijken en -concepten
DevOps draait om enkele belangrijke praktijken. Hieronder leggen we ze allemaal uit.
Continue integratie
Continue integratie (CI) verwijst naar het regelmatig samenvoegen van codewijzigingen in een centrale repository en het uitvoeren van geautomatiseerde builds en tests (waaronder unit-, integratie-, UI- en end-to-endtests).
Het belangrijkste doel van CI is om bugs sneller te ontdekken en op te lossen, de algehele kwaliteit van de software te verhogen en de tijd die nodig is om nieuwe software-updates te valideren en uit te brengen te verkorten.
Continue levering
Continue levering is nauw verwant aan continue integratie en vormt de volgende logische stap. Bij continue levering is het vereist dat codewijzigingen automatisch worden gebouwd en getest en klaarstaan om in de productieomgeving te worden geleverd. Idealiter worden alle wijzigingen eerst naar een testomgeving gepusht voordat ze naar productie worden geïmplementeerd.
Versiebeheer
Versiebeheer, ook wel bronbeheer genoemd, verwijst naar het beheren van code in versies, oftewel het bijhouden van revisies en codewijzigingen in de loop der tijd. Dit gebeurt vaak met behulp van versiebeheersystemen waarmee teamleden kunnen samenwerken aan code.
Deze methoden beschrijven een stapsgewijze werkwijze voor het samenvoegen van codewijzigingen in dezelfde bestanden, het oplossen van conflicten en het terugdraaien van wijzigingen naar eerdere statussen. Versiebeheer is een van de belangrijkste DevOps-processen die ontwikkelingsteams helpen samen te werken, codeertaken aan teamleden te delegeren en alle code te archiveren voor snel herstel.
Monitoring en logging
Continue monitoring houdt in dat defecte builds of mislukte tests worden geïdentificeerd en dat ervoor wordt gezorgd dat ze geen vertragingen veroorzaken. Automatisering versnelt de ontwikkeling aanzienlijk, maar als een geautomatiseerd proces mislukt en niemand dat merkt, kun je de taak beter handmatig uitvoeren.
Op vergelijkbare wijze is het van cruciaal belang om productie-apps in de gaten te houden, zodat problemen of prestatieproblemen worden gedetecteerd voordat je klanten dat doen.
Microservices
Microservicearchitectuur is een stijl waarbij de applicatie wordt gestructureerd als een verzameling kleinere, losjes gekoppelde en onafhankelijk implementeerbare services. Hierdoor kunnen leveringsteams zich richten op specifieke services als onafhankelijke entiteiten, waardoor ontwikkeling, testen en implementatie veel eenvoudiger worden.
Infrastructuur als code (IaC)
Dit is een proces voor het beheren van de IT-infrastructuur (netwerken, virtuele machines, load balancers, verbindingsarchitectuur) waarbij dezelfde versiebeheerprincipes voor broncode worden gebruikt als door het DevOps-team.
Een IaC-model creëert elke keer dezelfde omgeving wanneer het wordt toegepast, vergelijkbaar met hoe dezelfde broncode hetzelfde binaire bestand oplevert. IaC is een cruciale aanpak die hand in hand gaat met continue levering.
Naar links verschuiven
Dit is een term voor een ontwikkelingsproces waarin het team zich richt op het zo vroeg mogelijk starten met testen. Het uiteindelijke doel is een hogere kwaliteit, kortere testcycli en het voorkomen van mogelijke verrassingen aan het einde van de ontwikkelingscyclus. Naar links verschuiven veronderstelt continu testen (zo vroeg en zo vaak mogelijk geautomatiseerde tests schrijven en uitvoeren) en continue implementatie (het automatiseren van de implementatie van nieuwe builds).
De DevOps-levenscyclus
De typische DevOps-workflow is iteratief en bestaat uit 8 hoofdfasen:
- Plannen: In deze fase identificeert het team de bedrijfsvereisten en maakt het een routekaart die de bedrijfswaarde van het product maximaliseert.
- Coderen: Dit is de fase waarin de daadwerkelijke ontwikkeling plaatsvindt.
- Bouwen: Zodra de ontwikkelingstaken zijn voltooid, wordt de code vastgelegd in de gedeelde opslagplaats.
- Testen: De build wordt geïmplementeerd in de testomgeving, waar de tests worden uitgevoerd. Dit omvat doorgaans unittests, integratietests, tests voor gebruikersinterface-automatisering en handmatige tests, zoals gebruikersacceptatietests.
- Uitbrengen: Zodra de testfase is voltooid, bereiden de DevOps-engineers de build voor op implementatie in de productieomgeving.
- Implementeren: In deze fase wordt de build geïnstalleerd, getest en in productie geïmplementeerd, waarna deze beschikbaar is voor de eindgebruikers.
- Beheren: Het beheren van de levering van IT-diensten aan klanten van begin tot eind. Dit verwijst naar de procedures voor het ontwerpen, implementeren, configureren, uitrollen en onderhouden van de IT-infrastructuur die de diensten van een organisatie ondersteunt.
- Monitoren: DevOps-teams evalueren elke release en leveren rapporten om toekomstige softwareversies te verbeteren. Door voortdurend feedback te verzamelen, kunnen teams hun processen optimaliseren en input van consumenten integreren in de volgende release.

Wat zijn de voordelen van DevOps?
De belangrijkste voordelen van een DevOps-aanpak zijn:
- Snellere softwarelevering: Met CI/CD-pijplijnen verloopt de implementatie sneller en vaker. Het bijwerken van bestaande diensten en het implementeren van nieuwe systemen, functies of bugfixes kost minder tijd. Dit kan een belangrijk concurrentievoordeel en een betere gebruikerservaring opleveren.
- Verbeterde samenwerking: Met DevOps-praktijken werken de ontwikkelaars en operationele teams nauw samen en delen ze de verantwoordelijkheid, waardoor de zichtbaarheid van het werk toeneemt. De teams zijn beter verbonden en werken aan dezelfde doelen en doelstellingen.
- Hogere productiviteit: Doordat het werk niet langer gescheiden is en de communicatie is verbeterd, is er meer transparantie, waardoor de teams efficiënter werken.
- Geautomatiseerde repetitieve taken: Naast het grote voordeel dat deze taken niet handmatig hoeven te worden uitgevoerd, houdt dit meer tijd over voor het team om aan innovaties binnen het project te werken.
- Hogere kwaliteit en betrouwbaarheid: Praktijken voor continue integratie en levering zorgen ervoor dat wijzigingen functioneel en stabiel zijn, waardoor de kwaliteit van een softwareproduct verbetert. Dankzij monitoring kunnen teams de prestaties in realtime volgen.
- Betere beveiliging: De beveiliging in DevOps kan ook worden verbeterd door beveiligingstests te integreren in de pijplijn voor continue integratie, continue levering en continue implementatie.
- Vaker uitgebrachte versies: Klanten kunnen regelmatig updates en bugfixes ontvangen, wat leidt tot een hogere klanttevredenheid.
Hoe neem je een DevOps-cultuur over?
De overstap naar DevOps omvat een verandering in cultuur en filosofie. In eerste instantie kan het invoeren van DevOps betekenen dat operationele en ontwikkelingsteams zich ertoe verbinden de problemen en technologische beperkingen te begrijpen die in elke fase van het softwareontwikkelingsproces bestaan.
Stel verbeterings-KPI's vast, zoals kortere cyclustijden of minder defecten in productie. Door activiteiten binnen het werk onderling af te stemmen, kun je het raamwerk voor continue processen creëren.
Onderzoek de huidige tools voor ontwikkeling en IT-operaties. Identificeer eventuele zwakke punten, zoals een fase die altijd handmatig wordt uitgevoerd of een tool die geen API's heeft om met andere tools te communiceren. Overweeg de implementatie van één DevOps-leveringspijplijn voor het hele bedrijf. Teamleden kunnen van het ene project naar het volgende overstappen zonder opnieuw te moeten worden getraind.
Nu de DevOps-mindset is ingevoerd, bepaal je welke statistieken je gebruikt om succes te meten en identificeer je de tools die voortaan worden gebruikt (daarover later meer). Richt je, om te blijven verbeteren, op best practices, het delen van kennis en continue verbetering. Identificeer belemmeringen die van invloed zijn op je KPI's en optimaliseer je tools en technologie.
Het DevOps-volwassenheidsmodel heeft 5 fasen:
- Initieel: een traditioneel model waarin het ontwikkelingsteam en het operationele team in afzonderlijke silo's werken.
- Beheerd: de eerste verschuiving richting DevOps, waarbij de operationele processen worden geautomatiseerd. De samenwerking tussen ontwikkeling en IT-operaties neemt toe, omdat de teams niet langer gescheiden zijn. Dit is een proof-of-conceptfase.
- Gedefinieerd: automatiseringsprocessen voor alle praktijken (waaronder ontwikkeling en testen) worden gedefinieerd en ingevoerd. De veranderingen worden op organisatieniveau toegepast.
- Gemeten: de teams delen kennis en passen praktijken aan dankzij de ingevoerde processen en tools. Automatisering en communicatie tussen tools verbeteren, en beleid wordt gebruikt om standaarden af te dwingen.
- Geoptimaliseerd: dankzij continue verbetering worden resultaten zichtbaar. DevOps kan uitgroeien tot meerdere toolsets of procedures. Zo worden apps die op klanten zijn gericht (meestal B2C-apps) vaker uitgebracht, terwijl FinTech-apps zich sterker houden aan de principes van DevSecOps.
DevOps-tools
De DevOps-methodologie richt zich op het automatiseren van softwareontwikkelingsactiviteiten, zoals bouwen, testen en implementeren, om een kortere marktintroductietijd, producten van hoge kwaliteit en minder fouten en terugdraaiacties bij softwarefunctionaliteiten te bereiken. Met dit alles in gedachten helpt de juiste toolset ervoor te zorgen dat je een succesvolle DevOps-cultuur kunt realiseren.
De tools en technologieën die ontwikkelaars en operationele medewerkers ondersteunen bij hun interactie gedurende de gehele softwarelevenscyclus, worden aangeduid als een DevOps-toolchain. Continue integratie, continue levering, automatisering en samenwerking behoren tot de belangrijkste DevOps-elementen die hierin worden behandeld.
Welke veelgebruikte tools worden dan ingezet in DevOps?
Planningstools
Dit zijn voornamelijk dezelfde tools die worden gebruikt in methodologieën voor agile ontwikkeling. Een van de populairste tools voor deze fase is wellicht Jira. Als je er nog niet bekend mee bent, is het een projectmanagementtool van Atlassian die is ontworpen voor agile teams om hun taken, problemen en bugs bij te houden. De tool kan worden geïntegreerd met meerdere andere tools die in andere fasen van het DevOps-proces worden gebruikt.
Goede communicatie is cruciaal in DevOps, zowel in de planningsfase als in de andere fasen. Daarom is het een goed idee om een berichtenapplicatie te gebruiken die ook met de rest van de tools kan worden geïntegreerd. Voorbeelden van dergelijke applicaties zijn Slack, eveneens van Atlassian, en Microsoft Teams.
Versiebeheertools
Versiebeheertools helpen ontwikkelingsteams van applicaties om wijzigingen in de broncode in de loop der tijd te beheren. Ze helpen softwareteams sneller en slimmer te werken naarmate ontwikkelomgevingen groter worden.
Versiebeheeroplossingen helpen vooral om de ontwikkelingstijd te verkorten en het succes van implementaties te vergroten. Git is waarschijnlijk de meest gebruikte versiebeheertool, maar sommige teams kiezen mogelijk voor TFS, SVN of GitHub voor broncodebeheer.
Tools voor continue integratie
Tools voor continue integratie voeren geautomatiseerde tests uit op ontwikkelbranches en stellen je in staat om naar de hoofdbranch te pushen wanneer builds succesvol zijn. Ze bieden ook continue feedback via realtime chatmeldingen van je team met eenvoudige integraties. Bekende tools zijn Jenkins (een opensourcetool), Circle CI en AWS.
Tools voor configuratiebeheer
Gedurende de DevOps-levenscyclus verwijst configuratiebeheer naar het onderhoud en de controle van de componenten van grote complexe systemen in een bekende, consistente en vastgestelde toestand. Servers, netwerken, opslag en applicaties zijn allemaal voorbeelden van IT-systeemcomponenten.
De tools voor configuratiebeheer maken het implementatieproces gedurende het productieproces naadloos en consistent. Enkele bekende tools voor configuratiebeheer zijn Ansible, Puppet en Chef.
Hulpmiddelen voor continue werking
Hulpmiddelen voor continue werking worden gebruikt om het proces van het starten van de applicatie en de updates ervan te automatiseren. Continue werking voorkomt uitvaltijd door containerbeheeroplossingen zoals Kubernetes en Docker te gebruiken. Deze technologieën voor containerbeheer maken het proces van het ontwikkelen, testen en implementeren van een applicatie in verschillende omgevingen veel eenvoudiger.
Is DevOps iets voor jou?
Hoewel geen enkele methodologie voor iedereen geschikt is, heb je nu misschien een duidelijker beeld van wat DevOps is en wat je nodig hebt om het te implementeren. Op basis hiervan en van meer informatie over DevOps-prijzen kun je beslissen of DevOps een proces is dat past bij de doelstellingen van je team.
Als je onderzoekt hoe je DevOps kunt implementeren of efficiënter kunt opschalen, kun je overwegen samen te werken met de juiste partner voor nearshore-softwareontwikkeling.
Op zoek naar meer beste werkwijzen voor DevOps? Abonneer je op de nieuwsbrief van The CTO Club voor de nieuwste inzichten.
