DevOps-Metriken – Woher man Daten fĂŒr Berechnungen beziehen kann

Ehrlich gesagt, hat Ivan oft ĂŒber die vergeblichen BemĂŒhungen seiner Kollegen aus der Überwachungsabteilung gelacht. Sie investierten unermĂŒdlich Zeit, um die Metriken zu implementieren, die das Management verlangte. Sie waren so beschĂ€ftigt, dass sie nichts mehr fĂŒr andere tun wollten.

Aber das Management war nie zufrieden – es forderte stĂ€ndig neue Metriken und hörte sehr schnell auf, die bereits vorhandenen zu nutzen.

In letzter Zeit wurde viel ĂŒber LeadTime gesprochen – die Zeit, die benötigt wird, um GeschĂ€ftsfunktionen bereitzustellen. Die Metrik zeigte eine verrĂŒckte Zahl – 200 Tage fĂŒr die Bereitstellung einer einzigen Aufgabe. Wie alle darĂŒber entsetzt waren und ihre HĂ€nde zum Himmel erhoben!

Nach einiger Zeit verklang der LÀrm allmÀhlich, und das Management gab den Auftrag zur Erstellung einer weiteren Metrik.

Ivan war sich vollkommen sicher, dass auch die neue Metrik leise in einer dunklen Ecke sterben wĂŒrde.

In der Tat, dachte Ivan, sagt die Kenntnis der Zahl niemandem etwas. 200 Tage oder 2 Tage – es macht keinen Unterschied, denn an der Zahl lĂ€sst sich weder der Grund erkennen noch verstehen, ob das gut oder schlecht ist.

Dies ist eine typische Falle der Metriken: Es scheint, als wĂŒrde eine neue Metrik das Wesen des Seins enthĂŒllen und ein geheimes Geheimnis erklĂ€ren. Alle hoffen darauf, aber irgendwie passiert nichts. Denn das Geheimnis sollte man ganz woanders suchen – nicht in den Metriken!

FĂŒr Ivan war das ein bereits durchlaufener Prozess. Er verstand, dass Metriken lediglich ein gewöhnliches Maßband fĂŒr Messungen sind, wĂ€hrend alle Geheimnisse in dem Einflussobjekt, d.h. in dem, was diese Metrik formt.

FĂŒr einen Online-Shop wĂ€re das Einflussobjekt seine zahlenden Kunden, wĂ€hrend es fĂŒr DevOps die Teams sind, die Software-Pakete entwickeln und ausrollen, wobei sie Continuous Integration nutzen.

Eines Tages, bequem in einem Stuhl in der Lobby sitzend, beschloss Ivan, sich Gedanken darĂŒber zu machen, wie er sich die DevOps-Metriken wĂŒnscht, wobei das Einflussobjekt die Teams sind.

Ziel der DevOps-Metriken

Ist klar, dass jeder die Lieferzeit reduzieren möchte. 200 Tage – das ist natĂŒrlich inakzeptabel.

Aber wie, das ist die Frage?

In dem Unternehmen arbeiten Hunderte von Teams, und tĂ€glich durchlaufen Tausende von Distributionen den DevOps-Pipeline. Die tatsĂ€chliche Lieferzeit wird als Verteilung erscheinen. Jedes Team wird seine eigene Zeit und spezielle Merkmale haben. Wie kann man in diesem Durcheinander ĂŒberhaupt etwas finden?

Die Antwort lag auf der Hand – wir mĂŒssen die problematischen Teams identifizieren und herausfinden, was bei ihnen vor sich geht und warum es so lange dauert, wĂ€hrend wir bei den 'guten' Teams lernen, wie man alles schnell erledigt. DafĂŒr mĂŒssen wir die Zeit messen, die die Teams an jedem der DevOps-StĂ€nde verbringen:

DevOps-Metriken – Woher man Daten fĂŒr Berechnungen beziehen kann

„Ziel des Systems wird es sein, Teams anhand der Zeit, die sie an den StĂ€nden verbringen, auszuwĂ€hlen, d.h. letztendlich sollten wir eine Liste von Teams mit den jeweiligen Zeiten erhalten, anstatt nur eine Zahl.

