Het doel van DevOps en het bij elkaar brengen van it en business-teams is software sneller en beter te ontwikkelen. Alleen het samenbrengen van diverse afdelingen is niet voldoende, want het proces krijgt pas echt vorm met Continuous Testing (CT). Hoe zet je een CT-ecosysteem op, met een continu feedbackmechanisme en geautomatiseerde terugkoppelingen bij elk controlepunt?
Hoe beter de wensen van de gebruikers en de mogelijkheden van de ontwikkelaars op elkaar aansluiten, hoe beter en sneller toepassingen worden ontwikkeld. Het in een vroegtijdig stadium bij elkaar brengen van it en business-teams verbetert de communicatie en het samenwerken, en dicht de kloof tussen ontwikkeling en uitwerking. DevOps wordt vaak omschreven als een cultuur, beweging of toepassing die samenwerking en communicatie van softwareontwikkelaars en andere it-professionals samenbrengt. De adoptie van DevOps vraagt om een bepaalde culturele verschuiving van mensen, processen en technologie, zodat deze in lijn zijn met softwareontwikkeling, testen en operationele activiteiten.
Uit onderzoek van Forrester blijkt dat nieuwe software development lifecycle (SDLC) opkomt dankzij drie belangrijke aandachtspunten die DevOps-toepassingen aanpakken. Op deze manier versnellen de cycli van nieuwe releases. Het eerst punt is dat meer dan 24 procent van alle bedrijven dagelijks en wekelijks nieuwe softwarereleases uitvoeren. Daarnaast zijn de veranderende behoeften en het gebrek aan coördinatie tussen teams een bron van zorg. Het blijkt namelijk dat ongeveer 47 procent vindt dat dit primaire faalpunten waren tijdens een release-beoordeling. Ten slotte zijn steeds meer organisaties overtuigd van DevOps: ongeveer 66 procent van de cio’s heeft dit op de it-agenda staan.
Puzzelstukjes samenvoegen
Continuous Testing is een eerste stap in de goede richting bij het toepassen van DevOps. CT is een continu feedbackmechanisme dat softwaredelivery stimuleert met behulp van een softwareontwikkelingscyclus met geautomatiseerde terugkoppeling bij elk controlepunt. Wanneer de terugkoppeling is om verder te gaan, dan wordt het volgende proces in de toeleveringsketen automatisch geactiveerd. Als daarentegen de terugkoppeling negatief is, wordt het proces automatisch gestopt en worden er corrigerende maatregelen uitgevoerd.
Het opzetten van een CT-ecosysteem omvat de volgende stappen:
– Het is voor testorganisaties gebruikelijk om automatische scripts op te slaan in testmanagement-oplossingen of gedeelde folderstructuren. Toch dient een geautomatiseerd testscript, net als applicatiecode, te worden bewaard in een versiebeheersysteem.
– Zorg voor een geïntegreerde automatiseringssuite met ingebouwde implementatieoplossing, zodat gecentraliseerde uitvoering en rapportages mogelijk zijn
– Classificeer de automatiseringssuite in meerdere testlagen, zodat snellere terugkoppeling mogelijk is bij elk controlepunt. De meest voorkomende types van deze tests zijn:
- Health check. Dit is een geautomatiseerde controle om na te gaan of diensten ook in productie zijn na de implementatie
- Smoke tests. Dit is de meest belangrijke set van geautomatiseerde testen om ervoor te zorgen dat systeemfuncties operationeel zijn en er geen blokkades voorkomen
- Volledige regressietest. Het doel hiervan is om terugkoppelingstijd zo kort mogelijk te houden door parallelle uitvoering van geautomatiseerde tests met gebruik van meerdere onderwerpen of machines
- Intelligente regressie. Wanneer de uitvoeringstijd van de volledige regressietest beduidend lang is, wordt de CT-installatie minder effectief door langere terugkoppelingscycli. In zo’n scenario kan de volledige regressie ’s nachts of in het weekend worden uitgevoerd afhankelijk van de releasefrequentie.
– Vereenvoudig bestaande automatiseringstesten en migratietesten naar open source-oplossingen. Dit vergroot de effectiviteit van een DevOps-installatie
– Bouw een cloud-infrastructuur om effectief gebruik te maken van beschikbare middelen en het mogelijk maken om de load tests op aanvraag te draaien zonder tijd en middelen te verspillen
Als één van deze stappen mislukt, stopt het implementatieproces en worden alle betrokkenen, zoals ontwikkelaars, testers en operationele medewerkers, op de hoogte gesteld om er zeker van te zijn dat problemen worden opgelost.
Hoe ziet de toekomst eruit?
Het idee dat traditionele it-organisaties geen DevOps kunnen uitvoeren zonder weg te gooien wat ze hebben opgebouwd, is een mythe. Testteams spelen een belangrijke rol in het de overgang naar DevOps door het orkestreren van een CT-infrastructuur en het creëren van terugkoppelingsprocessen. Door als eerste stap CT succesvol te implementeren, kan DevOps worden verbonden met ontwikkelaars en uitvoerende teams. Dit zorgt voor een geautomatiseerde uitrol naar productie, analyse van de code, productiemonitoring en het op verzoek direct beschikbaar maken van omgevingen. Op deze manier ontstaat er een volledige cyclus van CT en Continuous Development (CD), waardoor teams fouten sneller kunnen herstellen.
In tegenstelling tot alle andere technologische bewegingen, wordt DevOps niet alleen gedreven door gepassioneerde en enthousiaste techneuten, maar ook door de rest van het bedrijf, zoals gebruikers van digitale producten en diensten van it.
Andreas Golze, vice president quality engineering & assurance bij Cognizant