Wat is DevOps?

Auteur:

Auteur: Dilek Türkyilmaz
Gepubliceerd op: 10-12-2014

Tegenwoordig zijn er ontzettend veel applicaties en verschillende versies van software. De code van deze software moet natuurlijk ontworpen, ontwikkeld en onderhouden worden. Voordat een software code gepubliceerd mag worden, gaat het via verschillende omgevingen in een bedrijf. Denk aan ontwikkeling, business analyse, design, architectuur, code generatie, testing enzovoorts.
DevOps staat voor Development (Dev) en Operations (Ops). DevOps gaat verder dan de integratie van ontwikkeling en beheer, oftewel Agile. Het gaat bij DevOps om de samenwerking tussen softwareontwikkeling en productiebeheer. Beide teams zijn verantwoordelijk voor het eindresultaat van de software en de code. DevOps integreert dus ontwikkelaars en operationele teams om samenwerking en productiviteit te verbeteren. Dit wordt gedaan door het automatiseren van de infrastructuur, het automatiseren van werkstromen en het continu meten van de prestaties van applicaties. Om DevOps volledig te kunnen gebruiken, is het handig om eerst te weten wat Scrum, Continuous Integration en Continuous Delivery is.

Scrum

Agile is een manier van software ontwikkeling. Dit wordt ingezet om software te ontwikkelen, maar dan in teamverband. De Agile methode stelt projectteams in staat om projecten aan te passen aan de individuele behoeften van een project. De Scrum methode is een vorm van Agile werken. Het is een flexibele manier van werken in teams om software te ontwikkelen met projectmanagement. Er wordt gewerkt in korte vaste sprints van één tot vier weken. Deze teams bestaan uit experts van verschillende disciplines van het werk. Het team wordt begeleid door een ‘Scrum Master’, deze houdt de voortgang van het project in de gaten. In elke sprint wordt een werkend product opgeleverd. Zo een prototype wordt met iedere sprint weer aangepast aan de specifieke behoeften en wensen van de opdrachtgever.
Om te beginnen worden er voor elk project User Stories geschreven. Deze bevatten de ‘wat’ en ‘waarom’ er iets wordt gemaakt. In de Product Backlog worden alle (resterende) taken van het project bijgehouden. Er wordt ook meteen een Definition of Done (DoD) beschreven, dus aan welke eisen het resultaat moet voldoen. Tijdens de Sprint Planning wordt de ‘hoe’ van de vraag beschreven en worden de taken ingepland voor de aankomende sprint. Hierbij wordt de feedback van de vorige sprint verwerkt, dit is dus een iteratief proces. Tijdens de sprint wordt er elke dag een Daily Scrum gehouden om het proces zo effectief mogelijk te houden. Simpelweg kan er gezegd worden dat Agile Scrum het plannen, het maken van de code en het bouwen daarvan bevat.

Wat is Continuous Integration?

Met Continuous Integration (CI) wordt de gebouwde code getest. De beste en meest efficiënte manier is om dit automatisch te controleren. Dit helpt de ontwikkelaars om de problemen makkelijker te vinden en op te lossen. Het is belangrijk om zo vaak mogelijk te testen, zodat een probleem snel wordt gelokaliseerd. Aan de Agile ontwikkeling wordt hier dus het testen aan toegevoegd.

Wat is Continuous Delivery?

Na CI komt een volgende stap de release, oftewel het uitbrengen van software. Alle genomen stappen tot nu toe worden samen de Continuous Delivery (CD) genoemd. Bij Continuous Delivery wordt er een omgeving gecreëerd, waar de productie (op elk gewenst moment) beschikbaar wordt gemaakt. Wanneer het proces van testing is doorlopen, moet het mogelijk zijn om de nieuwste versie direct uit te brengen en te installeren. Het draait bij CD dus om een mogelijkheid te bieden om de software code beter te implementeren in de verschillende omgevingen, denk aan design, architectuur en testing. Dit moet op elk moment gedaan kunnen worden en alle configuratie aanpassingen toegepast kunnen worden. Daarom wordt het software leveringsproces opgedeeld in stadia. Elk stadium is gericht op het controleren van de kwaliteit van nieuwe functies. Het opdelen in stukken wordt de Delivery Pipeline genoemd. De pijplijn moet feedback geven aan het team en zichtbaar zijn aan iedereen die betrokken is bij het leveren van de nieuwe functies.
Het gehele proces tot en met de installatie moet dus zoveel mogelijk geoptimaliseerd en geautomatiseerd worden, zodat het herhaalbaar is. Dit is dus een iteratief proces. Dat maakt dat CD goed samen gaat met Agile Scrum. Het hele proces wordt opgedeeld in veel kleine stappen, die elk getest kunnen worden. Bedrijven kunnen dan beter beslissen of zij een nieuwe versie willen uitbrengen. Met CD wordt bereikt:

  • Een kortere productietijd
  • Betere kwaliteit
  • Lagere operationele kosten

DevOps

Na de stappen Agile, Continuous Integration en Continuous Delivery, is nu DevOps aan de beurt. Het omvat dus alle stappen die er tot nu toe zijn genomen, maar gaat zelfs nog verder. Het begint bij het hebben van een idee, een bugfix of een opdracht van een opdrachtgever. De software ontwikkelaar ontwikkelt de gewenste code voor het project. De code wordt in hapklare stukken gedeeld, zodat het produceren van de gehele code korter duurt en problemen sneller opgelost worden. Zo krijgt een organisatie vaker en sneller een nieuwe software code. Dit is een iteratief proces van het monitoren, testen en verbeteren van de software. Tijdens het produceren van de software, wordt er feedback terug gestuurd naar de ontwikkelaar. Zo kan de code weer aangepast worden.
Het draait dus allemaal om het verbeteren van het product / de software en verbeteren van het proces van het maken van de code. Hiermee wordt er geprobeerd om het opnieuw maken van de software code en de vaste lasten te verminderen. Dit zal makkelijker gaan wanneer de teams samenwerken en dus het ontwikkelen van de code beter past bij het productieproces. Op deze manier wordt de innovatie in een bedrijf bevorderd.
DevOps is in de praktijk het samenbrengen van de Development en de Operations in het gehele leveringsproces. Zodoende van ontwerp in het ontwikkelingsproces tot de ondersteuning van de productie. Bij DevOps werkt dus iedereen samen om de waarde van de software zo hoog mogelijk te houden. Met DevOps kunnen de volgende voordelen worden bereikt:

  • Software sneller geproduceerd voor de markt
  • Meer focus op het verbeteren van het ondernemingsklimaat
  • Lagere IT-kosten

DevOps teams

Wil jij ook DevOps implementeren in je bedrijf? Dan zullen medewerkers anders moeten denken en bepaalde technische gereedschappen hebben om beter te testen, code te ontwikkelen en te monitoren. Het samenstellen en doorvoeren van een DevOps team vergt veel tijd en energie. Met het Maturity Model kan er gekeken worden naar welk niveau de diverse omgevingen van jouw organisatie zich op dit moment bevindt. Zo kan er per omgeving gekeken worden hoe het proces geoptimaliseerd kan worden om DevOps toe te kunnen passen.

Terug