Perspektive

SDLC-Telemetrie

Beschleunigen Sie die Lieferung mit automatisierten Erkenntnissen in Echtzeit

Veröffentlicht: November 17, 2020

Das Vermächtnis von agilen Methoden

In den letzten zehn Jahren ist die Notwendigkeit für Unternehmen stark gestiegen, in kürzester Zeit qualitativ hochwertige Softwarelösungen zu liefern, um den sich ständig ändernden Marktanforderungen gerecht zu werden und im harten Wettbewerb zu bestehen. Gleichzeitig haben die IT-Unternehmen, die diese Firmen unterstützen, auf die agile Methodik umgestellt, um mit der wachsenden Nachfrage nach beschleunigter Softwarebereitstellung Schritt zu halten.

Agile Methoden verstehen

Das agile Modell, eine Kombination aus inkrementellen und iterativen Prozessen, entstand, um die Auslieferung von Software zu beschleunigen, Kundenzufriedenheit zu gewährleisten und die erforderliche Flexibilität zur kontinuierlichen Anpassung und Verbesserung zu bieten. Im Rahmen des agilen Modells wurden die geschäftlichen Anforderungen in kleinere Teile zerlegt, was es dem Entwicklungsteam ermöglichte, Software in kürzeren Iterationen und viel regelmäßiger zu liefern. Als agile Methoden an Boden gewannen, kamen neue Automatisierungstechnologien und Rationalisierungsprozesse auf, die es den Entwicklungsteams ermöglichten, kleinere Code-Bausteine kontinuierlich zu integrieren.

Diese kleineren Code-Bausteine mussten jedoch kontinuierlich getestet werden, damit qualitativ hochwertiger Code mehrmals in den Hauptentwicklungszweig integriert werden konnte. Dies steigerte zwar die Effizienz der Softwareentwicklung, belastete aber das nachgelagerte Testteam und das Betriebsteam mit kontinuierlichen Tests und Bereitstellungen. Dadurch verzögerte sich die Auslieferung des gesamten Softwareprodukts, was den Zweck der agilen Methodik insgesamt zunichte machte.

Der Weg von agiler Entwicklung zu DevOps

Schon bald erkannten Unternehmen, dass der gesamte Lebenszyklus der Softwareentwicklung als ein einziger Prozess behandelt und größtenteils automatisiert werden sollte. Die in Silos arbeitenden Entwicklungs- und Betriebsteams wurden zusammengeführt, was zum Entstehen von DevOps führte.

DevOps ist die Zusammenführung von Praktiken, Kulturphilosophien und Tools, die es einer Organisation ermöglichen, Anwendungen/Dienste mit hoher Geschwindigkeit bereitzustellen und Produkte kontinuierlich zu verbessern. Unternehmen, die von traditionellen Softwareentwicklungsprozessen zu DevOps übergegangen sind, profitieren von einer schnelleren Markteinführung und einer höheren Kundenzufriedenheit.

Elemente von DevOps: CI/CD

Kontinuierliche Integration ist eine Praxis der Softwareentwicklung, bei der Entwickler regelmäßig Codeänderungen in ein zentrales Repository einbringen, das dann für automatisierte Builds und Tests verwendet wird. Die Idee hinter der kontinuierlichen Integration ist es, Fehler schneller zu identifizieren und zu beheben, die Qualität zu verbessern und die Markteinführungszeit zu verkürzen.

Kontinuierliche Bereitstellung ist eine Softwareentwicklungspraxis, bei der Codeänderungen automatisch erstellt, getestet und für die Freigabe integriert werden. Dabei geht kontinuierliche Integration noch einen Schritt weiter, indem Codeänderungen nach der Erstellungsphase in einer Test-/Produktionsumgebung bereitgestellt werden.

Kontinuierliche Bereitstellung ist eine weitere weit verbreitete DevOps-Praxis, bei der jeder neue Build automatisch bereitgestellt wird, sobald wesentliche Änderungen am Code vorgenommen werden.

Wasserfall

Wasserfall

  • Sequenzielle lineare Stufen
  • Teams arbeiten in funktionalen Silos 
  • Umfassende Planung und Dokumentation
  • Extrem begrenzt in Bezug auf neue geschäftliche Bedürfnisse
Agile

Agile

  • Iterativer Entwicklungsmodus 
  • Kleine, gut funktionierende, kollaborative Teams 
  • Kontinuierliche Integration war integraler Bestandteil von Dev-Teams
  • Betonung auf kürzerer Markteinführungszeit 
  • Praxis der Automatisierung
DevOps

