Wat is DevOps?

DevOps is een werkwijze binnen softwareontwikkeling voor het combineren van softwareontwikkeling (development) en systeembeheer(operations). DevOps stelt teams in staat om snel en regelmatig softwarereleases uit te voeren zonder verhoogde risico's door een hoge mate van automatisering toe te passen in het testen, deployen en monitoren van softwarereleases.

Deze eigenschappen maken DevOps uitermate geschikt voor het ontwikkelen van software binnen een Agile omgeving.

DevOps pipeline

Het DevOps proces kent verschillende fases. De fases kunnen per organisatie verschillen maar zijn in grote lijnen hetzelfde. Door de verschillende fases van de pipeline te doorlopen is het mogelijk om op een efficiënte en consistente manier applicaties te ontwikkelen en wijzigingen uit te voeren.

Plan
In de eerste fase van de DevOps pipeline wordt er bepaald welke functionaliteiten er gebouwd moet gaan worden. Vaak is het de taak van product- en projectmanagers om samen met de stakeholders een roadmap te maken en dit op te delen in kleinere taken. Deze taken kunnen vervolgens ingepland worden in een sprint of een release.

Code
In deze fase gaan de software ontwikkelaars aan het werk om de nieuwe functionaliteit te bouwen. Meestal pakt elke ontwikkelaar een kleine taak op om dit op een later moment samen te voegen. Bij het samenvoegen van de code beoordelen ontwikkelaars elkaars werk om eventuele problemen vroegtijdig te signaleren en om te zorgen dat de code voldoet aan de vastgestelde kwaliteitsrichtlijnen.

Build
Nadat de code uit de vorige fase is samengevoegd begint de buildfase. In deze fase wordt de code gecompileerd en wordt het resultaat hiervan automatisch gedeployed naar de testomgeving. In deze fase worden ook eventuele unittests automatisch gedraaid om te verifiëren dat er bij het samenvoegen van de code geen nieuwe fouten zijn ontstaan.

Test
In de testfase worden automatische en handmatige tests uitgevoerd om eventuele fouten in de applicatie te vinden voordat de applicatie naar de productieomgeving gaat. Afhankelijk van de aanpassingen en het belang van de applicatie kan er in deze fase ook voor gekozen worden om extra tests zoals een security- of performancetest uit te voeren.


Release
Als de testfase succesvol afgerond is dan gaat de applicatie de releasefase in. Afhankelijk van de organisatie en het soort applicatie kan de applicatie direct of volgens een vaste agenda gereleased worden. Afhankelijk van de organisatie kan het zo zijn dat de applicatie de releasefase niet verlaat totdat er een akkoord is gegeven door de stakeholders om de volgende fase in te gaan.

Deploy
Als het tijd is om de applicatie te deployen en de nodige akkoorden binnen zijn dan begint de deployfase. In deze fase wordt de applicatie overgezet naar de productieomgeving. Het is raadzaam om zoveel mogelijk stappen van de deployment te automatiseren om handmatige fouten te voorkomen en om te zorgen voor zo min mogelijk downtime. Vaak wordt er voor gekozen om tijdens de deployment van de nieuwe applicatie de oude applicatie in de lucht te houden om downtime te voorkomen of te minimaliseren.

Operate
Na de deployfase staat de applicatie op de productieomgeving. Het is belangrijk om te zorgen dat er altijd genoeg resources beschikbaar zijn, zodat de applicatie ook tijdens piekmomenten snel reageert.

Monitor
Het is belangrijk om de applicatie goed te monitoren. Op basis van gebruiksgegevens van de applicatie en feedback van gebruikers kunnen eventuele problemen en verbeterpunten naar boven komen. De productmanager kan er voor kiezen om deze bevindingen weer door te zetten naar de ontwikkelaars waarmee het proces weer opnieuw begint.