DevOps is allang geen modewoord meer. Sterker nog, in de wereld van softwareontwikkeling is het eigenlijk al bijna niet meer weg te denken. In dit artikel lees je alles over het wat en hoe van DevOps. We sluiten af met 5 redenen waarom het voor veel bedrijven een hele goede werkwijze is.
Het begin: wat is DevOps?
Kort gezegd is DevOps een manier om ontwikkelaars (Developers) en operationele teams (Operations) samen te voegen. In de kern draait DevOps om de integratie van softwareontwikkeling en softwarebesturing. Het is binnen DevOps dus niet langer zo dat de ontwikkelaars een stuk software over de schutting kunnen gooien en er vervolgens niets meer mee hoeven doen. Het team dat bouwt is ook het team dat ervoor zorgt dat de software live gezet wordt. Dat lijkt heel logisch, maar dat was lange tijd niet zo.
Het ontstaan van DevOps
Omdat we steeds meer software gebruiken en steeds meer van onze software verwachten, moest de snelheid van softwareontwikkeling omhoog. Dat is onder andere gelukt door agile software development.
Hoewel er veel verschillende methodieken van agile software development zijn, gaat het in de kern om hetzelfde: iteratie en continue feedback. Met deze 2 ingrediënten wordt software tijdens het bouwen steeds getest, gebruikt en verbeterd. De grootste voordelen zijn de hoge mate van flexibiliteit en de hogere kwaliteit van de opgeleverde software. En ze zorgen ervoor dat mensen sneller en effectiever samen kunnen werken.
De eerste agile-teams bestonden vooral uit ontwikkelaars. Hoe effectiever deze teams werden, hoe meer het duidelijk werd dat dat niet ideaal werkte. Vanuit die realisatie is DevOps geboren.
In DevOps wordt de agile-methode verder uitgebreid. Bouwen, testen, implementeren en opleveren: het valt allemaal onder de verantwoordelijkheid van hetzelfde team. Binnen die zogenaamde DevOps-teams is er veel aandacht voor de onderlinge samenwerking, zodat mensen met verschillende rollen optimaal kunnen samenwerken.
Niks meer over de muur
DevOps-teams hebben als doel het standaardiseren van ontwikkelomgevingen en het zo veel mogelijk automatiseren van verschillende processen. Zo moet de voorspelbaarheid, efficiëntie, veiligheid en controleerbaarheid te vergroten. Deze idealen geven ontwikkelaars meer controle over de productieomgeving en meer inzicht in de bijbehorende infrastructuur.
Waar het dus eigenlijk allemaal op neerkomt, is dat de ontwikkelaars van je software niets meer over de muur gooien als de boel in productie gaat. Ze beheren de software namelijk zelf, dus hebben er alle belang bij dat alles draait zoals het hoort.
Een dag in het leven van een DevOp-professional
Hoe ziet een dag in het leven van een DevOps-professional eruit? Over het algemeen uit dezelfde taken: code schrijven, testen, uitrollen en weer opnieuw testen. Softwareontwikkeling in DevOps is een iteratief proces, dus schakel je vaak tussen codeconfiguratie- en implementatie, los je bugs op en beschrijf je wat de volgende iteratie op het werk is.
Maar DevOps vraagt ook om een andere mindset. DevOps kan alleen succesvol zijn als er een samenwerkingscultuur is, die gericht is op continue verbetering. Dus je pakt wat waarden uit een agile-methode en combineert die met een aantal tools die handmatige processen automatiseren. De mindset zie je ook terug in de manier van samenwerken: iedereen moet zich actief inzetten voor het succes van het volledige project en openstaan voor feedback van teamleden.
Tegelijkertijd ben je als DevOps-team ook volledig autonoom. Je staat waarschijnlijk onder grote tijdsdruk, dus je kunt niet wachten op beslissingen van hogerhand. Ontwikkelaars en operationele medewerkers moeten strategische beslissingen kunnen nemen.
Over het algemeen is het voor ontwikkelaars en operationele medewerkers prettiger werken in DevOps. De communicatie en samenwerking is beter, ze dragen grotere verantwoordelijkheden en krijgen meer vertrouwen. Hierdoor ontstaat er ruimte om te experimenteren met nieuwe ideeën en methodes, die betere resultaten op kunnen leveren.
Onderdelen van DevOps
Wie over DevOps leest, komt vaak een aantal andere termen tegen die ermee te maken hebben. Deze concepten vallen allemaal onder de vlag van DevOps:
Continuous integration
Bij continuous integration test en integreer je nieuwe code 1 keer per dag in je codebase. Zo kom je er direct achter wat wel en niet werkt.
Meer over continuous integration
Continuous testing
Door tools te gebruiken die je software automatisch testen, worden testen altijd afgetrapt en kun je dit dus niet meer vergeten. Met continuous testing doe je dat eigenlijk doorlopend, zodat je fouten voorkomt zonder de verdere voortgang in de weg te staan.
Continuous provisioning
Door de opkomst van de cloud kun je eenvoudig nieuwe omgevingen aanmaken. Er zijn virtuele servers beschikbaar die je in een paar minuten configureert, en waar je alleen maar betaalt voor wat je gebruikt. Hierdoor wordt het eenvoudiger om verschillende omgevingen te maken voor bijvoorbeeld tests, ontwikkeling en productie.
Configuration management
Configuration management betekent het in code opslaan van (server)configuraties. Dus in plaats van dat er ad-hoc wijzigingen gedaan worden, wordt alles via configuratie-bestanden aangepast. Met configuration management zorg je dat software consistent draait in allerlei omgevingen. Wanneer er een aanpassing gedaan moet worden, wordt eerst de configuratie aangepast en opnieuw gedraaid. Vervolgens wordt de omgeving automatisch ingericht op basis van deze nieuwe configuratie.
Continuous delivery
Continuous delivery ligt in het verlengde van continuous integration en testing. Hier gaat het erom dat je alle veranderingen in je software continu in productie kunt nemen. Dat hoeft niet per se: het gaat erom dat de mogelijkheid er is om nieuwe functionaliteiten direct in de handen van je eindgebruiker te krijgen.
5 redenen waarom DevOps de toekomst heeft!
Het is geen wonder dat DevOps als werkwijze steeds populairder wordt. Er zijn namelijk een paar hele grote voordelen om met DevOps te werken!
1. Het werkt efficiënter
Er zijn verschillende manieren om taken in DevOps te automatiseren. Het testen van code, bijvoorbeeld. Zodra dat niet meer handmatig hoeft te gebeuren, kunnen ontwikkelaars zich volledig richten op belangrijkere taken.
Er zijn ook tools beschikbaar om het werk sneller te laten verlopen. Met cloudhosting hebben ontwikkelteams alle benodigde rekenkracht binnen handbereik. Testen en in productie brengen gaat daardoor een stuk sneller. Door te werken met continuous delivery kun je parallelle workflows maken, waardoor niemand op iemand anders hoeft te wachten om met z’n werk verder te kunnen.
2. Betere communicatie en samenwerking
Gecombineerde teams, zoals in DevOps, zijn blijer en productiever. Dat komt omdat de nadruk veel meer op het gezamenlijke eindproduct wordt gelegd, en minder op de individuele doelen. Een ontwikkelteam gooit hun product niet zomaar over de schutting naar een operationeel team om te zien wat er gebeurt, maar ze zijn samen verantwoordelijk.
3. Snellere ontwikkeling, sneller innoveren
Als ontwikkelteams en operationele teams op hun eigen eilandjes zitten, is het lastiger te zien of een applicatie klaar is voor productie. Oneerbiedig gezegd gooien de ontwikkelaars een applicatie over de schutting, zonder al te veel overdracht. De operationele teams zijn vervolgens onnodig veel tijd kwijt aan het in productie nemen. Volgens een schatting van Red Hat gaan applicaties 60% sneller in productie als er DevOps gebruikt wordt. Hierdoor is er meer tijd voor innovatie, wat een bedrijf meer voorsprong geeft op de concurrentie.
4. Minder fouten
Veel problemen bij softwareontwikkeling ontstaan door programmeerfouten. Door de kortere ontwikkelingscyclussen in DevOps worden fouten in de code veel sneller gevonden, waardoor ze makkelijker te herstellen zijn.
5. Minder kosten, minder personeel
Uiteindelijk zorgen alle voordelen van DevOps ervoor dat de algehele kosten van je IT en de hoeveelheid IT-personeel naar beneden kunnen. De inschatting is dat DevOps een kostenbesparing van zo’n 30% oplevert en je 35% minder personeel nodig hebt.
Tot slot
DevOps is niet alleen belangrijk om software-ontwikkeling te versnellen, maar ook om de kwaliteit ervan te verhogen. In DevOps worden een nieuwe mindset, agile-praktijken en slimme tools gecombineerd om dat te bereiken. Daarnaast kan DevOps helpen bij het vroeg spotten van problemen en fouten in de code, verbetert het de communicatie tussen teamleden en is het onder de een goedkopere manier om software te ontwikkelen. Wat wil je nog meer?
Wist je dat je met GitLab een tool in huis haalt waar je je complete DevOps mee kunt inrichten? We vertellen je er graag meer over!