Ehrlich gesagt, Ivan lachte oft ĂŒber die vergeblichen BemĂŒhungen seiner Kollegen aus der Ăberwachungsabteilung. Sie machten enorme Anstrengungen, um die Kennzahlen, die das Management des Unternehmens bestellte, umzusetzen. Sie waren so beschĂ€ftigt, dass sie nichts anderes mehr tun wollten.
Und dem Management war das nicht genug â es bestellte stĂ€ndig neue Kennzahlen und hörte sehr schnell auf, die bereits erstellten zu nutzen.
In letzter Zeit sprach jeder nur ĂŒber LeadTime â die Lieferzeit fĂŒr GeschĂ€ftsfeatures. Die Kennzahl zeigte eine verrĂŒckte Zahl â 200 Tage fĂŒr die Lieferung einer Aufgabe. Wie alle stöhnten, seufzten und ihre HĂ€nde gen Himmel erhoben!
Nach einiger Zeit verebbte der LÀrm allmÀhlich, und das Management gab einen Auftrag zur Erstellung einer weiteren Kennzahl.
Ivan war vollkommen klar, dass auch die neue Kennzahl genau so still und leise im dunklen Winkel sterben wĂŒrde.
In der Tat dachte Ivan, die Kenntnis einer Zahl sagt niemandem etwas. 200 Tage oder 2 Tage â es gibt keinen Unterschied, weil man aus den Zahlen nicht die Ursache erkennen und verstehen kann, ob es gut oder schlecht ist.
Das ist die typische Falle der Kennzahlen: Es scheint, als wĂŒrde die neue Kennzahl das Wesen des Seins erzĂ€hlen und irgendein geheimes Geheimnis erklĂ€ren. Alle hoffen darauf, aber aus irgendeinem Grund passiert nichts. Und das, weil das Geheimnis nicht in den Kennzahlen gesucht werden sollte!
FĂŒr Ivan war das ein durchlaufener Schritt. Er verstand, dass fĂŒr Messungen, und alle Geheimnisse mĂŒssen in , d.h. dem, was diese Kennzahl formt, gesucht werden.
FĂŒr einen Online-Shop wĂ€re das Einflussobjekt seine Kunden, die Geld bringen, und fĂŒr DevOps â die Teams, die Distributionen mit Hilfe der Pipeline erstellen und bereitstellen.
Eines Tages, als er sich in einer bequemen Sessel in der Lobby niederlieĂ, entschloss sich Ivan, grĂŒndlich zu ĂŒberlegen, wie er die DevOps-Kennzahlen sehen möchte, wobei das Einflussobjekt die Teams sind.
Ziel der DevOps-Kennzahlen
Es ist klar, dass jeder die Lieferzeit reduzieren möchte. 200 Tage sind natĂŒrlich nicht akzeptabel.
Aber wie, darum geht es?
Im Unternehmen arbeiten hunderte von Teams, und tÀglich durchlaufen Tausende von Distributionen die DevOps-Pipeline. Die tatsÀchliche Lieferzeit wird als Verteilung aussehen. Jedes Team hat seine eigene Zeit und seine eigenen Besonderheiten. Wie kann man in diesem Durcheinander irgendetwas finden?
Die Antwort kam von selbst â wir mĂŒssen die problematischen Teams finden und herausfinden, was bei ihnen passiert und warum es so lange dauert, und von den "guten" Teams lernen, wie man alles schnell macht. Dazu mĂŒssen wir die Zeit messen, die die Teams an jedem der DevOps-StĂ€nde verbringen:

âZiel des Systems wird die Auswahl der Teams nach der Zeit sein, die sie an den StĂ€nden verbringen, d.h. letztendlich mĂŒssen wir eine Liste von Teams mit der ausgewĂ€hlten Zeit und nicht nur eine Zahl erhalten.
Wenn wir erfahren, wie viel Zeit insgesamt fĂŒr den Stand aufgewendet wurde und wie viel Zeit fĂŒr die StillstĂ€nde zwischen den StĂ€nden aufgewendet wurde, können wir die Teams finden, sie anrufen und genauer die GrĂŒnde verstehen und diese beseitigenâ, dachte Ivan.

Wie man die Lieferzeit fĂŒr DevOps berechnet
FĂŒr die Berechnung war es notwendig, tiefer in den DevOps-Prozess und dessen Wesen einzutauchen.
Im Unternehmen werden nur eine begrenzte Anzahl von Systemen verwendet, und Informationen können nur aus diesen bezogen werden und sonst von nirgendwo.
Alle Aufgaben im Unternehmen wurden in Jira erfasst. Wenn eine Aufgabe in Arbeit genommen wurde, wurde ein Branch dafĂŒr erstellt, und nach der Implementierung wurde ein Commit in BitBucket und ein Pull Request gemacht. Bei der Annahme des PR (Pull Request) wurde automatisch ein Paket erstellt und im Nexus gespeichert.
![]()
AnschlieĂend wurde das Paket auf mehreren StĂ€nden mit Hilfe von Jenkins ausgerollt, um die Richtigkeit des Rollouts, die automatische und manuelle Tests zu ĂŒberprĂŒfen:

Ivan skizzierte aus welchen Systemen welche Informationen entnommen werden können, um die Zeit an den StÀnden zu berechnen:
- Aus Nexus â Erstellungszeit des Pakets und der Name des Ordners, in dem der Code des Teams enthalten war.
- Aus Jenkins â Startzeit, Dauer und Ergebnis der AusfĂŒhrung jeder Job, der Name des Stands (in den Jobparametern), Stages (Schritte des Jobs), Link zum Paket in Nexus.
- Jira und BitBucket entschied Ivan, nicht in die Pipeline einzubeziehen, da sie mehr zur Entwicklungsphase und nicht zum Rollout des fertigen Pakets an den StÀnden gehörten.

Auf der Grundlage der vorhandenen Informationen wurde folgendes Schema skizziert:

Wenn man weiĂ, wie lange die Pakete erstellt werden und wie viel Zeit fĂŒr jedes von ihnen aufgewendet wird, kann man die Gesamtkosten fĂŒr den gesamten DevOps-Pipeline-Prozess (den vollstĂ€ndigen Zyklus) leicht berechnen.
Das sind die DevOps-Metriken, die Ivan letztendlich erhalten hat:
- Anzahl der erstellten Pakete
- Anteil der Pakete, die auf den Stand "gegangen" sind und den Stand "bestanden" haben
- Zeit, die an dem Stand verbracht wurde (Standzyklus)
- Der vollstĂ€ndige Zyklus (Gesamtzeit ĂŒber alle StĂ€nde)
- Dauer der Jobs
- Leerlauf zwischen den StÀnden
- Leerlauf zwischen den Starts von Jobs an einem Stand
Einerseits haben die Metriken die DevOps-Pipeline in Bezug auf die Zeit sehr gut charakterisiert, andererseits wurden sie als sehr einfach angesehen.
Zufrieden mit seiner gut geleisteten Arbeit stellte Ivan eine PrÀsentation zusammen und ging, um sie der GeschÀftsleitung vorzustellen.
Auf dem RĂŒckweg war er dĂŒster und mit gesenkten HĂ€nden.
âDas ist ein Fiasko, Bruderâ â lĂ€chelte der ironische KollegeâŠ
Die Fortsetzung lesen Sie im Artikel â».
Quelle: habr.com
