Hoe monitor jij jouw DevOps-toolchain?

Abonneer je gratis op Techzine!

Na de grote cloudmigratie is DevOps de volgende golf binnen digitale transformatie. DevOps is een radicaal andere benadering en richt zich op snelle ontwikkeling en delivery van software, zodat snel waarde wordt gecreëerd voor de organisatie. De disruptieve mogelijkheden van DevOps-pioniers als Netflix en Amazon, illustreren het potentieel van deze aanpak.

Het uitrollen van DevOps is geen gemakkelijke zaak en vraagt flinke investeringen in projecten voor het transformeren van IT-processen, het opleiden van teams, het integreren van een nieuw ecosysteem van tools en het uitbouwen van een technisch framework dat fungeert als software delivery engine. Maar juist omdat DevOps zo belangrijk is voor waardecreatie, is het ook zaak voor IT-managers om te investeren in de operationele beschikbaarheid van alle diensten die samen de DevOps-toolchain vormen.

DevOps en de DevOps-toolchain

DevOps draait om het transformeren van de IT-afdeling in een software-innovatiecentrum dat de concurrentie aankan. Het is de vervanging van de inefficiënte, traditionele afdelingen die in silo’s werken. DevOps is gericht op een holistische aanpak waarin samenwerking, integratie, automatisering en selfservice centraal staan. Dit alles vereist investeringen in nieuwe processen, een nieuwe cultuur, nieuwe tools en nieuwe technische werkwijzen.

De technische innovatie die het hart vormt van DevOps is de software delivery pipeline. Delivery pipelines zijn de motoren van DevOps. Hun doel is het integreren en automatiseren van alle tools en processen die spelen bij het vertalen van een business-idee naar code, die vervolgens in productie gaat. Het kan dan gaan om een web-update, een nieuwe backend-service, een nieuwe feature in een mobiele app, een gevirtualiseerd netwerk (VNF), een nieuw API-endpoint, of een andere digitale dienst. Het overall doel is, om het proces van software delivery zo betrouwbaar, iteratief en herhaalbaar mogelijk te maken. Daarbij zorgt een constante feedback voor de verbetering van het proces.

Deze technische aanpak wordt ‘continuous integration’ en ‘continuous delivery’ (CI/CD) genoemd. Hierbij triggert iedere code commit van een developer een pipeline of sequentie van pipelines. Elke pipeline is opgebouwd uit één of meer stadia en elk stadium maakt gebruik van specifieke tools voor het uitvoeren van specifieke taken die de software dichter in de buurt van productie brengen. Het kan dan gaan om het bouwen, verpakken, scannen, inzetten of monitoren van een softwarecomponent. Het ecosysteem van de tools die de snelle levering van software ondersteunen, blijft sterk groeien en omvat services voor nieuwe use cases, zoals security, key management, datavirtualisatie en meer.

Operationele complexiteit van DevOps-toolchains

De DevOps-toolchain ziet er als concept wellicht eenvoudig uit, maar kan in de praktijk vanuit operationeel oogpunt, zeker voor grote organisaties, nog complex zijn. Er zijn vier factoren die daaraan bijdragen:

  • 1. Het grote aantal pipelines en gebruikers. De DevOps-toolchain lijkt op een fabriek met veel verschillende productielijnen. Hoe meer digitale producten, hoe meer pipelines. Elke applicatie heeft ten minste één CI/CD-pipeline voor het faciliteren van de lifecycle en vaak wel meer.
  • 2. Het grote aantal tools. Ieder stadium van een pipeline heeft een specifiek doel bij de voortgang van het delivery-proces en er is een compleet ecosysteem van tools beschikbaar om dat te ondersteunen. Dit ecosysteem blijft sterk groeien, vooral door de opkomst van DevOps-tools in de cloud. Verder vereisen verschillende doelplatforms en -architecturen verschillende tools voor het uitvoeren van vergelijkbare pipeline-functies. Zo zijn er bijvoorbeeld verschillende tools nodig voor het scannen van Docker-containers en Java-war-bestanden.
  • 3. De hoge mate van interconnectie. Samenwerking en integratie zijn cruciale principes van DevOps. Je wilt dus zoveel mogelijk tools delen binnen pipelines. Denk aan je Build/CI-, bron-repository- en artefact-repositorytools die normaal gesproken veel gedeeld worden. Maar de tool voor container security scanning is alleen te delen binnen iedere pipeline waar containers worden gebouwd. En pipelines zullen ook de afhankelijkheden en flows tussen tools beheren. Een voorbeeld: een gebouwd artefact moet wellicht door een securityscan heen, voordat deze automatisch naar een artefact-repository wordt gestuurd en elders wordt gebruikt. Pipelines hebben ook onderlinge afhankelijkheden. Zo kan het nodig zijn dat een volledige integratie of een deploy/release-pipeline moet wachten op of getriggerd wordt door upstream CI-pipelines. Afbeelding 1 geeft een beeld van deze complexiteit door de relaties tussen CI/CD-pipelines en de DevOps-toolchain in kaart te brengen.