DevOps

  • Flexible kontinuierliche Entwicklung 
  • Zusammenarbeit zwischen Entwicklung und Betrieb
  • Kontinuierliche Integration, Tests, Lieferung und Bereitstellung 
  • Hohe Automatisierung für CI/CD
  • Betonung auf kürzerer Markteinführungszeit 

Bedarf an Kennzahlen

Obwohl viele Unternehmen agile Prozesse und DevOps eingeführt haben, war es nie einfach, die Softwareentwicklung ohne definierte Kennzahlen zu messen und zu verwalten, insbesondere da der Prozess immer komplexer und dezentraler wird. In größeren Unternehmen, in denen mehrere geografisch verteilte Teams an der gleichen Anwendung arbeiten, wird es schwierig, Prozessverzögerungen und Abhängigkeiten zu erkennen.

Messen der Effektivität von DevOps mit DORA-Kennzahlen

DORA-Kennzahlen spielen eine wichtige Rolle bei der Messung der Leistung eines Teams. Ein Ergebnis jahrelanger Forschung durch das Team von DevOps Research and Assessments (DORA) führte zu den folgenden vier DORA-Kennzahlen: Bereitstellungshäufigkeit, Vorlaufzeit für Änderungen, Zeit für die Wiederherstellung von Diensten und Änderungsfehlerrate.

DORA-Kennzahlen helfen Führungskräften bei der Messung von Software-Durchsatz (Zeit zur Markteinführung) und Qualität (Zuverlässigkeit). Diese Kennzahlen ermöglichen fundierte, datengesteuerte Entscheidungen, die zu kontinuierlichen Verbesserungen führen, die wiederum mit messbaren Zielen der digitalen Transformation verknüpft werden können.

Die Verbreitung von DevOps ist auf dem Vormarsch
Umsetzung von DevOps
Die Branche „überwindet die Kluft“

3-fache Steigerung der „Elite-Leistungsstufe“

Image

Herausforderungen von Agile und DevOps

Während die Integration von DevOps und Agile es Unternehmen ermöglicht hat, dem Markt einen Schritt voraus zu sein, ist der neue Ansatz für die Softwareentwicklung nicht ohne Schattenseiten. Besondere Probleme entstehen, wenn Teams beginnen, mit hoher Geschwindigkeit und in größerem Rahmen zu arbeiten. Einige der wichtigsten Herausforderungen sind:

  • Fehlen einer zentralen Informationsquelle für bessere Transparenz
  • Verzögerte Feedback-Schleifen verlängern die Kurskorrektur
  • Eine Vielzahl von Tools wird verwendet; jedes Tool arbeitet in Silos mit eigener Berichterstattung
  • Manuelle Datenerfassung und Kennzahlenberechnung ist umständlich, fehleranfällig und erfolgt nicht in Echtzeit

Telemetrie: Automatisierte Überwachung und Messung für SDLC-Exzellenz

Es ist möglich, diese Herausforderungen mit kontinuierlicher automatisierter Datenerfassung, Messung und Überwachung früh im SDLC zu überwinden, angefangen von der Story über das Coding bis hin zur Bereitstellung. Dieser Left Shift im Softwareentwicklungszyklus wird es für DevOps-Teams viel einfacher machen, nahtlos zu arbeiten, Engpässe zu erkennen und frühzeitig Korrekturmaßnahmen zu ergreifen.

Agile und DevOps sind fortlaufende Prozesse, die konsequentes Feedback zur Verbesserung erfordern. Alle Phasen des Softwareentwicklungs-Lebenszyklus (Software Development Lifecycle, SDLC) wie Anforderungserfassung, Programmierung, Erstellung, Test, Bereitstellung und Freigabe können durch kontinuierliche Messungen und Überwachung von Schlüsselkennzahlen in den frühen Phasen des SDLC verbessert werden.

Telemetrie bezeichnet die automatische Aufzeichnung und Übertragung von Daten aus entfernten oder unzugänglichen Quellen an ein IT-System an einem anderen Ort zum Zwecke der Überwachung und AnalyseSie erleichtert die ständige Überwachung und die Darstellung von Diagrammen für die Beteiligten in Echtzeit, um eine schnelle Identifizierung von Problemen zu ermöglichen. So können Teams Probleme frühzeitig beheben und verhindern, dass sie sich zu Komplikationen entwickeln, deren spätere Behebung teuer werden kann. Mit Telemetrie ist es sogar möglich, die Muster wichtiger Geschäfts- und Technologiekennzahlen zu ermitteln und bei Anomalien Warnmeldungen zu erstellen.

