Home Innovatie & Strategie DevOps: de laatste horde voor succesvolle Agile ontwikkeling

DevOps: de laatste horde voor succesvolle Agile ontwikkeling

162
Kroes

DevOps is een principe dat is voortgekomen uit de frustratie dat veel IT-projecten te laat worden opgeleverd, dat opgeleverde applicaties onder presteren en dat investeringen niet worden terugverdiend. DevOps, de samenvoeging van de termen ‘developer’ en ‘system operator’, is een multidisciplinair fenomeen dat is gestoeld op het principe dat geen enkele IT-vaardigheid belangrijker is dan de andere. Om problemen bij het ontwikkelen en de exploitatie te voorkomen, wordt ervan uitgegaan dat alle vaardigheden in nauwe samenhang nodig zijn.

Bij veel IT-projecten gaan ontwikkelaars helemaal op in hun eigen werk. Niks mis mee, zou je zeggen. Alleen gaan ze dikwijls dusdanig op in hun eigen aandachtsgebied, dat ze ook echt niet verder kijken dan de applicatie die zij moeten ontwikkelen of soms zelfs niet verder dat het afgebakende stukje functionaliteit waar ze verantwoordelijk voor zijn. Ze overzien hierdoor niet het grotere geheel waarbinnen de applicatie moet draaien en hebben evenmin oog voor beheeraspecten. De systeembeheerders die de zelf ontwikkelde applicaties ‘live’ moeten zetten, hebben op hun beurt geen weet van de werking van de code. Beide partijen werken hierdoor op een totaal andere golflengte: waar ontwikkelaars gericht zijn op het genereren van nieuwe software, richten beheerders zich op het in stand (draaiend) houden van bestaande software.

Deze problematiek komt bij Agile-ontwikkeling nog sterker tot uiting dan bij de traditionele ontwikkelmethodes. Waar bij de traditionele ontwikkelmethodes met een releasekalender wordt gewerkt om software op gezette tijden van de ene naar de andere OTAP-omgeving over te zetten, kent Agile-ontwikkeling een veel hogere dynamiek waarbij vrijwel dagelijks software wordt opgeleverd. Het zou hierdoor ondoenlijk zijn om voortdurend werkende software over te dragen van ontwikkelaar naar systeembeheerder en te stagen van de ene naar de andere OTAP-omgeving zoals bij de traditionele ontwikkelmethodes gebruikelijk is. Organisaties die aan systeemontwikkeling doen volgens de Agile-methode en die desondanks werken met de conventionele silo’s van applicatieontwikkeling en IT-operations zullen dan ook onherroepelijk in de problemen komen.

Door de verschillende verantwoordelijkheden duidelijk te benoemen en ontwikkeling en exploitatie naadloos op elkaar aan te laten sluiten, en waar mogelijk bij de ontwikkelaar te beleggen, kan het gehele applicatie-lifecycle-proces worden verbeterd. En met een efficiënter en doelgerichter proces, is het zonneklaar dat de kwaliteit van het onderhanden zijnde systeem omhoog gaat, al is het maar in termen van continuïteit en stabiliteit. Bij DevOps ontwikkelen de developers idealiter modelgedreven de functionaliteit, voeren ze de systeemtesten uit en demonstreren ze de functionaliteit vervolgens aan de opdrachtgever om direct feedback te ontvangen. De support sysadmin in het team richt de ontwikkel-, test-, acceptatie- en productieomgeving in voor het geautomatiseerd doorzetten en uitrollen van de applicatie. Daarnaast monitort hij de performance van de applicatie per omgeving.

Omdat development-teams en operations-teams in de regel niet met elkaar praten, niet dezelfde doelstellingen hebben en niet dezelfde tools gebruiken, kan DevOps in de praktijk echter lastig in te voeren zijn. Het automatiseren van de complete applicatie-lifecycle helpt IT-organisaties in de transitie naar een DevOps-cultuur. Een Rapid Application Delivery (RAD) Platform adresseert de uitdagingen die gepaard gaan met DevOps. Met één platform is het volledige change management-proces te sturen, waarbij Development en Operations elk een eigen rol hebben en waarbij de kans op fouten sterk wordt gereduceerd. Met andere woorden: een Rapid Application Delivery platform faciliteert het DevOps samenwerkingsproces zonder dat risico’s toenemen.

Tijdens de ontwikkeling vergt het doorzetten van applicaties naar de acceptatie-omgeving slechts één geautomatiseerde handeling. Hierdoor kunnen gebruikers conform de Architected Agile aanpak veel sneller de werkende software zien zonder dat operationskosten omhoog schieten. En de ontwikkelaars zien direct hoe de exploitatie van de applicatie verloopt en kunnen indien nodig proactief optreden als bijvoorbeeld webservices trager functioneren dan verwacht. En het proces op zichzelf wordt een stuk efficiënter doordat alleen dat wat wordt gebouwd naar productie wordt overgezet. Daarnaast kan op deze manier beter het structuuroverzicht worden behouden. Ten slotte zal ook de gebruikerstevredenheid gaan toenemen door de verbeterde IT-dienstverlening. DevOps voorkomt dus dat exploitatie een belemmering gaat vormen en maakt het mogelijk om de dynamiek die zo kenmerkend is voor Agile-ontwikkeling nu ook echt volledig te benutten.

Eric ten Harkel, COOLProfs

LAAT EEN REACTIE ACHTER

Please enter your comment!
Please enter your name here