De DevOps-toolchain is sterk onderling verbonden en kent veel afhankelijkheden
  • 4. Het toenemende aantal DevOps-tool met een cloudachtergrond. Het gebruik van cloudtools in de DevOps-toolchain heeft veel voordelen, waaronder eenvoudiger integratie via gestandaardiseerde service-API’s, het gemakkelijker delen tussen projecten en teams, de flexibiliteit om de juiste tools te kiezen en de beschikbaarheid van specifieke tools voor specifieke taken.

Al deze factoren leiden ertoe dat een DevOps-engine afhangt van een groot en complex netwerk van onderling verbonden services. Veel van die services zijn cloudservices en zijn dus geen eigendom van de organisatie. Daarnaast wordt het internet het belangrijkste transportmiddel als je toolset grotendeels cloud-based is. Dat betekent nog meer diensten van derden die van invloed kunnen zijn op de DevOps-activiteiten. Denk aan DNS-services, web-gateways, CDN’s en DDoS-mitigatie-services. Ook wordt de DevOps-toolchain op deze manier ontvankelijk voor kwetsbaarheden als internetdreigingen, BGP-issues en wereldwijde storingen. De cloud zorgt zo voor uitdagingen op het gebied van performance en beschikbaarheid, omdat het lastig is om issues snel te ontdekken en op te lossen.

De impact van disruptie in de DevOps-toolchain

In de context van digitale transformaties is DevOps in zekere zin uniek vanwege de centrale rol als ‘waardemotor’ voor de totale organisatie.

Een DevOps-toolchain kan gemakkelijk opschalen naar een situatie waarin duizenden medewerkers, variërend van developers, kwaliteitstesters en site reliability engineers tot aan netwerkbeheerders en security/compliance, ondersteund worden en er afhankelijk van zijn. De DevOps-toolchain is goed te vergelijken met een echte motor die constant op een hoog toerental draait en de traditionele IT-processen veel sneller kan laten verlopen. En net als bij een Formule 1-racewagen die op topsnelheid rijdt, is de kleinste storing al een enorme kostenpost, als je bijvoorbeeld duizenden interne en externe applicaties in de lucht hebt.

Onderbrekingen bij cruciale DevOps-services zoals GitHub zorgen ervoor dat alle werk direct stilligt. Wanneer een ontwikkelaar niet bij de code kan en pipelines niet kunnen scannen op kwetsbaarheden of geen artefacten kunnen oproepen, is de mogelijkheid om waarde te creëren volledig afwezig.

De waarde van DevOps is direct gerelateerd aan het tempo van de bedrijfsvoering. En die waarde is hoog. Volgens het rapport 2019 State of DevOps leveren bedrijven met een volwassen DevOps-engine, 46 keer frequenter, herstellen ze 2.604 keer sneller en komen ze 2.555 sneller op de markt dan bedrijven zonder zo’n engine. Daar staat tegenover dat belangrijke disrupties binnen de DevOps-toolchain zeer schadelijk kunnen zijn.

Ga een stap verder dan traditionele monitoring bij cloud-based DevOps

Traditionele monitoringtools zoals SNMP, packet flow en APM worden al lange tijd gebruikt om de kwaliteit en beschikbaarheid van kritische services te bewaken. Deze tools zijn ontwikkeld in de context van enterprise-applicaties en business-services die voornamelijk in on-premise-datacenters en bedrijfsvestigingen draaiden. Maar wanneer bedrijfskritische services in de cloud draaien als tools van een externe partij, ben je geen eigenaar van de applicatie, de infrastructuur en een groot deel van de netwerkconnectiviteit. Dat beperkt de mogelijkheden van traditionele netwerk- en applicatie-monitoring sterk en leidt tot een gebrek aan goed inzicht in de service.

De actieve monitoringbenadering van ThousandEyes dicht deze kloof door diep inzicht te bieden in alle servicepaden binnen het eigen netwerk en binnen de netwerken, infrastructuren en software die geen eigendom zijn. Met ThousandEyes is monitoring van alle cloud- en on-premise-services die samen de DevOps-toolchain vormen, snel en gemakkelijk op te zetten. Het resultaat is compleet inzicht in de applicatielaag (inclusief service API’s en DNS) tot op netwerk- en routingniveau – met een compleet path view naar iedere specifiek service. Monitoring is mogelijk vanuit verschillende omgevingen, zoals vanuit je vestigingen, datacenters, VPC of honderden vooraf opgezette cloudlocaties. Alle bieden ze inzicht in de algehele gezondheid van de DevOps-service-mesh.

Volwassen DevOps vereist volwassen inzicht in de toolchain

Een volwassen aanpak en een volwassen DevOps-toolchain zijn vereist om snelle service delivery mogelijk te maken. Dat is weer nodig om te kunnen blijven innoveren en competitief te blijven in een softwaregedreven wereld. Dit kan niet zonder een volwassen monitoringbenadering die cloud-ready en internet-aware is. Alleen dan is er de zekerheid dat beschikbaarheidsissues met DevOps zichtbaar zijn, nog voordat deze voor vertraging of verstoring leiden.

Dit is een ingezonden bijdrage van Ramon Hemelrijk, Director Regional Sales bij ThousandEyes. Via deze link vind je meer informatie over de mogelijkheden van het bedrijf.