Wenn wir herausfinden, wie viel Zeit insgesamt am Stand verbracht wurde und wie viel Zeit mit Wartezeiten zwischen den StĂ€nden vergeudet wurde, können wir die Teams identifizieren, sie anrufen und die Ursachen im Detail analysieren und beseitigen“, dachte Ivan.

DevOps-Metriken – Woher man Daten fĂŒr Berechnungen beziehen kann

Wie man die Lieferzeit fĂŒr DevOps berechnet

Um eine Berechnung durchzufĂŒhren, war es erforderlich, tiefer in den DevOps-Prozess und seine WesenszĂŒge einzutauchen.

Im Unternehmen werden eine begrenzte Anzahl von Systemen verwendet, und Informationen können nur aus diesen und sonst nirgendwoher gewonnen werden.

Alle Aufgaben wurden im Unternehmen in Jira registriert. Wenn eine Aufgabe bearbeitet wurde, wurde ein Branch erstellt, und nach der Umsetzung wurde ein Commit in BitBucket durchgefĂŒhrt und ein Pull Request erstellt. Bei der Annahme des PR (Pull Request) wurde automatisch ein Distributionspaket erstellt und im Nexus-Repository gespeichert.

DevOps-Metriken – Woher man Daten fĂŒr Berechnungen beziehen kann

Anschließend wurde das Distributionspaket auf mehreren StĂ€nden mit Hilfe von Jenkins ausgefĂŒhrt, um die Richtigkeit der Installation sowie automatisierte und manuelle Tests zu ĂŒberprĂŒfen:

DevOps-Metriken – Woher man Daten fĂŒr Berechnungen beziehen kann

Ivan hat aufgeschlĂŒsselt, aus welchen Systemen welche Informationen entnommen werden können, um die Zeit auf den StĂ€nden zu berechnen:

  • Aus Nexus – Zeit der Erstellung des Distributionspakets und der Name des Ordners, in dem der Code des Teams enthalten war.
  • Aus Jenkins – Startzeit, Dauer und Ergebnis der AusfĂŒhrung jedes Jobs, Name des Stands (in den Jobparametern), Stages (Schritte des Jobs), Link zum Distributionspaket in Nexus.
  • Ivan entschied sich, Jira und BitBucket nicht in die Pipeline einzubeziehen, da sie mehr mit der Entwicklungsphase zu tun hatten und nicht mit der Bereitstellung des fertigen Distributionspakets auf den StĂ€nden.

DevOps-Metriken – Woher man Daten fĂŒr Berechnungen beziehen kann

Basierend auf den verfĂŒgbaren Informationen wurde folgendes Schema erstellt:

DevOps-Metriken – Woher man Daten fĂŒr Berechnungen beziehen kann

Angesichts der Zeit, die zur Erstellung von Distributionen benötigt wird, und der Zeit, die fĂŒr jede einzelne aufgewendet wird, lassen sich die Gesamtkosten fĂŒr den gesamten DevOps-Prozess (voller Zyklus) leicht berechnen.

Das sind die DevOps-Kennzahlen, die Ivan letztendlich erhalten hat:

  • Anzahl der erstellten Distributionen
  • Anteil der Distributionen, die auf die Standorte gelangt und die dort erfolgreich getestet wurden
  • Zeit, die am Standort verbracht wurde (Standzeiten-Zyklus)
  • Voller Zyklus (Gesamtzeit fĂŒr alle StĂ€nde)
  • Dauer der Jobs
  • Stillstand zwischen den StĂ€nden
  • Stillstand zwischen den AusfĂŒhrungen von Jobs an einem Stand

Einerseits charakterisierten die Kennzahlen den DevOps-Prozess sehr gut hinsichtlich der Zeit; andererseits waren sie sehr einfach zu erfassen.

Zufrieden mit seiner guten Arbeit stellte Ivan eine PrĂ€sentation zusammen und ging, um sie der GeschĂ€ftsfĂŒhrung vorzustellen.

Auf dem RĂŒckweg war er jedoch mit besorgter Miene und hĂ€ngenden HĂ€nden unterwegs.

— Das ist ein Fiasko, Kumpel, — lĂ€chelte ein ironischer Kollege


Fortsetzung lesen Sie im Artikel „Wie schnelle Ergebnisse Ivan geholfen haben».

Quelle: habr.com

Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster