Een belangrijke uitdaging binnen DevOps-teams is grip te houden op applicaties en deze goed te beheren. Ik zie bijvoorbeeld vaak dat monitoring van de performance binnen DevOps-teams wordt gezien als een verplicht kunstje terwijl dit een essentieel onderdeel zou moeten zijn van de werkzaamheden. Sterker nog, ik pleit voor minimaal een dagelijkse ‘health check’ van de vitale performance-indicatoren van je applicatie zoals responstijden, CPU, memory, throughput en HTTP-statuscodes. Maar hoe integreer je dit in de dagelijkse processen?

Monitoring is de ruggengraat van applicatiebeheer en helpt bij inzicht in de gezondheid van je applicatie. Bij de start van een werkdag worden binnen een DevOps-team dan ook idealiter de volgende vragen als eerste beantwoord:

  • Hoe is de applicatie de nacht doorgekomen?
  • Performt en functioneert het nog hetzelfde als gistermiddag?
  • Zijn er afwijkingen of pieken geweest?

Dit zijn feitelijk eenvoudige vragen, maar in de transitie die traditionele teams doormaken naar een DevOps-team merk ik dat performance een expertise is die moeilijk binnen een team te integreren is. Dat geldt voor zowel kennis van tools en analyses als voor skills op het gebied van processen en communicatie. Het integreren van monitoring of een dagelijkse health check is daarom een bijzondere uitdaging. Hoe wil je deze check uitvoeren? Wie voert de audits uit op de trendanalyse en is de groei van je te beheren applicaties te voorspellen?

Health check onderdeel van stand-up sessie

De health check is op diverse manieren te integreren. Zelf heb ik goede ervaringen met het opnemen van de check als vast onderdeel in bijvoorbeeld een stand-up sessie. Na het behandelen van wie wat heeft gedaan en gaat doen, kun je als afsluiting de health check doen. Hoe hebben onze applicaties gisteren gedraaid en verwachten we vandaag (applicatieve, infrastructurele) veranderingen die invloed kunnen hebben? Ook is de stand-up een goed moment om vragen te bespreken als: wat verwachten we qua bezoek en drukte op de applicatie? Wie hebben er bevindingen waargenomen in de monitoring? Zijn er incidenten naar voren gekomen?

Ik adviseer om een set vaste vragen te kiezen om dagelijks te bespreken binnen het DevOps team. Formeel zou je de vragen nog op een agile-manier kunnen verwerken in de zogeheten Definition of Done. Hierbij spreek je met je team af dagelijks te monitoren en bespreken hoe gezond je applicaties performen. Dit is een goede stap naar volwassenheid in beheer en performance binnen het team. Ook heeft deze werkwijze meerwaarde voor je klanten, omdat je met deze health check meer grip krijgt op de performance en proactief issues voorkomt.

Naast de dagelijkse health check, zijn wekelijkse en maandelijkse checks ook aan te bevelen, maar kun je deze zien als een tweede stap om te integreren binnen een team. Deze checks zijn voornamelijk gericht op capaciteit, trends en de mate van voorspelbaarheid van je applicaties. Met een goede set health check-vragen en focus op de juiste performance counters, is een tweede stap sneller te integreren dan je zou verwachten.

Valkuilen bij integratie health check

Natuurlijk is het vanuit de theorie altijd makkelijk praten. Het omarmen van een health check vergt veel inspanning van een team. Dit begint al met het activeren van een beeldscherm door het eerste teamlid en elkaar tijdig te attenderen op de monitoring. Het moet een automatisme worden binnen het team. Zoals gezegd kan het opnemen van de health check in een stand-up hierbij helpen. Maar hierbij zijn er ook valkuilen, die ik als aandachtspunten zou willen meegeven: 

  • Ga niet direct deep diven bij vreemd of afwijkend gedrag van een performance counter. Verzamel eerst je waarnemingen en verifieer op het afgesproken moment.
  • Sta open voor monitoring bij andere teams. Trigger teams door alleen al te vragen: wat monitoren jullie allemaal? Hoe vaak voeren jullie een health check uit op je applicaties? En welke performance counters zijn belangrijk voor jullie?
  • De leden van een DevOps-team moeten weten waarom performance voor de klanten zo belangrijk is. Blijf daarom de noodzaak en het doel van de health check in het team benadrukken. Een Scrum Master kan hier een rol in spelen.

Hulp nodig bij het integreren van de health check? Ik deel graag meer best practices met je!