10-05-2016 Door: Mark Troester

DevOps: One Size Does Not Fit All

Deel dit bericht

Sommige IT-professionals verlangen terug naar de tijd waarin het mainframe de hoofdrol speelde. Hoe absurd dit ook klinkt, ik kan me het helemaal voorstellen. De logge machine met zijn domme terminals en duizenden prikkaarten gaf de IT-afdeling namelijk de volledige controle over de infrastructuur. Verboden toegang voor de citizen developers en business analisten.



Zaken werden ingewikkelder met de komst van gedistribueerde desktop computing en de verschillende besturingssystemen die daarbij kwamen kijken. Server-gebaseerde web apps vereenvoudigden het een en ander dan weer, maar door de komst van mobiel is de ontwikkeling weer complexer dan ooit. In plaats van het simpelweg updaten van de server, dient ieder mobiel device geüpdatet te worden om apps te kunnen bieden die werken op ieder device. Wat moet de IT-afdeling hieraan doen? DevOps bieden uitkomst.



De evolutie van DevOps

DevOps is eigenlijk de opvolger van Agile Development, dat in 2001 werd geïntroduceerd. DevOps werd voor het eerst gemeengoed in 2009 in België. 


Nu, 15 jaar na de introductie van Agile Development en zes jaar na die van DevOps, zijn deze termen sterk verweven en veelomvattend met richtlijnen over houding en aanpak, platformen, tools en oplossingen. 



Agile Development, gekenmerkt door Scrum-meetings en snelle ‘turnaround’ cycli, zorgde voor een korte ontwikkeltijd maar maakte het ontwikkelen op zich lastiger. Dit kwam doordat veel organisaties de korte uitrolcyclus niet konden ondersteunen. DevOps, kenmerkend vanwege zijn platformen, tools en de nadruk op samenwerking tussen IT en ontwikkeling, richt zich op applicatielevering met voortdurende testen, ontwikkeling van features en onderhoud om apps sneller te kunnen leveren. De intentie is goed, maar het DevOps-proces moet taak specifiek worden gemaakt om succesvol te kunnen zijn.



De moderne ontwikkelomgevingen kunnen worden opgedeeld in drie verschillende categorieën: low-code, development centric apps en mobile. Het leveren van apps binnen deze drie omgevingen vereist een groot aantal skills en tools. Daarom is het belangrijk dat de benadering waarop en de mate waarin DevOps wordt ingezet, varieert van vrijwel geen DevOps in omgevingen met zeer weinig code tot uitgebreide DevOps binnen mobiele omgevingen.



Low-Code = Zero Ops

Binnen cloud-gebaseerde aPaas low-code omgevingen speelt DevOps een kleine rol. De leverancier staat aan het roer en onderhoudt en beheert de uitrolomgeving. De ‘citizen developer’ of business analist kan zelf aan de GUI- en andere features werken zonder al te veel tussenkomst van de IT- of ontwikkelafdeling. Binnen deze omgevingen kunnen frequente gebruikers eenvoudig low-code apps uitzetten. Een sterke DevOps-aanwezigheid is hierbij niet vereist omdat de aparte omgevingen die normaal gesproken zorgen voor de distributie van de apps, niet aanwezig zijn. De business analist voert gewoonweg aanpassingen door en zet de opdracht door aan de productie. 



De IT-afdeling speelt hier enkel de rol van gatekeeper en komt alleen in actie als dat gewenst is. Deze omgevingen staan bekend als zero ops, oftewel, hoe minder DevOps hoe beter. Hierdoor hebben zakelijke gebruikers, IT’ers en ontwikkelaars alle vrijheid om zich te richten op hun strategisch werkgebied en kerntaken. De beschikbare middelen worden op deze manier op de juiste wijze gestroomlijnd, wat de productiviteit over de gehele linie ten goede komt.



Deployment-Centric = Controlled Ops

