De DevOps beweging lijkt onomkeerbaar te zijn en doet steeds vaker zijn intrede in het bedrijfsleven en de overheid. De toenemende vraag naar DevOps-engineers en de populariteit van DevOps-events onderstreept deze beweging. Maar wat betekent dit voor it en enterprise architectuur ?
Het is nog niet zo lang geleden dat organisaties sceptisch waren over cloud. Inmiddels zijn organisaties vertrouwd geraakt met cloud, software as a service en platform as a service en het succesvol laten werken van DevOps is daarbij een logische stap. Het is overigens wel een ingrijpende stap en kan gezien worden als een reorganisatie en culturele transformatie.
Onlangs heb ik zelf de ‘DevOps Days’ in Amsterdam bezocht en heb ik zelf kunnen aanschouwen welke enorme voordelen DevOps biedt. Daarnaast is de DevOps-community enorm aan het groeien en draagt deze actief bij aan het ontwikkelen en het delen van kennis en best practices. In dit artikel deel ik mijn inzichten over de mogelijkheden van DevOps.
Beter, sneller, goedkoper en veiliger
De bijdrage van de opensource community en de adoptie van cloud versnellen het DevOps gedachtengoed en zorgen voor een steeds bredere acceptatie binnen it-afdelingen van de profit en non-profit sector. Als je de mogelijkheden van bijvoorbeeld Elastic Stack, Chef, Puppet, Amazon webservices en Docker (om maar wat te noemen) aanschouwt, krijg je snel de indruk dat alles beter, sneller, goedkoper en veiliger wordt. Tot groot genoegen van bestuurders die ervoor moeten zorgen dat hun organisatie snel en flexibel in kan spelen op steeds sneller veranderende eisen vanuit de markt.
Technologie is echter niet de enige driver achter de DevOps beweging. Aangezien het succes van de tooling staat of valt met de mensen die het gebruiken, is de menselijke factor (en de ontwikkeling daarvan) enorm belangrijk. Randvoorwaardelijk voor continuous delivery is continue planning, continue integratie, continue deployment, continue testing én continue releasing en monitoring. Een glimp van het werkveld van de it-professional van de toekomst (en de toekomst is morgen!).
De architectuur functie
De grote vraag die ik me echter stel is, wat de impact van de DevOps beweging op (enterprise) architectuur is. Heldere governance structuren, afstemming met bedrijfsdoelen en een toekomstbestendige (doel)architectuur klinken logisch maar blijken in de praktijk een enorme uitdaging. Vanuit de regieorganisatie dan wel de architectuurfunctie binnen organisaties wordt er alles aan gedaan om werken onder architectuur gemeengoed te maken en alle bloedgroepen binnen de IT afdeling hierin mee te krijgen. Werken onder architectuur wordt gezien als randvoorwaardelijk bij de totstandkoming van een robuust en toekomstbestendig systeemlandschap en de rationalisatie en standaardisatie van het applicatie landschap. Is DevOps hierbij een versnellende factor of is er een ogenschijnlijke tegenstelling? Organisaties die geconfronteerd worden met digitale transformatie hebben behoefte aan een meer agile benadering van enterprise architectuur
DevOps is moeilijk te definiëren. In mijn optiek is DevOps een benadering van softwareontwikkeling die ervoor zorgt dat de ’time to market’ van applicaties en services korter wordt en meer ‘Agile’. Het cyclische proces van softwareontwikkeling wordt efficiënter door een betere samenwerking met operations, betere integratie en een hoge mate van automatisering. Een architect in een DevOps-omgeving zal dan ook diepgaande kennis moeten hebben van automation, container management, webservices, PaaS-concepten (platform as a service), configuratie management en applicatie ontwikkeling.
Sleutel tot succes
De visie van Gene Kim, een DevOps visionair is interessant. Tijdens zijn indrukwekkende carrière en zoektocht naar high performing organisations heeft hij ondervonden dat de samenwerking tussen operations, ontwikkeling en security (en het ontbreken van grenzen tussen deze afdelingen) de sleutel tot succes is.
Dit is ook precies de kern van het DevOps gedachtengoed en Gene Kim kan dan ook zeker gezien worden als een van de grondleggers van DevOps zoals wij dit vandaag de dag kennen. Hij is voorstander van het samenbrengen van cloud, mobile, Agile-softwareontwikkeling en DevOps om snelle productontwikkeling te faciliteren in multidisciplinaire teams die zelf verantwoordelijk zijn voor continuous delivery.
Architecten worden evangelisten
Vandaag de dag is technologie het hart van de moderne onderneming. Om aan de eisen van de digitale business tegemoet te komen wordt van architecten verwacht visie en strategieën te kunnen ontwikkelen binnen onder andere het applicatie, informatie en security domein. Ten overvloede; deze domeinen zijn grensoverschrijdend en zullen derhalve in samenhang moeten worden gecoördineerd.
De behoefte aan high-level sturing en coördinatie van it vanuit bedrijfsdoelstellingen (enterprise architectuur) zal altijd blijven bestaan. De invulling van architectuur en het gebruik van referentie architecturen veranderd wel degelijk door de samensmelting van ontwikkeling en beheer. Is er behoefte aan een zogenaamde DevOps referentie architectuur en hoe zou deze eruit moeten zien? Een belangrijk aspect lijkt het sturen op gewenst gedrag, waarbij architectuur ervoor moet zorgen dat het DevOps-team de juiste dingen doet, zonder te veel ingeperkt te worden (vertragen) in wat ze bouwen. Architecten worden evangelisten.
Er valt veel te zeggen over de huidge fenomenen agile en devops. Naar mijn mening overtrokken begrippen die een heel eigen leven zijn gaan leiden. Je moet er niet meer van maken dan het is. Overleg tussen belanghebbenden (gebruikers/domeinspecialisten/ontiwikkelaars/testers/beheerder) dat is DevOps en agile betekent dat er ruimte is voor voortschrijdend inzicht. Dat laatste is wat ontwikkelen is. En oh ja, automatiseren kan handig zijn maar op sommige punten handmatige tussenkomst kan ook geen kwaad.
Waar ik em aan stoor is het gebruik van begrijppen als evangelist en visionair. Heeft de evangelist altijd gelijk? Kent hij twijfel? Juist dat laatste brengt je verder.