Devops; de oplossing voor een efficiënte samenwerking tussen developers en operations

01 september 2015

Bij Toomba zijn de mensen achter de schermen altijd bezig om zichzelf te blijven ontwikkelen en te onderzoeken met welke technieken ze nog efficiënter kunnen werken. Deze week vertelt Ivo de Bruijn enthousiast over DevOps; een logisch vervolg op de Agile projectaanpak. Wat is DevOps? Ivo: “Er zijn veel verschillende antwoorden op wat DevOps inhoudt. Persoonlijk zie ik DevOps als een soort filosofie waar Developers en Operations zich aan kunnen houden. Het idee achter DevOps is de doorlooptijd van het proces om code van ontwikkeling naar productie te brengen, te verkorten.” Ivo legt ter verduidelijking verder uit: “Bij DevOps draait het dus om samenwerking tussen ontwikkeling en systeembeheer. Daar komt de naam ook vandaan: Dev staat voor Development en Ops voor Operations. Developers ontwikkelen code voor producten of services en Operations houdt de huidige productie omgeving in de gaten zodat alles soepel blijft draaien. Developers willen vaak dat de code die zij gemaakt hebben snel op een productie omgeving komt. Reden hiervoor is omdat hier nieuwe features worden geïntroduceerd en patches worden uitgevoerd. Maar ook omdat dan klanten zo snel mogelijk kunnen profiteren van de gevraagde wijzigingen. Vervolgens heb je Operations, zij proberen de productie omgeving draaiende te houden en dat de up-time gewaarborgd blijft voor de klant. Operations zal vaak weerhoudend reageren op wijzigingen, aangezien de omgeving prima draait en er geen nieuwe onbekende problemen moeten voorkomen. Developers willen juist dat de nieuwe wijzigingen in productie komen zodat de klant tevreden gesteld kan worden. Dit zorgt er vaak voor dat het uitrollen van nieuwe code lang kan duren.” DevOps kan voor dit vraagstuk een oplossing zijn. DevOps is gebaseerd op het feit dat de developer meer invloed heeft op een omgeving. Een keuze kan zijn om de omgeving in de vorm van een PaaS (Platform as a Service) omgeving te maken. Een Developer houdt zich bezig met de applicatie en het platform waarop het draait. Als dit naar behoren werkt kan dit geheel automatisch worden uitgerold naar een productie omgeving. Hierdoor kan een ontwikkelomgeving exact lijken op een productieomgeving waardoor het oplossen van problemen makkelijker wordt en het uitrollen van de applicatie simpeler. Er zijn veel tools beschikbaar, je kunt denken aan onder andere Google App Engine en Heroku om gebruik te maken van PaaS. Hierdoor is het makkelijk voor Operations om dit te beheren, te controleren en om uit te rollen,” aldus de techneut. Wanneer pas je DevOps toe? “DevOps kun je altijd toepassen. Een oplossing kan zijn door de webapplicatie om te zetten naar een PaaS omgeving, dit gaat uitrollen om vervolgens te kunnen aanbieden aan klanten. Je kunt hierdoor ook de infrastructuur uitbesteden waardoor je zelf alleen maar het platform met de applicatie hoeft aan te leveren en de rest wordt voor je geregeld. Het idee achter DevOps is de frictie tussen Developers en Operations te verkleinen doordat het uitrollen geen onbekende variabelen meer bevat en alles geheel automatisch gaat verlopen.” Welke voordelen biedt DevOps? “DevOps biedt als voordeel dat het de tijd verkort tussen het in productie brengen van code. Dit kom door de goede samenwerking tussen de Developers en Operations. Doordat een ontwikkelaar een omgeving heeft die exact op productie is het voor de ontwikkelaar omgeving- specifieke problemen direct uit te sluiten. Ook het testen van de ontwikkelingen is belangrijk. Een acceptatie server kan nu ook met de zelfde configuratie opgezet worden en zal zich ook gedragen als een productie omgeving. Hierdoor kan er gegarandeerd worden dat de code die op de productie server komt altijd 100% in orde is. Doordat de code goed getest is, is het voor Operations makkelijker om te bepalen dat de code die live kan ook goed is. Zij zullen minder een blokkerende factor zijn in het uitrollen van een nieuwe versie en hierdoor zal het uitrollen soepeler en sneller verlopen. Met andere woorden, de time to market wordt veel korter. De hobbels die normaal ontstaan met het uitrollen kunnen geheel automatisch getest worden. Tevens is er een zekerheid dat de code die op een ontwikkelomgeving staat ook op een productie omgeving gaat werken. Dit komt omdat de twee omgevingen bijna identiek zijn. Het enige verschil is de onderliggende infrastructuur, maar dat zou voor de applicatie geen problemen moeten veroorzaken.” Gaat Toomba dit ook toepassen? “Jazeker gaat Toomba dit toepassen, sterker nog, wij zijn hier al druk mee bezig door tools zoals Docker te gaan gebruiken voor onze ontwikkelomgevingen en dit ook door te voeren naar productie. De tijd voor nieuwe versies wordt verkort, zodat wij nog sneller problemen kunnen oplossen en nieuwe features kunnen introduceren. Tevens maken wij gebruik van CI (Continious Integration), hierdoor wordt onze code automatisch uitgerolt op een acceptatieomgeving en getest. Vervolgens wordt dit getest aan de hand van opgestelde front-end Selenium tests en coding practices. Dit kan dan ook door de klant worden getest of alles naar wens is en kunnen wij dit direct in productie uitrollen. Doordat we ook met DevOps bezig zijn hebben wij ook een basis gecreëerd voor een productie omgeving. We kunnen productie nu makkelijk vervangen met een andere machine of zelfs clonen om in een cluster te gebruiken,” vertelt Ivo enthousiast. Is DevOps een vervolg op Agile? “DevOps is een logisch vervolg op de Agile projectaanpak van Toomba en biedt Developers meer controle op wat er op een productieomgeving komt. Scrum teams worden juist geprikkeld om verder te kijken dan het eigen ontwikkelteam en de werkende software op een testomgeving, of uitsluitend te reageren op veranderingen op nieuwe user stories. En zo zijn we bij Toomba elke dag bezig om te kijken hoe we de processen zo efficiënt mogelijk kunnen inzetten. Gelukkig krijgen wij bij Toomba de ruimte om hierover na te denken en om met oplossingen te komen hoe we nog beter en sneller kunnen worden. Hoe cool is dat!” sluit Ivo met een smile af.

Kom met ons in contact