DORA Metrics Guide: Meten van DevOps succes
Master de vier belangrijkste DORA-metingen voor DevOps-excellentie
DORA (DevOps Research and Assessment) metrieken zijn de goudstandaard voor het meten van de prestaties van softwarelevering.
Op basis van jaren van onderzoek met duizenden teams bieden deze vier sleutelmetrieken objectieve inzichten in uw DevOps-vaardigheden en helpen ze bij het identificeren van verbeterpunten.
Deze geweldige afbeelding van een belangrijke vergadering is gegenereerd door AI model Flux 1 dev.
Wat zijn DORA-metrieken?
Het DORA-onderzoeksprogramma, gestart door Nicole Forsgren, Jez Humble en Gene Kim, heeft sinds 2014 DevOps-praktijken bestudeerd. Via de “Accelerate State of DevOps Report” hebben ze vier sleutelmetrieken geïdentificeerd die de softwareleveringsprestaties voorspellen:
- Implementatiefrequentie - Hoe vaak code wordt geïmplementeerd in productie
- Leidtijd voor veranderingen - Tijd van codecommit tot productieimplementatie
- Foutpercentage van veranderingen - Percentage van implementaties dat leidt tot fouten
- Tijd om dienst te herstellen - Hoe snel teams herstellen van incidenten
Deze metrieken zijn sterk gecorreleerd met organisatorische prestaties, teamtevredenheid en zakelijke resultaten. Uitstekende prestaties op deze metrieken tonen 50% hogere groei van marktkapitalisatie en 2,5 keer snellere tijd tot marktintroductie.
Uitleg van de vier sleutelmetrieken
1. Implementatiefrequentie
Definitie: Hoe vaak uw organisatie code succesvol implementeert in productie.
Waarom het belangrijk is: Regelmatige implementaties wijzen op rijpe CI/CD-praktijken, kleinere batchgroottes en verminderd risico. Teams die vaker implementeren, lossen problemen sneller op en leveren waarde aan klanten vroeger.
Meetniveaus:
- Uitstekend: Meerdere implementaties per dag
- Hoog: Een keer per dag tot een keer per week
- Gemiddeld: Een keer per maand tot een keer per zes maanden
- Laag: Minder dan een keer per zes maanden
Hoe het te volgen:
# Voorbeeld: Tel implementaties in de afgelopen 30 dagen
# Met behulp van Git-tags of implementatielogboeken
git log --since="30 dagen geleden" --oneline | grep -i deploy | wc -l
# Of query uw CI/CD-systeem
# Jenkins, GitLab CI, GitHub Actions, enz.
Bij het volgen van implementaties met Git, verwijzen wij u naar onze GIT commando’s cheat sheet voor een overzicht van de uitgebreide Git-operaties die nodig zijn voor versiebeheer en het volgen van implementaties.
Implementatiefrequentie verbeteren:
- Implementeer geautomatiseerde CI/CD-pijplijnen (zie onze GitHub Actions Cheat Sheet voor voorbeelden van CI/CD-automatisering)
- Verminder de grootte van implementatiebatches
- Voer trunk-based development uit (vergelijk met Gitflow branching model om verschillende branchstrategieën te begrijpen)
- Automatiseer testen en kwaliteitscontroles
- Gebruik functieflags voor veiligere implementaties
2. Leidtijd voor veranderingen
Definitie: De tijd vanaf het moment dat code wordt gecommit in versiebeheer tot het moment dat deze succesvol draait in productie.
Waarom het belangrijk is: Kortere leidtijden betekenen snellere feedbacklussen, snellere bugfixes en sneller leveren. Deze metriek reflecteert de efficiëntie van uw hele softwareleveringspijplijn.
Meetniveaus:
- Uitstekend: Minder dan één uur
- Hoog: Één dag tot één week
- Gemiddeld: Één maand tot zes maanden
- Laag: Meer dan zes maanden
Hoe het te volgen:
# Bereken de leidtijd voor een specifieke commit
# Haal de committijd op
COMMIT_TIME=$(git log -1 --format=%ct <commit-hash>)
# Haal de implementatietijd op (van uw implementatiesysteem)
DEPLOY_TIME=$(<deployment-timestamp>)
# Bereken het verschil
LEAD_TIME=$((DEPLOY_TIME - COMMIT_TIME))
# Of gebruik tools zoals:
# - GitHub Actions API
# - GitLab CI/CD metrieken
# - Jenkins build tijdstempels
Leidtijd verbeteren:
- Optimaliseer de snelheid van de CI/CD-pijplijn
- Paralleliseer testuitvoering
- Verminder manuele goedkeuringsdrempels
- Implementeer geautomatiseerde kwaliteitscontroles
- Gebruik containerisatie voor consistente omgevingen
- Voer continue integratie uit
3. Foutpercentage van veranderingen
Definitie: Het percentage van implementaties dat leidt tot fouten in productie die directe herstel vereisen (hotfix, rollback of patch).
Waarom het belangrijk is: Lage foutpercentages wijzen op hoge codekwaliteit, effectieve testen en betrouwbare implementatieprocessen. Deze metriek balancert snelheid met stabiliteit.
Meetniveaus:
- Uitstekend: 0-15% foutpercentage
- Hoog: 0-15% foutpercentage
- Gemiddeld: 16-30% foutpercentage
- Laag: 16-45% foutpercentage
Hoe het te volgen:
# Bereken het foutpercentage over de afgelopen maand
TOTAL_DEPLOYS=$(count_deployments_last_month)
FAILED_DEPLOYS=$(count_failed_deployments_last_month)
FAILURE_RATE=$((FAILED_DEPLOYS * 100 / TOTAL_DEPLOYS))
# Volg met behulp van:
# - Incidentbeheersystemen (PagerDuty, Opsgenie)
# - Monitoringmeldingen (Datadog, New Relic, Prometheus)
# - Rollbacklogboeken
# - Hotfix-implementatiegegevens
Foutpercentage verbeteren:
- Verhoog de testdekking (eenheidstesten, integratiestesten, e2e-testen)
- Implementeer uitgebreide monitoring en meldingen
- Gebruik canary-implementaties en blauw-groene implementaties
- Voer chaosengineering uit
- Verbeter de codebeoordelingsprocessen
- Implementeer geautomatiseerde rollbackmechanismen
4. Tijd om dienst te herstellen
Definitie: Hoe lang het duurt om dienst te herstellen bij een dienstincident (bijvoorbeeld een ongeplande storing of dienstnood).
Waarom het belangrijk is: Snelle hersteltijden minimaliseren de impact op klanten en zakelijke verliezen. Deze metriek reflecteert de effectiviteit van incidentbehandeling en systeemresilientie.
Meetniveaus:
- Uitstekend: Minder dan één uur
- Hoog: Minder dan één dag
- Gemiddeld: Één dag tot één week
- Laag: Één week tot één maand
Hoe het te volgen:
# Volg de oplossingstijd van een incident
INCIDENT_START=$(<alert-timestamp>)
INCIDENT_RESOLVED=$(<resolution-timestamp>)
RESTORE_TIME=$((INCIDENT_RESOLVED - INCIDENT_START))
# Gebruik incidentbeheer-tools:
# - PagerDuty incidenttijdlijnen
# - Opsgenie oplossingstracking
# - Aangepaste incidenttrackingssystemen
# - Monitoring-systeemmeldingen tot oplossing
Tijd om dienst te herstellen verbeteren:
- Implementeer uitgebreide observabiliteit (logboeken, metrieken, traces)
- Maak runbooks en playbooks
- Voer incidentbehandelingsdrills uit
- Gebruik geautomatiseerde rollbackfunctionaliteiten
- Verbeter monitoring en meldingen
- Stel on-call-rotaties en escalatieprocedures op
- Documenteer bekende problemen en oplossingen
DORA-prestatieniveaus
Teams worden ingedeeld in vier prestatieniveaus op basis van hun metrieken:
Uitstekende prestaties
- Implementatiefrequentie: Meerdere per dag
- Leidtijd: Minder dan één uur
- Foutpercentage van veranderingen: 0-15%
- Tijd om dienst te herstellen: Minder dan één uur
Kenmerken: Uitstekende teams tonen aanzienlijk betere zakelijke resultaten, waaronder 50% hogere groei van marktkapitalisatie en 2,5 keer snellere tijd tot marktintroductie.
Hoog presterende teams
- Implementatiefrequentie: Één keer per dag tot één keer per week
- Leidtijd: Één dag tot één week
- Foutpercentage van veranderingen: 0-15%
- Tijd om dienst te herstellen: Minder dan één dag
Kenmerken: Hoog presterende teams tonen sterke DevOps-praktijken en leveren consistent waarde efficiënt.
Gemiddeld presterende teams
- Implementatiefrequentie: Één keer per maand tot één keer per zes maanden
- Leidtijd: Één maand tot zes maanden
- Foutpercentage van veranderingen: 16-30%
- Tijd om dienst te herstellen: Één dag tot één week
Kenmerken: Gemiddeld presterende teams verbeteren maar hebben aanzienlijke kansen voor optimalisatie.
Laag presterende teams
- Implementatiefrequentie: Minder dan één keer per zes maanden
- Leidtijd: Meer dan zes maanden
- Foutpercentage van veranderingen: 16-45%
- Tijd om dienst te herstellen: Één week tot één maand
Kenmerken: Laag presterende teams ondervinden aanzienlijke uitdagingen in softwarelevering en hebben fundamentele procesverbeteringen nodig.
Implementatie van DORA-metrieken
Stap 1: Basismetrieken vaststellen
Voordat u verbeteringen aanbrengt, moet u weten waar u staat:
#!/bin/bash
# dora_metrics_collector.sh
# Vang basis DORA-metrieken op
# Implementatiefrequentie (laatste 30 dagen)
echo "=== Implementatiefrequentie ==="
DEPLOY_COUNT=$(git log --since="30 dagen geleden" --oneline | wc -l)
echo "Implementaties in de afgelopen 30 dagen: $DEPLOY_COUNT"
# Leidtijd (gemiddeld voor laatste 10 commits)
echo "=== Leidtijd voor veranderingen ==="
# Dit vereist integratie met uw CI/CD-systeem
# Voorbeeld conceptuele berekening:
echo "Gemiddelde leidtijd: [vereist CI/CD-integratie]"
# Foutpercentage van veranderingen
echo "=== Foutpercentage van veranderingen ==="
# Dit vereist incidenttracking
echo "Foutpercentage: [vereist incidentensysteemintegratie]"
# Tijd om dienst te herstellen
echo "=== Tijd om dienst te herstellen ==="
# Dit vereist incidentbeheersysteem
echo "Gemiddelde hersteltijd: [vereist incidentensysteem]"
Stap 2: Meetinstrumenten kiezen
Implementatievolgen:
- Git-tags en releases
- CI/CD-pijplijnlogboeken (Jenkins, GitLab CI, GitHub Actions, CircleCI)
- Implementatieautomatiseringstools (Spinnaker, ArgoCD, Flux en andere GitOps-tools)
Voor een praktisch voorbeeld van automatisch volgen van implementaties, zie onze gids over Gitea Actions gebruiken om een Hugo-website te implementeren op AWS S3, die het meten van implementatiefrequentie in een echte CI/CD-werkstroom demonstreert.
Leidtijd volgen:
- CI/CD-pijplijn-tijdstempels
- Versiebeheersysteemtijdstempels
- Implementatiesysteemlogboeken
Foutpercentage volgen:
- Incidentbeheersystemen (PagerDuty, Opsgenie, Jira)
- Monitoring-systemen (Datadog, New Relic, Prometheus)
- Rollbacklogboeken
Hersteltijd volgen:
- Incidentbeheersystemen
- Monitoringmeldingstijdlijnen
- On-call-systemen
Stap 3: Dashboards maken
Visualiseer uw metrieken voor continue monitoring:
# Voorbeeld Prometheus-query's voor DORA-metrieken
# Implementatiefrequentie
rate(deployments_total[30d])
# Leidtijd (vereist aangepaste metrieken)
histogram_quantile(0.95,
rate(lead_time_seconds_bucket[1h])
)
# Foutpercentage van veranderingen
rate(deployment_failures_total[30d]) /
rate(deployments_total[30d]) * 100
# Tijd om dienst te herstellen
histogram_quantile(0.95,
rate(incident_resolution_seconds_bucket[30d])
)
Stap 4: Verbeterdoelen stellen
Begin met haalbare doelen op basis van uw huidige niveau:
- Laag → Gemiddeld: Focus op automatisering en basis CI/CD
- Gemiddeld → Hoog: Optimaliseer processen en verminder batchgroottes
- Hoog → Uitstekend: Fijnafstemmen en bottlenecks elimineren
Beste praktijken voor het verbeteren van DORA-metrieken
1. Start met cultuur
DORA-onderzoek toont aan dat cultuur belangrijker is dan tools:
- Stimuleer samenwerking tussen Dev en Ops
- Encourage experimenten en leren van fouten
- Verminder schuld en focus op systeemverbeteringen
- Deel kennis en documentatie
2. Implementeer automatisering
- Automatiseer testen (eenheidstesten, integratiestesten, e2e-testen)
- Automatiseer implementaties (CI/CD-pijplijnen)
- Automatiseer infrastructuurprovisionering (IaC met Terraform, Ansible)
- Automatiseer monitoring en meldingen
3. Verminder batchgroottes
Kleine veranderingen zijn makkelijker om:
- Thoroughly te testen
- Effectief te beoordelen
- Veilig te implementeren
- Terug te rollen indien nodig
4. Verbeter testen
- Verhoog testdekkingsgraad
- Implementeer testautomatisering
- Gebruik testgedreven ontwikkeling (TDD)
- Voer continue testen uit
5. Verbeter monitoring
- Implementeer uitgebreide observabiliteit
- Gebruik gedistribueerde tracing
- Stel proactieve meldingen in
- Maak dashboards voor sleutelmetrieken
6. Voer continue leerprocessen uit
- Voer postincidentreviews uit
- Deel leerresultaten over teams
- Documenteer runbooks en procedures
- Voer incidentbehandelingsdrills uit
Vaak voorkomende valkuilen en hoe ze te vermijden
1. Focus op metrieken in plaats van resultaten
Probleem: Optimaliseren van metrieken in isolatie zonder rekening te houden met zakelijke waarde.
Oplossing: Verbind altijd metrieken met zakelijke resultaten. Stel de vraag: “Waarom verbeteren we deze metriek?” en zorg dat het klantwaarde levert.
2. Metrieken manipuleren
Probleem: Teams die getallen kunstmatig opblazen (bijvoorbeeld lege commits implementeren).
Oplossing: Focus op betekenisvolle implementaties die waarde leveren. Kwaliteit boven kwantiteit.
3. Context negeren
Probleem: Metrieken vergelijken in verschillende contexten (bijvoorbeeld webapplicaties versus ingebouwde systemen).
Oplossing: Begrijp dat verschillende systemen verschillende beperkingen hebben. Vergelijk met vergelijkbare systemen of uw eigen historische prestaties.
4. Niet alle vier de metrieken meten
Probleem: Optimaliseren van één metriek terwijl andere worden genegeerd (bijvoorbeeld hoge implementatiefrequentie maar hoge foutpercentage).
Oplossing: Balanseer alle vier de metrieken. Uitstekende prestaties vereisen uitmuntendheid in alle gebieden.
5. Gebrek aan toolintegratie
Probleem: Handmatige metriekverzameling leidt tot onvolledige of onnauwkeurige gegevens.
Oplossing: Integreer metriekverzameling in uw bestaande tools en automatiser gegevensverzameling.
Geavanceerde onderwerpen
DORA-metrieken en platformengineering
Platformengineeringteams kunnen DORA-metrieken aanzienlijk verbeteren door:
- Zelfdienstige ontwikkelaarsplatforms te bieden
- Implementatiefrictie te verminderen
- Tooling en processen te standaardiseren
- Snellere experimenten mogelijk te maken
DORA-metrieken in microservices
Het meten van DORA-metrieken in microservicesarchitecturen vereist:
- Aggregatie van metrieken over services
- Begrip van serviceafhankelijkheden
- Volgen van implementatiecoördinatie
- Beheer van gedistribueerde foutscenario’s
DORA-metrieken en cloud-native
Cloud-native technologieën kunnen DORA-verbeteringen versnellen:
- Kubernetes: Automatische implementaties en rollbacks
- Service Mesh: Betere observabiliteit en foutafhandeling
- Serverless: Vereenvoudigde implementatieprocessen
- Containers: Consistente omgevingen
Conclusie
DORA-metrieken bieden een gegevensgestuurde kader voor het meten en verbeteren van softwareleveringsprestaties. Door deze vier sleutelmetrieken te volgen en te optimaliseren, kunnen teams bereiken:
- Snellere tijd tot marktintroductie
- Hogere codekwaliteit
- Betere teamtevredenheid
- Verbeterde zakelijke resultaten
Herinner u dat deze metrieken een middel zijn tot een doel - betere softwarelevering die waarde creëert voor klanten. Focus op continue verbetering, culturele verandering en het balanceren van alle vier de metrieken om uitstekende prestaties te bereiken.
Begin vandaag met het meten van uw DORA-metrieken, stel baselines vast en begin uw reis naar DevOps-uitmuntendheid.
Het meten van succes
Volg uw verbetering in de tijd:
- Baseline: Stel huidige metrieken vast
- Kwartelijkse reviews: Beoordeel vooruitgang elke kwartaal
- Doelstellingen stellen: Stel realistische verbeterdoelen
- Successen vieren: Erken verbeteringen en leerresultaten
- Continue verbetering: Stop nooit met optimaliseren
Nuttige links
- DORA Research Program
- Accelerate State of DevOps Report
- Google Cloud DevOps Metrics
- DORA Metrics in Practice
- Four Keys Project - Open-source tool voor het meten van DORA-metrieken
Gerelateerde artikelen op deze website