DORA metrics (DevOps Research and Assessment) ist das Team hinter dem Accelerate State of DevOps Report, einer Umfrage unter über 32.000 Fachleuten weltweit. Ihre Forschung verknüpft die technischen und kulturellen Fähigkeiten, die die Leistung von Softwareteams und der gesamten Organisation steigern.
DORA empfiehlt einen Ansatz, der Softwarebereitstellung und Betriebsleistung zusammenbringt. Die 4 Schlüssel der Softwarebereitstellungsleistung messen Durchsatz und Stabilität der Anwendung. Ein fünftes Maß der Betriebsleistung erfasst, wie gut die Anwendung ihre Zuverlässigkeitsziele erreicht.
Es gibt nur wenige Metriksätze, die durch mehrjährige Forschungsprogramme gestützt werden. Dora metrics sind in der Art und Menge der Belege, die sie stützen, außergewöhnlich.
Softwarebereitstellung und BetriebsleistungLesezeichen
DORA misst die Softwarebereitstellungsleistung anhand von Durchsatz- und Stabilitätsmetriken. Die Metriken werden oft als „die vier Schlüssel“ bezeichnet:
- Der Durchsatz misst die Integrität Ihrer Bereitstellungspipeline
- Bereitstellungshäufigkeit
- Vorlaufzeit für Änderungen
- Stabilität hilft Ihnen, die Qualität Ihrer Software zu verstehen
- Änderungsfehlerrate
- Wiederherstellungszeit für fehlgeschlagene Bereitstellungen
Um dies auf die betriebliche Leistung auszudehnen, fügen wir eine fünfte Kennzahl hinzu:
- Operationen
- Zuverlässigkeit
Die zusätzliche Zuverlässigkeitsmetrik ist wichtig. Die Betriebsleistung trägt dazu bei, dass die Softwarebereitstellung die Ergebnisse für das Unternehmen beeinflusst. Wenn Sie alle 5 dora metrics anwenden, ist es wahrscheinlicher, dass Sie Ihre kommerziellen und nicht-kommerziellen Ziele erreichen.
BereitstellungshäufigkeitLesezeichen
Die Bereitstellungshäufigkeit misst, wie oft Sie in der Produktion oder für Endbenutzer bereitstellen. Sie können dies mit Ihrem Bereitstellungsautomatisierungstool messen, das die Bereitstellungsrate für die Produktion anzeigt.
Hier sind die Leistungsstufen für die Bereitstellungshäufigkeit im Jahr 2023:
- Niedrig – zwischen einmal pro Woche und einmal pro Monat
- Mittel – zwischen einmal pro Woche und einmal pro Monat
- Hoch – zwischen einmal täglich und einmal wöchentlich
- Elite – auf Anfrage (viele Bereitstellungen pro Tag)
Wenn Ihre Bereitstellungspipeline manuelle Aufgaben enthält, werden die Benutzer versuchen, diese weniger oft auszuführen. Dies wirkt sich auf die Bereitstellungshäufigkeit aus, erhöht die Batchgröße und macht die manuelle Aufgabe zu einem größeren Aufwand. Durch die Reduzierung der Bereitstellungshäufigkeit werden die Batches größer, was die Bereitstellung noch schwieriger macht. Dies führt dazu, dass größere Batches seltener bereitgestellt werden und das Feedback viel zu spät kommt.
DevOps unterstützt Sie dabei, diesen negativen Effekt umzukehren. Sie können häufiger bereitstellen, indem Sie die Batchgröße verringern und die Bereitstellungspipeline automatisieren . Das Feedback kommt schneller und Sie können mit größerer Wahrscheinlichkeit wertvolle Software bereitstellen.
Eine wertvolle Methode, die Bereitstellungshäufigkeit in Ihrem Unternehmen zu ermitteln, besteht darin, die Anzahl wöchentlicher Bereitstellungen pro Entwickler zu verfolgen. Teilen Sie dazu die Anzahl der Bereitstellungen durch die Anzahl der Entwickler. Die Verwendung von Zahlen pro Entwickler hilft Ihnen dabei, Probleme beim Skalieren zu erkennen und die Erwartungen zu steuern, wenn ein Entwickler das Unternehmen verlässt.
Vorlaufzeit für ÄnderungenLesezeichen
Es gibt viele Definitionen von Vorlaufzeiten bei der Softwarebereitstellung und -herstellung. Daher lohnt es sich, genauer auf die DevOps-Definition einzugehen.
Die Vorlaufzeit für Änderungen ist die Zeit, die eine Codeänderung benötigt, um die Live-Umgebung zu erreichen. Wir messen dies vom Code-Commit bis zur Produktionsbereitstellung.
Sie können die Vorlaufzeit für Änderungen berechnen, indem Sie Metadaten an Ihr Bereitstellungstool übertragen und diese verwenden, um das älteste Commit in einer Bereitstellung zu finden.
Hier sind die Leistungsstufen für die Vorlaufzeit im Jahr 2023:
- Niedrig – zwischen einer Woche und einem Monat
- Mittel – zwischen einer Woche und einem Monat
- Hoch – zwischen einem Tag und einer Woche
- Elite – weniger als ein Tag
Teams mit kürzeren Vorlaufzeiten beheben Fehler in der Regel schneller, da eine Lösung im Code nicht in einer langen Bereitstellungspipeline hängen bleibt. Eine gut geölte Bereitstellungspipeline macht eine schnelle Fehlerbehebung überflüssig und verringert das Risiko von Folgeproblemen durch das Überspringen wichtiger Schritte.
ÄnderungsfehlerrateLesezeichen
Ihre Änderungsfehlerrate ist der Prozentsatz der Änderungen, die zu einem Fehler, Vorfall oder Rollback führen. Um Änderungsfehlerraten zu verfolgen, müssen Sie ein Protokoll aller Änderungen führen, die ein Produktionsproblem verursachen.
Tools zur Arbeitsverfolgung verfügen normalerweise über eine Funktion, mit der eine Fehleranfrage mit der ursprünglichen Änderung verknüpft werden kann. Sie können diese verwenden, um Ihre Änderungsfehlerrate zu berechnen. Andernfalls können Sie ein benutzerdefiniertes Feld hinzufügen, um eine Änderung nachträglich als „fehlgeschlagen“ zu markieren und in Berichten zu verwenden.
Hier sind die Leistungsstufen für die Änderungsfehlerrate im Jahr 2023:
- Niedrig – 64 %
- Mittel – 15%
- Hoch – 10%
- Elite – 5 %
Ihre Änderungsfehlerrate ist kontextspezifisch. Wenn Sie sich in einem frühen Stadium der Produktentwicklung befinden, können Sie Risikobereitschaft und Experimentierfreude fördern, indem Sie eine höhere Änderungsfehlerrate anstreben.
Wenn Menschen von der Software abhängig sind, sollten Sie eine geringere Änderungsfehlerrate erreichen. Ihre Bereitstellungspipeline (und nicht Richtlinieneinschränkungen) sollte der Hauptmechanismus zur Reduzierung von Fehlern sein, die durch Softwareänderungen verursacht werden.
Wiederherstellungszeit für fehlgeschlagene BereitstellungenLesezeichen
Die Wiederherstellungszeit für fehlgeschlagene Bereitstellungen wurde im Jahr 2023 angepasst und gibt an, wie lange es dauert, nach einer fehlgeschlagenen Bereitstellung wieder einen guten Zustand herzustellen. Die Bereitstellung hat möglicherweise einen Fehler verursacht, oder die Softwareversion enthält möglicherweise ein kritisches Problem, das Sie beheben müssen.
Diese Metrik erfasst keine Produktionsvorfälle, die durch Netzwerkprobleme, Hardwarefehler oder andere unvorhersehbare Ereignisse wie Erdbeben verursacht werden.
Sie können Wiederherstellungszeiten für fehlgeschlagene Bereitstellungen von Ihrem Bereitstellungsautomatisierungstool erfassen. Sie können in Ihren Tools zur Aufgabenverfolgung auch einen Arbeitselementtyp für fehlgeschlagene Bereitstellungen erstellen.
Wenn Sie zur Behebung eines Fehlers eine Codeänderung benötigen, wird bei Ihrer Vorlaufzeit die Wiederherstellungszeit berücksichtigt. Eine kurze Vorlaufzeit kann hilfreich sein, da Sie so Korrekturen ohne einen speziellen Prozess zur Beschleunigung der Änderung bereitstellen können.
Traditionell wird der Betrieb anhand der Verfügbarkeit gemessen, was davon ausgeht, dass alle Ausfälle verhindert werden können. Bei DevOps akzeptieren wir, dass es immer Ausfälle außerhalb unserer Kontrolle geben wird. Daher ist die Fähigkeit, ein Problem frühzeitig zu erkennen und schnell eine Lösung zu finden, wertvoll.
Wenn Sie die Erholungszeiten Ihres Teams messen, sollten Sie alle Werte in einem Streudiagramm darstellen, anstatt sie zu einem Mittel- oder Medianwert zu aggregieren. Durch die Aggregation werden Ausreißer ausgeblendet, die zu Gesprächen führen könnten, die zu Verbesserungen führen.
Sie können die mittlere Zeit weiterhin verwenden, um die Leistung mit den Leistungsclustern der Branche zu vergleichen.
Hier sind die Leistungsstufen für 2023 bei Wiederherstellungszeiten nach fehlgeschlagenen Bereitstellungen:
- Niedrig – zwischen einem Monat und sechs Monaten
- Mittel – zwischen einem Tag und einer Woche
- Hoch – weniger als ein Tag
- Elite – weniger als eine Stunde
Änderungsvorlaufzeiten können sich auf Wiederherstellungszeiten auswirken, da eine Codeänderung Ihre Bereitstellungspipeline durchlaufen muss, bevor sie live gehen kann. Wenn Sie eine Änderung überstürzen, indem Sie Schritte in der Bereitstellungspipeline überspringen, erhöhen Sie das Risiko unerwarteter Nebenwirkungen.
ZuverlässigkeitLesezeichen
Zuverlässigkeit bedeutet, dass Teams das Erreichen oder Übertreffen ihrer Zuverlässigkeitsziele priorisieren. Der State of DevOps Report zeigt, dass die betriebliche Leistung in vielerlei Hinsicht Vorteile mit sich bringt.
Die Qualität Ihrer internen Dokumentation ist der Schlüssel zu einer hohen Leistung im Hinblick auf die Zuverlässigkeitsmetrik. Teams mit qualitativ hochwertiger Dokumentation erreichten oder übertrafen ihre Ziele mit mehr als doppelt so hoher Wahrscheinlichkeit. Die Dokumentation verbesserte auch die Leistung im Hinblick auf die anderen dora metrics. Sie sollten die Zuverlässigkeit anhand der Service-Level-Ziele Ihrer Software messen.
Wenn Sie die Service-Level-Ziele zu weit oder zu lange überschreiten, werden andere Systeme von dem höheren Service-Level abhängig, den Sie erreichen. Anstatt mit Ausfallzeiten zu rechnen und sie elegant zu handhaben, gehen viele davon aus, dass Ihr Service immer verfügbar ist. Dies führt zu Problemen, wenn es zu einem Ausfall kommt AudioBook Bay.
Sie können kurze und absichtliche Ausfälle nutzen, um die Verfügbarkeit näher an das Service-Level-Ziel zu bringen und die Systemstabilität zu testen. Dadurch wird sichergestellt, dass andere Systeme Ausfälle problemlos bewältigen.
Leistungscluster für die SoftwarebereitstellungLesezeichen
Basierend auf den Umfrageantworten hat DORA Organisationen in Leistungsstufen eingeteilt. Organisationen in den höheren Leistungsgruppen verfügen nicht nur über eine bessere Softwarebereitstellung, sondern erzielen häufig auch auf Organisationsebene bessere Ergebnisse. Jeder Bericht gruppiert die Teilnehmer der jährlichen Umfrage, sodass Branchentrends neben demografischen Veränderungen sichtbar werden.
Leistungsgruppen 2023Lesezeichen
Cluster | Vorlaufzeit | Bereitstellungshäufigkeit | Änderungsfehlerrate | Wiederherstellungszeit für fehlgeschlagene Bereitstellungen |
Niedrig | 1 Woche – 1 Monat | Einmal pro Woche – einmal pro Monat | 64 % | 1 Monat – 6 Monate |
Mittel | 1 Woche – 1 Monat | Einmal pro Woche – einmal pro Monat | 15% | 1 Tag – 1 Woche |
Hoch | 1 Tag – 1 Woche | Einmal täglich – einmal wöchentlich | 10 % | < 1 Tag |
Elite | < 1 Tag | Auf Anfrage | 5 % | < 1 Stunde |
Obwohl Leistungscluster aus dem Jahresbericht hilfreich sind, um zu sehen, wie Sie im Vergleich zur Branche abschneiden, ist Ihr Ziel nicht die Spitzenleistung . Ihr Ziel ist die Bereitstellung von Software. Sehen Sie sich stattdessen an, was Ihr funktionsübergreifendes Team erreichen möchte, und setzen Sie sich ein entsprechendes Leistungsziel.
Denken Sie auch daran, dass Kennzahlen zwar die Leistung bei der Softwarebereitstellung verfolgen, aber viele Rollen widerspiegeln, nicht nur Softwareentwickler. Jeder, der an der Erstellung von Software beteiligt ist, trägt zur Leistung bei, darunter:
- Wirtschaftsexperten
- Tester
- Mitarbeiter aus dem operativen Geschäft
- Mitglieder des Sicherheitsteams
Wenn Sie die Metriken zur Bewertung von Softwareentwicklern verwenden, führen Sie Ihr Team zurück in kompetenzbasierte Silos, in denen es seine eigenen Ergebnisse optimiert. Das kann im Widerspruch zu den Zielen des Unternehmens stehen.
DORA-MetrikübersichtLesezeichen
Die dora metrics verwenden Ergebnisse auf Systemebene, um die Softwarebereitstellung und die Betriebsleistung zu messen. Die Leistung einer Organisation im Hinblick auf diese Maßstäbe sagt die Leistung im Hinblick auf ihre umfassenderen Ziele voraus. Die Spitzenkräfte übertreffen die Konkurrenz in ihrer Branche.
Durch die Beseitigung von Hindernissen für einen schnellen Änderungsfluss in der Produktion können Sie:
- Bieten Sie Ihren Kunden einen Mehrwert
- Experimentieren Sie mit Funktionen
- Erhalten Sie schnell Feedback
Wenn die dora metrics für Softwarebereitstellung und -betrieb vorhanden sind, können Sie mit Ihrer Bereitstellungspipeline experimentieren und diese Fragen beantworten:
- Hilft uns dies, Software schneller oder öfter bereitzustellen?
- Macht das unsere Software stabiler?
Verbesserungen bei der Softwarebereitstellungsleistung führen häufig zu höherer Geschwindigkeit und Stabilität. Dies ist eines der wichtigsten Ergebnisse des State of DevOps-Berichts. Teams, die häufiger Software bereitstellen , erstellen auch qualitativ hochwertigere Software.
Spitzenkräfte können:
- Ändern Sie ihre Anwendungen früher
- Setzen Sie sie häufiger ein
- Weniger Ausfälle
- Schnelle Wiederherstellung nach Fehlern
Es ist selten, einen Kompromiss zwischen Geschwindigkeit und Stabilität zu finden, auch wenn dies kontraintuitiv erscheint. Wenn Sie feststellen, dass sich ein Kompromiss abzeichnet, verwenden Sie die Continuous Delivery-Anweisungen und die DevOps-Fähigkeitenliste im Strukturgleichungsmodell von DORA, um zu überprüfen, ob Sie eine kritische Praxis übersehen haben.
Continuous Delivery hilft Ihnen, Höchstleistungen zu erzielen. Das Verhältnis zwischen Geschwindigkeit und Stabilität wird Ihnen dabei helfen, Ihre Verbesserungen zu verstärken.