Steeds meer organisaties stappen over naar DevOps. Internationaal onderzoek van ServiceNow wijst uit dat meer dan negentig procent van de 1.850 respondenten met DevOps bezig is. In Nederland wordt DevOps succesvol toegepast bij bedrijven als de Rabobank, KPN en Stater. Wat is DevOps precies? En hoe gaat een transformatie naar DevOps in zijn werk?
Bij de Rabobank is voor het programma Betalen & Sparen de overgang gemaakt naar agile om vervolgens de overstap naar DevOps te maken. Dit komt erop neer dat development & operations opgaan in hetzelfde team en alle taken gezamenlijk oppakken onder het mom van: You built it, you run it.
Daarmee wordt de muur tussen Dev en Ops afgebroken en veranderen botsende belangen in een gezamenlijk teambelang. Bijkomend voordeel is dat je als individu gemakkelijker een leidende rol kunt nemen: was je voorheen lid van een ontwikkelteam, nu kun je ook gaan uitvoeren.
Verandering vs. stabiliteit
Waar Dev voornamelijk als doel heeft wijzigingen door te voeren en nieuwe functionaliteiten te creëren, is het doel van Ops juist meer stabiliteit met zo weinig mogelijk verstoringen in de productie.
Voeg beide teams samen en het gezamenlijke doel wordt de eindverantwoordelijkheid voor het product en de functionaliteit. DevOps-teams moeten in staat zijn zelfstandig de software te ontwerpen, bouwen, testen, deployen en beheren.
Er is geen vast scenario om DevOps te implementeren, maar er zijn wel belangrijke zaken die in elk geval in gang moeten worden gezet.
Van Dev naar Ops
Voor een transformatie van Dev naar Ops is het volgende nodig: regel de praktische zaken en geef developers de juiste autorisaties (toegang tot productie).
Het beheerteam moet zich de beheertools eigen maken en kennisnemen van de problemen die kunnen spelen in de productie (en hoe hiermee wordt omgegaan).
Dit heeft de volgende voordelen:
- Door een beter begrip van wat er komt kijken bij het beheer van een omgeving, zal dev bij nieuwe changes meer rekening houden met de impact op beheerbaarheid;
- Incidenten in productie zijn door DevOps-teams gemakkelijker te analyseren en op te lossen omdat de kennis van de software vanuit diverse perspectieven samenkomt;
- Voor developers wordt inzichtelijk waarvoor zij nu eigenlijk werken, en dit is doorgaans enthousiasmerend;
- Problemen die zich op productie voordoen worden duidelijker voor developers omdat zij zelf als beheerder met deze problemen te maken krijgen.
Van Ops naar Dev
Wanneer het operatieteam deel gaat uitmaken van het developmentproces, gaan beheerders meedenken over nieuwe oplossingen en changes, kunnen ze testen uitvoeren en de kwaliteit van code bewaken nog voordat deze in productie staat.
Dit heeft de volgende voordelen:
- Omdat Ops-medewerkers vanaf het begin bij bugfixes en changes zijn betrokken, kunnen zij eerder aan de bel trekken over gevolgen voor de beheerbaarheid van het systeem;
- Ops-medewerkers krijgen minder het gevoel dat er iets ‘over de muur’ wordt gegooid. Ook zullen ze enthousiaster zijn over aankomende changes aangezien zij zelf betrokken zijn bij de ontwikkeling.
De invulling van deze acties is voor elke organisatie anders. De snelheid en manier waarop hangen af van de cultuur van de organisatie, de huidige invulling van Dev en Ops en van in hoeverre het management achter de veranderingen staat.
Een goed begin…
Wil je een gemakkelijke start maken met DevOps, dan kunnen developers en beheerders eerst in dezelfde ruimte gaan werken. Daarna kun je de diverse taken van Dev en Ops in kaart brengen en kijken welke activiteiten als eerste zijn over te dragen.
Belangrijk om rekening mee te houden is dat DevOps vaak wordt geïntroduceerd terwijl er al agile wordt gewerkt. Dit betekent dat Dev vaak al ‘om’ is, terwijl Ops dit voornamelijk nog vanaf de zijlijn heeft gadegeslagen. De transitie is dan ook vaak groter voor Ops.
Wat betekent dit voor een tester?
Van huis uit is een tester gefocust op de kwaliteit van de software en hoe deze zo goed mogelijk volgens de specificaties en de wens van de klant is te realiseren. Daarvoor heeft hij kennis van testspecificatietechnieken, testtools en weet hij hoe het proces rondom bevindingen in elkaar zit.
Natuurlijk moet een tester in een DevOps-omgeving de overige (nieuwe) teamleden begeleiden op het gebied van testen (coaching, opleiden). De tester zelf zal in een DevOps-omgeving op zijn beurt bij de technische beheertaken moeten helpen. Dit zijn bijvoorbeeld:
- Het deployen van releases in test, acceptatie en productie;
- Dagelijks beheer van de productieomgeving (incidentmanagement);
- Performancemonitoring;
- Het uitlezen van technische logging;
- Begrip van databases en opvragen van data met behulp van query’s.
DevOps is voor testers dus een uitstekende kans om meer te leren over de black box die beheer heet.
Mis je nog een waardevolle tip of heb je een andere opmerking? Laat het me weten!
Rob van Dijk, testconsultant bij Salves