Schriftliche DevOps-Schulung
Wie löst DevOps Ihre IT-Probleme?
Sie stellen kontinuierlich bereit
Unternehmen jeder Größe vom jungen Start-up bis zu Fortune-100-Unternehmen und mit ganz unterschiedlichen Softwareprodukten und -diensten haben es bereits gezeigt: Mit DevOps führen kleine, unabhängige und eigenständige Teams jeden Tag Dutzende Produktions-Deployments durch. Sie entwerfen, bauen, liefern und testen in produktionsnahen Umgebungen. Sie bringen Ihren Code nicht mehr alle drei Monate nach Mitternacht in Produktion, während alle anderen schlafen. Sie tun es mehrmals täglich und vor allem während der üblichen Arbeitszeit, während Kunden und Nutzer im Markt weiterhin von Ihrer Software profitieren.
Mit DevOps können Sie häufig kleine Funktionen ausliefern. Mit Dark Launches können Sie auch kleine Teile sehr umfangreicher Funktionen regelmäßig in Produktion bringen. Sie bleiben dort inaktiv, bis Sie die große Funktion über eine Konfigurationseinstellung einschalten. Schon diese Technik kann den Arbeitsalltag Ihres Teams deutlich verbessern. Sie vermeiden Big-Bang-Rollouts mit unvorhersehbaren Nebenwirkungen auf bestehende Produktionssysteme sowie Chaos und gegenseitige Schuldzuweisungen.
Sie richten Ihre Teams an Ihrem Auftrag aus
Wenn Sie Ihrem Markt dienen und sich einen größeren Auftrag als Ihre Konkurrenz setzen, stellen Sie Ihre IT mit langfristigen Teams auf. Diese arbeiten an Produkten, Dienstleistungen, Fähigkeiten und Microservices für interne oder externe Kunden. Temporäre Projektteams lösen sich dagegen auf, sobald das Projekt abgeschlossen ist, manchmal sogar früher.
In temporären Projektteams können Einzelne ihre Beiträge kaum eigenverantwortlich gestalten. Sie wissen selten, wie ihr Projekt zum übergeordneten Auftrag beiträgt, und erhalten keine angemessene Rückmeldung. Verschiedene Projekte weisen ihnen laufend Aufgaben aus ihrem Fachgebiet zu, etwa Datenbankentwicklung, Frontend-Design oder Übersetzung. Dadurch werden sie ständig unterbrochen.
In langfristig aufgestellten Teams übernehmen die Teams bereitwillig Verantwortung für ihre Arbeit und die IT- und Geschäftsleistung, die ihr Durchsatz ermöglicht. Sie wissen genau, welche Rolle ihre Beiträge im übergeordneten Auftrag spielen und wie wichtig sie dafür sind.
Sie bauen Systeme, um Geschäftsziele zu erreichen
Sie und Ihre Teams wissen, dass Sie dafür bezahlt werden, Kunden zu betreuen und den Auftrag Ihrer Organisation zu erfüllen. Sie gehen deshalb respektvoll mit der Zeit und den Ressourcen Ihrer Organisation und Ihrer Kunden um. Vor einem langfristigen Projekt erproben und prüfen Sie den erwarteten geschäftlichen Nutzen der IT-Lösung. Sie zeigen Kunden Modelle, Prototypen, A/B-Varianten oder vereinfachte Versionen des geplanten Produkts. Sie messen und dokumentieren Reaktionen und Feedback, um zu verstehen, wie Sie Produkt und Dienst verbessern können und ob sie Ihren Kunden überhaupt gefallen.
Sie fügen Ihrem Produkt keine Funktionen allein aufgrund eines guten Gefühls hinzu. Sie erproben Ideen und sammeln konkrete, überprüfbare und reproduzierbare Belege dafür, dass Ihre Lösung und die dafür investierten Ressourcen voraussichtlich zum Geschäftsergebnis beitragen und Ihren Arbeitgeber positiv von der Konkurrenz abheben.
Sie bauen Qualität und Überwachung von Anfang an ein
Sie schaffen in jeder Phase der Softwarebereitstellung und des Betriebs schnelle, verlässliche und wirksame Feedbackschleifen. Qualität ist Aufgabe aller Teams. Deshalb achtet jeder darauf, sie von Anfang an einzubauen. Um sich zu vergewissern, dass Sie gute Arbeit geleistet haben, warten Sie nicht auf die Rückmeldung eines anderen Teams. Sie brauchen auch keine Erlaubnis von außen, um Ihren Code in Produktion zu bringen. Sie vertrauen auf Peer-Reviews von Entwurf, Code, Tests und Infrastruktur in Ihrem Team.
Für jede mess- und testbare Funktion richten Sie automatisierte Tests und Überwachung durch Telemetrie ein. Jede Funktion, für die sich der Aufwand für Programmierung und Auslieferung lohnt, verdient kontinuierliche, verlässliche, schnelle und konsistente automatisierte Tests. Sie verdient ebenso kontinuierliche Überwachung und integrierte Analysen. So prüfen Sie in allen Umgebungen, ob die Funktion den beabsichtigten Nutzen bringt, sowohl in Produktion als auch außerhalb davon.
Jeder Check-in in Ihr Code-Repository passt Ihre Betriebsumgebungen automatisch an, strukturiert sie um oder baut sie bei Bedarf neu auf. Betroffene Anwendungen werden neu gebaut. Anschließend laufen alle automatisierten Tests, um bestehende Funktionen und das Ziel des letzten Check-ins zu prüfen. Nach erfolgreicher Prüfung werden dieselben Änderungen automatisch in Produktion übernommen.
Integrierte Analysen und Telemetrie überwachen und erfassen laufend wichtige Ereignisse in der Software und in ihren Betriebsumgebungen. Kennzahlen wie Bestellungen, Anmeldungen, CPU- und Arbeitsspeicherauslastung, CPU-Last, Fehleranzahl und Dauer von Datenbankabfragen werden fortlaufend erfasst und in Echtzeit dargestellt. Ihr Team erkennt nachteilige Folgen eines Deployments dadurch innerhalb von Minuten oder sogar Sekunden. Darum sind kurze Feedbackschleifen für zügige Arbeit entscheidend.
Aus Fehlern lernen und andere daran teilhaben lassen
Wenn ein Fehler auftritt, beheben Sie ihn ruhig und souverän. Sie ermitteln die Ursache anhand belastbarer Erkenntnisse aus automatisierten Tests und Telemetrie. Bemerken Sie nach der Behebung, dass ein Testfall oder Telemetriedaten fehlen, ergänzen Sie diese zusammen mit der Fehlerkorrektur im Code-Repository.
In einem komplexen System kann niemand alles wissen und vorhersehen. Fehler sind für Ihre Organisation daher ein Teil der Weiterentwicklung von Produkten und Diensten. Sie bieten Gelegenheit, zu lernen und sich zu verbessern. Sie und Ihre Organisation nutzen Fehler, um persönlich und als Organisation dazuzulernen.
Nachbesprechungen ohne Schuldzuweisung helfen Ihnen, Vorfallursachen noch besser zu erkennen und Methoden zu finden, mit denen Sie gleiche oder ähnliche Fehler künftig vermeiden. Was Ihr Team bei einem Vorfall über seine Arbeit und Software gelernt hat, wird zum Erfahrungswissen, von dem die ganze Organisation profitiert.
Sie und Ihr Team werden für den Fehler nicht bestraft. Anerkennung erhalten Sie für die Erkenntnisse, die Sie danach gewonnen und geteilt haben. Dank Ihres Beitrags wissen viele Teams in Ihrer Organisation, wie sie einen solchen Vorfall künftig vermeiden können.
Ihre Teams skalieren besser, wenn Ihr Unternehmen wächst
Stellen Sie sich eine durchschnittliche Organisation vor, die von 1 auf 1.000 Entwickler wächst. Als sie klein war, haben Entwickler ihren Code laufend gebaut und in Produktion gebracht. Mit dem Wachstum nimmt die organisatorische und bürokratische Hierarchie zu. Fehler werden stärker gefürchtet, und Deployments erfordern mehr Abstimmung und Kommunikation. Deshalb sinkt die durchschnittliche Anzahl der Code-Deployments pro Tag und Entwickler mit dem Wachstum meist oder bleibt bestenfalls gleich.
Leistungsstarke DevOps-Organisationen steigern dagegen die durchschnittliche Anzahl täglicher Code-Deployments pro Entwickler, wenn sie wachsen. Google, Amazon, Facebook, Netflix und Apple haben gezeigt, dass dies mit passender Softwarearchitektur, geeigneten Teams, einem klaren Auftrag, guter Führung und der richtigen Kultur möglich ist. Ihre Organisation kann die nächste sein, der das gelingt.
Das Originaldiagramm vergleicht, wie die Zahl der täglichen Deployments pro Entwickler mit der Teamgröße steigt.
Originaldiagramm ansehen ↗FAZIT
Leistungsstarke DevOps-Organisationen übertreffen ihre Konkurrenz in diesen Bereichen.
- 46-mal häufigere Code-Deployments.
- 440-mal kürzere Durchlaufzeit vom Commit bis zum Deployment.
- 96-mal schnellere durchschnittliche Wiederherstellung nach Ausfällen.
- 5-mal niedrigere Fehlerquote bei Änderungen (Änderungen schlagen mit einem Fünftel der Wahrscheinlichkeit fehl).
- Höhere Produktivität und höherer Durchsatz.
- Zuverlässigerer Code und Betrieb.
- Bessere Unternehmensleistung und höhere Kundenzufriedenheit.
- Bessere Marktdurchdringung, größerer Marktanteil und höhere Rentabilität (doppelt so wahrscheinlich).
- Stärkeres Wachstum der Marktkapitalisierung.
Der Vergleich umfasst Deployment-Häufigkeit, Durchlaufzeit, Wiederherstellungszeit und Fehlerquote bei Änderungen.
Originaldiagramm ansehen ↗