Snel in te zetten, schaalbare, bedrijfskritieke, wereldwijde apps vallen binnen de categorie deployment-centric. Het doel van DevOps binnen deze code-intensieve omgevingen is om ontwikkelaars vrij te stellen van implementatie uitdagingen, waardoor zij zich volledig kunnen richten op het programmeren. Een goed uitgevoerde DevOps kan apps prima verschuiven van applicatieontwikkeling naar implementatie, waardoor een nauwe samenwerking ontstaat tussen developers en de IT-afdeling. Binnen deze omgeving maakt een goed beheerd DevOps-proces het eenvoudig voor het DevOps-team om de apps uit te rollen en de implementatie in de toekomst te beheren, waarbij apps door slimme regels automatisch schalen in lijn met het gebruik. Dit is de reden waarom we DevOps binnen deze omgevingen karakteriseren als controlled ops: een samenwerking die zeer intensief beheerd wordt door de ontwikkel- en IT-afdeling.
 


Mobile = Extended Ops
Met de komst van mobile zijn er op het vlak van ontwikkeling, implementatie, onderhoud, monitoring en analyse veel uitdagingen bijgekomen. Ontwikkelaars hebben onder andere te maken met iOS, Windows en Android en uiteraard ook met de verschillende versies binnen deze platformen. Daarbij heb je ook nog te maken met de ontwikkelomgeving zelf: web, native of hybride. Elke maand komen er ook meer verschillende soorten devices bij en zijn er diverse manieren om apps te distribueren, zoals publieke app stores, besloten app stores en diensten om documenten te delen. De eindgebruiker heeft de volledige controle over hoe hij het device inricht en inzet, waardoor de behoefte aan responsive en aantrekkelijke gebruikerservaringen alsmaar toeneemt.



In deze omgeving is er een sterke behoefte aan extended ops, waar samenwerking, ontwikkeling, implementatie, onderhoud, ondersteuning en zakelijke stakeholders gezamenlijk bijdragen aan het wel of niet slagen van een app. Als het gaat om ontwikkelen voor mobiel, dient iedereen een plek aan de DevOps-tafel te hebben. Dit komt doordat mobiele apps constant in ontwikkeling zijn vanwege de feedback die gebruikers geven en daarop ook aanpassingen binnen de apps doorgevoerd willen zien. De mogelijkheid om in razend tempo vloeiende updates en veranderingen door te voeren die zijn aangedragen door gebruikers, kan een app maken of breken. De mate van samenwerken, de platformen en tools die DevOps biedt binnen deze omgeving zijn zeer kritiek omdat zakelijke gebruikers betrokken moeten worden bij het ontwerp en de ontwikkeling van de app. Ook moeten zij worden meegenomen bij de gebruiksanalyse van een app, wat zal leiden tot de toekomstige aanpassingen. Extended ops is succesvol wanneer zakelijke gebruikers betrokken worden. Dit geldt echter niet voor het DevOps-proces op zich, aangezien dat alleen is bedoeld voor IT en ontwikkelaars.   



Samengevat

DevOps speelt een rol gedurende de gehele applicatie delivery cyclus. Het doel van DevOps is het maximaliseren van de voorspelbaarheid, doeltreffendheid, beveiliging en onderhoud van elke app of systeem. De sleutel tot een succesvolle DevOps is het toepassen van het juiste niveau van samenwerking en het implementeren van de juiste tools om er zeker van te zijn dat DevOps de kwaliteit en productiviteit verbetert in plaats van het in de weg te staan.

Tags:

DevOps

Company:

Progress

Mark Troester

Mark Troester is vicepresident Strategie bij Progress en begeleidt de uitvoering van 'go-to-market' plannen van het bedrijf. Mark heeft uitgebreide ervaring wat betreft het op de markt brengen van applicaties en 'big data'-producten. Voorheen was hij verantwoordelijk voor de productmarketing bij Sonatype, SAS en Progress DataDirect. Aan het begin van zijn carrière werkte Mark als ontwikkelaar en projectmanager voor startups en gevestigde ondernemingen.

Alle blogs van deze auteur

Partners