Auf einen Blick: Continuous Delivery Metrics bewertet die Leistung in DevOps, um die Softwareentwicklung und -bereitstellung zu verbessern. Sie legt Wert auf kritische Kennzahlen wie Build-Qualität und Sicherheitsintegration innerhalb der CI-Pipeline.
- Wichtige Leistungskennzahlen sind die Vorlaufzeit zur Produktion und die Qualität des Softwareaufbaus.
- Die frühe Integration von Sicherheit in der CI-Pipeline ist für die Risikominderung unerlässlich.
Der DevOps-Ansatz für den Softwareentwicklungslebenszyklus (SDLC) wurde mit dem Ziel eingeführt, die Geschwindigkeit, Qualität und Leistung des Softwareentwicklungs- und Lieferprozesses zu optimieren. Der Ansatz stützt sich auf Best Practices bezüglich:
- Softwareentwicklung
- Organisationskultur
- Geschäftsabläufe
- Endnutzerinteraktionen
In DevOps-Organisationen werden diese Rahmenrichtlinien von Entwicklern, IT-Ops, QA, InfoSec und anderen Teams übernommen, die gemeinsam auf das gemeinsame Ziel hinarbeiten, bei jeder Veröffentlichung hochwertige Software im Rahmen der Continuous Delivery (CD)-Praxis zu liefern. Wie bewerten DevOps-Teams also ihre Leistung hinsichtlich der Erreichung dieser Ziele? In diesem Artikel betrachten wir einige gängige Kennzahlen, die zur Bewertung der Continuous Delivery-Leistung in DevOps verwendet werden.
Kritische Themen
Der erste Schritt zur Steuerung eines effizienten kontinuierlichen Lieferzyklus besteht darin, die kritischsten und wirkungsvollsten Risiken zu eliminieren. Diese Risiken umfassen Schwachstellen im Netzwerk und Technologien der IT-Umgebung, die die Software und Datenressourcen potenziell kompromittieren können, bevor sie überhaupt auf den Markt gebracht werden. Beispiele für KPIs sind:
- Anzahl kritischer Schwachstellen in allen Apps und Diensten
- Netzwerk-Eindringlingsversuche
- Unbefugte Nutzung von Datenverkehr oder Datenübertragungsversuche
- Anzahl fehlgeschlagener Sicherheitstests
- Prozentsatz der bestandenen Sicherheitsprüfungen
Die Integration von Sicherheit in die Pipeline für Continuous Integration (CI), eine Teilmenge von CD, ist oft herausfordernd und von Entwicklern, die schnellere CD-Zyklen anstreben, nicht immer willkommen. Daher muss Sicherheit in früheren Phasen des SDLC von Grund auf aufgebaut werden.
Effizienz und Produktionszeit
Das Hauptziel eines Entwicklungsteams ist es, sicherzustellen, dass der funktionalste Software-Build innerhalb kurzer CD-Zyklen zur Veröffentlichung verfügbar ist. Das Ziel von ITOps ist es, sicherzustellen, dass die Infrastrukturressourcen stets verfügbar und optimal genutzt werden, um maximale Kosteneffizienz des Prozesses zu gewährleisten. Gemeinsam können Dev und Ops die folgenden KPIs betrachten, um die Leistung ihrer kontinuierlichen Lieferzyklen zu verstehen:
- Anzahl der Code-Zweige. Dies bezieht sich auf die Anzahl der in Arbeit befindlichen Feature-Komponenten. Unnötige Komponenten erhöhen die Entwicklungslast und Sicherheitsrisiken.
- Vorlaufzeit zur Produktion/Zykluszeit. Die Zeit, die benötigt wird, um einen neuen Build zu implementieren, zu testen und zu liefern. Dieser KPI hängt von mehreren Variablen ab, wie Risiko, technischer Schulden, Überwachungsmetriken und anderen Abhängigkeiten, die die Durchlaufzeit zwischen Teams, Versionen und den Stand der SDLC-Reife beeinflussen können.
- Time To Value (TTV). TTV bewertet den Release-Prozess statt des gesamten CD-Zyklus. Es bezieht sich auf die Zeit zwischen dem Schreiben von Code und dessen Veröffentlichung. Mit anderen Worten: Es betrachtet, wie schnell der Endnutzer aus einer neuen Softwareentwicklung profitiert.
- Team-Bindungsrate. Als weiche Kennzahl zur Bewertung der Unternehmenskultur kann die Team-Bindungsrate zeigen, ob die Mitarbeiter gerne im angestrebten Tempo des CD-Zyklus arbeiten. Die durchschnittliche Zeit, die ein Mitarbeiter in den DevOps-Teams verbringt, könnte eine Antwort darauf geben.
Bauqualität & Betrieb
Die Infrastrukturleistung ist eine der obersten Prioritäten von DevOps-Teams. Wenn die Software in der Test- oder Produktionsumgebung bereitgestellt wird, hinterlässt sie an jedem Knoten der Infrastruktur eine riesige Spur von Log-Metriken. Diese Informationen helfen dabei:
- Verstehen Sie den Zustand der zugrundeliegenden Infrastruktur
- Anwendung optimieren
- Identifizieren Sie potenzielle Sicherheitslücken
Einige Kennzahlen, die helfen können, diese Ziele zu erreichen, sind:
Infrastrukturnutzung
Sind einige Knoten überzeichnet? Welche Knoten zeigen über einen bestimmten Zeitraum kritische Fehler? Die Analyse der Infrastrukturauslastungsraten aller Knoten, Server, virtuellen Maschinen sowie anderer Hardware und virtualisierter Komponenten im Netzwerk kann Ihnen helfen, die tatsächliche Leistung jeder Softwareversion zu verstehen.
Produktionsausfälle & MTTR
Service Level Agreement (SLA)-Metriken bezüglich Verfügbarkeit, Leistung und Antwort des CD-Zyklus sollten für einen Anwendungsdienst angegeben und angewendet werden. Kontinuierliches Feedback und Verbesserungen können genutzt werden, um die Reife des kontinuierlichen Lieferzyklus zu verbessern.
Anzahl der Fehler/Fehlerraten
Dies kann verwendet werden, um Fehler und Produktionsprobleme in Neubauten zu identifizieren . Diese Fehler erfordern eine gründliche Ursachenbewertung und können von verschiedenen Faktoren abhängen.
Teststatistiken
Die Anzahl der Tests, die CD-Pipeline im Vergleich zur Vollständigkeit der Tests und die Testabdeckung können Ihnen helfen, die Qualität des Softwarebaus sowie die Effizienz des Testprozesses zu verstehen.
Ticketbearbeitungszeit
Effektive Ticket-Lösung bedeutet nicht nur, ein spezifisches Problem für den Endnutzer zu lösen, sondern konzentriert sich in erster Linie darauf, die Ursache des Problems zu verstehen. Eine große Anzahl wiederholender Tickets liefert beispielsweise Einblicke in spezifische wiederkehrende Probleme, die mit der Technologie, der App-Performance oder der Steuerung des SDLC-Prozesses zusammenhängen.
Kontinuierliche Lieferung erfordert Messung
DevOps-Organisationen übernehmen kontinuierliche Bereitstellungspraktiken als ingenieurwissenschaftliches Prinzip. Die Lieferung hochwertiger Software-Builds innerhalb eines kontinuierlichen Prozesses erfordert, dass Organisationen:
- Baseline-Metriken festlegen
- DevOps- und agile-Methodiken übernehmen
- Wiederholen Sie es, indem Sie datenbasierte Erkenntnisse aus Daten nutzen
Schließlich lassen sich die Verbesserungen durch greifbare Änderungen der SDLC-Arbeitsabläufe sowie an Infrastruktur- und Betriebsänderungen basierend auf den Continuous Delivery-Kennzahlen beobachten.
Verwandte Literatur
DevOps-Leitfaden
- Was ist DevOps? Eine umfassende Einführung
- Eine kurze Geschichte von DevOps
- Einführung in die DevOps-Architektur
- Automatisierung in DevOps: Warum und wie man DevOps-Praktiken automatisiert
- Was ist CI/CD? Kontinuierliche Integration und kontinuierliche Lieferung erklärt
- Wie man eine CI/CD-Pipeline mit Jenkins aufbaut
- DevOps-Metriken zur Optimierung von CI/CD-Pipelines
- Kontinuierliche Liefermetriken
- Ist Continuous Integration in Continuous Deployment ein Fortschritt – oder nicht?
- Unterschiede zwischen Continuous Integration (CI), Delivery (CD) und Deployment
- Quellcode und Versionskontrolle in DevOps
- Was ist kontinuierliche Testung?
- Testautomatisierungs-Frameworks: Der ultimative Leitfaden
- Release Management in DevOps
- Erklärt: Monitoring & Telemetrie in DevOps
- Anwendungs-Leistungsmanagement in DevOps
- DevOps-Orchestrierung im SDLC
- Einführung in Datenbank-DevOps
- Die Rolle der Microservices in DevOps
- Die Rolle der Virtualisierung in DevOps
- Container & DevOps: Wie Container in DevOps-Lieferpipelines passen
- Was ist eine Containerpipeline?
- Was ist eine DevOps-Toolchain?
- Verwaltung von Containern und Code für DevOps
- Die Rolle von Agile in DevOps
- Die Rolle der Cloud in DevOps
- Was ist FinDevOps?
- Top-DevOps-Trends im Jahr 2022
- DevOps-Werte & Prinzipien
- DevOps-Kennzahlen und KPIs
- DevOps-Ratschläge für kleine, mittlere und große Organisationen
- DevOps-Teamstruktur
- Top-DevOps-Bücher, die man heute lesen sollte
- Buchrezension von The Phoenix Project: DevOps For Everyone
- DevOps-Influencer: 11 DevOps-Experten, denen Sie auf Twitter folgen können
- GitHub, GitLab, Bitbucket & Azure DevOps: Was ist der Unterschied?
- Best Practices: Wie man Anwendungen für Kubernetes architekt
- Konfigurationsmanagement in DevOps
- DevOps-Verzweigungsstrategien erklärt
- DevOps-Jobbezeichnungen, Rollen und Verantwortlichkeiten
- Testen in DevOps: Konzepte, Best Practices und mehr
- Der vollständige DevOps-Zertifizierungsleitfaden für 2022
- Was ist das Kubernetes-Operator-Muster?
Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.