Beschleunigen Sie die Lieferung mit automatisierten Erkenntnissen in Echtzeit
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.
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.
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.
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.
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.
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.
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:
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 Analyse. Sie 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 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.
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.
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.
Abonnieren Sie den Newsletter, um über die neuesten Entwicklungen in der Branche auf dem Laufenden zu bleiben, einschließlich Einblicke in die Branche und innovative Lösungsmöglichkeiten.