Vorlaufende und nachlaufende Indikatoren im Vergleich

Vorlaufende Indikatoren sind wie Eingaben und messen Aktivitäten, die zur Zielerreichung notwendig sind. Auch wenn sie schwer zu messen sind, lassen sie sich leicht direkt beeinflussen, um bessere Ergebnisse zu erzielen. Nachlaufende Indikatoren sind wie Outputs, sie messen die tatsächlichen Ergebnisse. Obwohl sie leicht zu messen sind, ist es nicht einfach, sie direkt zu verbessern.

DORA-Kennzahlen, die sich auf die Markteinführungszeit und die Qualität konzentrieren, fallen unter die Kategorie der nachlaufenden Kennzahlen. Mehrere Faktoren wirken sich jedoch indirekt auf sie aus. Vorlaufende Kennzahlen können diese Faktoren messen, und wenn sie kontinuierlich verbessert werden, wirken sie sich direkt auf die nachlaufenden Kennzahlen für Geschwindigkeit und Qualität aus.

Im Rahmen der Anwendung müssen Organisationen grundlegende Leistungsindikatoren identifizieren und die vorlaufenden Kennzahlen definieren. Die folgende Tabelle ist ein guter Ausgangspunkt für die Definition von vorlaufenden Kennzahlen. Sie ist zwar nicht umfassend, kann aber zur Erstellung von Baselines und zur Beobachtung der Trends verwendet werden. Indem wir die Richtung des Trends bestimmen, können wir verstehen, ob sich die Teams auf dem richtigen Weg befinden.

Image

Datenerfassung, -messung und -präsentation automatisieren

Organisationen, die damit anfangen wollen, sollten die zu messenden Leistungsindikatoren identifizieren, d.h. die Leitmetriken definieren. In einem nächsten Schritt sollten sie verschiedene SDLC-Tools identifizieren, mit denen Daten erfasst werden können. Die erfassten Daten müssen verarbeitet und gespeichert werden. Einige der erfassten Daten können direkt präsentiert werden, während der Rest berechnet werden muss. Nach der Berechnung sollten die Daten der Kennzahlen visuell in Form von Diagrammen dargestellt werden, damit die Teams sie auswerten und Erkenntnisse über Fortschritte und Engpässe ableiten können, die sie daran hindern, zu den nachlaufenden Kennzahlen zu gelangen.

Der oben beschriebene Prozess der Datenerfassung, -berechnung und -präsentation sollte vollständig automatisiert sein, damit die Teams für die definierten Kennzahlen kontinuierliche Einblicke erhalten können. Außerdem sollte die Telemetrie frühzeitig in den SDLC eingebunden werden, damit die Teams Zugang zu den Erkenntnissen haben und Korrekturmaßnahmen ergreifen können.

Das unten stehende Architekturdiagramm stellt eine einfache 3-stufige Microservices-basierte Implementierung dar, die bestehende Visualisierungsplattformen wie Grafana nutzt.

Image

Warum Telemetrie?

  • Die konsolidierte Ansicht der SDLC-Daten aus dem Telemetrie-Dashboard unterstützt die datengesteuerte Entscheidungsfindung. Das Telemetrie-Dashboard kann auch eine unternehmensweite, robuste Programmsteuerung bieten, um die Qualität und Zuverlässigkeit des SDLC zu verbessern.
  • Das Telemetrie-Dashboard kann tiefe Echtzeiteinblicke in den gesamten Softwareentwicklungszyklus bieten, um Feedbackschleifen zu beschleunigen und den Beteiligten zu helfen, fundierte Entscheidungen für bessere Produktversionen zu treffen.
  • Unternehmen, die früh im SDLC in Telemetrie investieren, sparen sich wochenlangen Aufwand für das Reporting von DevOps- und SDLC-Kennzahlen. Das führt zu schnelleren Durchlaufzeiten, besseren Entscheidungen und größerer Transparenz.

Sprint-Zustand

Telemetrie Dashboard – Sprint Health

Abschließende Gedanken

Der Left Shift der Telemetrie in der Agile-DevOps-Journey ist wirklich bemerkenswert. Der Zugriff auf telemetrische Daten in der Pre-Prod-Umgebung hat es dem DevOps-Team ermöglicht, Feedback zu automatisieren und Anwendungen in Echtzeit zu überwachen. Als Ergebnis können Teams Probleme einfach visualisieren und schneller nach ihrer Entstehung beheben, was eine beschleunigte Softwarebereitstellung und eine verbesserte Markteinführungszeit gewährleistet.

 

Zugehörige Inhalte