Agilität und Kundenorientierung weiter gedacht führen zu DevOps. Die neue Methodik erfordert ein Umdenken, erhöht aber richtig eingesetzt die Produktivität und Kundenzufriedenheit. [...]
Agile Software-Entwicklungsmethoden wie Scrum und Kanban gehören heute zum Industriestandard. Nach anfänglicher Skepsis haben sie sich auf breiter Front durchgesetzt, weil sie schnellere Release-Zyklen ganz nahe an den Anforderungen des Kunden ermöglichen. Dadurch steigt die Qualität der Software-Services und damit die Zufriedenheit der Kunden. Der nächste logische Schritt heißt DevOps, ein Kunstwort aus Development und IT Operations. Auch hier überzeugen die Vorteile, die die Methodik bietet. Nur wenn die beiden ehemaligen „Silos“, die Software-Entwicklerteams und IT Operations, eng zusammenarbeiten, werden sie für ihre Kunden die bestmögliche Lösung entwickeln. DevOps-Teams sind im Durchschnitt 1,4 Mal innovativer als getrennt voneinander arbeitende Geschäftseinheiten (siehe „2019 Global Developer Report“ von GitLab). Auch Integrations- und Akzeptanztests, die in rund der Hälfte der Unternehmen zu Verzögerungen und damit zu einer drohenden verspäteten Auslieferung führen, lassen sich mit DevOps besser meistern. Insbesondere Integrationstests sind essenziell für eine vollständige Automatisierung des Deployment-Prozesses.
Cloud-Services mit extrem kurzen Release-Zyklen, Container und der Aufstieg von Managed Kubernetes zum Beispiel bei den Public-Cloud-Anbietern Amazon, Microsoft und Google zwingen Unternehmen dazu, alte Muster aufzubrechen und Teams zu bilden, die alle benötigten Rollen und Fähigkeiten abdecken und so die neue Realität besser abbilden. Der Betrieb der Software als Service gehört heute, zusammen mit Development und Deployment, direkt zur Wertschöpfungskette und bestimmt maßgeblich über den Markterfolg der Lösung. Denn eine Anwendung beziehungsweise ein Web-Service haben schließlich nur Wert, wenn sie performant und problemlos im produktiven Einsatz laufen.
Cross-funktionale Teams bilden
In der alten Welt konzentrierte sich die Software-Entwicklung auf die Anwendung, innovative, neue Features und eine kurze Time-to-Market. Ihr Job war nach der Ablieferung des neuen Releases erledigt. Der Fokus der Administratoren lag danach auf der Infrastruktur, auf 24/7-Verfügbarkeit, hoher Performance, kurzen Latenzzeiten und Stabilität. Die „Wall of Confusion“, das heißt der Verantwortungsübergang zwischen beiden Geschäftseinheiten wird in der neuen Welt mit Herausforderungen wie Continuous Delivery und Continuous Integration aber zunehmend obsolet, ja hinderlich. Starres Silodenken würde dazu führen, dass eine Geschäftseinheit die Versäumnisse der anderen zeit- und kostenintensiv ausbügeln muss. Je später das Feedback, desto größer die Schleife und desto teurer die Korrektur und Anpassung.
Veränderungen für Devs und Ops
DevOps ist jedoch kein Selbstläufer und verlangt Development und IT Operations einiges ab. Software-Entwickler werden sich stärker mit der Konfiguration von CI/CD-Pipelines und Containern, mit Fragen der IT-Sicherheit (DevSec) und mit der Auslieferung neuer Releases beschäftigen müssen. Neu für das DevOps-Team werden Infrastructure as Code, der Umgang mit der Versionsverwaltung und automatisierte Tests sein. Der IT-Dienstleister ConSol empfiehlt ein methodisches Vorgehen nach bewährten Best Practices.
Wie bei jedem Projekt startet man auch bei einem DevOps-Projekt mit einer klaren Bestandsaufnahme der Ist-Situation. Daran schließt sich die Auswahl der Projektwerkzeuge und des initialen DevOps-Technologie-Stack an. Standardisierte Projektwerkzeuge reduzieren Komplexität und erleichtern die Zusammenarbeit zwischen Entwicklung und Administration.
Danach wird über die Zusammensetzung des DevOps-Kernteams entschieden. Verfügen alle Mitglieder des Teams über die Qualifikation, die sie zur Erfüllung ihrer Aufgabe benötigen? Sind Schulungen zum Aufbau der erforderlichen Skillsets sinnvoll? Dieser Aspekt wird bei der Einführung von DevOps gerne vernachlässigt.
Klare, messbare Ziele definieren
Klar definierte KPIs für das DevOps-Team erleichtern die Fortschrittskontrolle, führen zu einer kontinuierlichen Verbesserung und erhöhen so die Produktivität und die Kundenzufriedenheit. Zu den Business-relevanten KPIs zählen unter anderem: die „Lead Time“, das heißt die Zeit vom Start der Entwicklung eines Features bis zu dessen Fertigstellung und Deployment sowie die Häufigkeit und Dauer der Deployments. Hinzu kommen Performance-Parameter wie der Daten-Durchsatz und die Antwortzeiten im produktiven Einsatz sowie technische Parameter wie Speicherbedarf und Prozessorauslastung. Hilfreich ist zudem, ein Lastprofil des ausgerollten Service zu erstellen mit dem Ziel, eine optimale Performance und möglichst kurze Latenzzeiten zu erreichen und um unerwartete Über- und Unterlast zu erkennen, um dann darauf reagieren zu können (zum Beispiel durch Hochskalieren des Clusters). Fehler beziehungsweise Unzulänglichkeiten im Betrieb sollten so schnell wie möglich erkannt und behoben werden.
Die Erfahrung hat gezeigt, dass eine auch vom Top-Management getragene gemeinsame DevOps-Vision den Erfolg von DevOps-Projekten beflügelt. DevOps ist nicht nur eine neue Methodik zur Verbesserung von Prozessen, ihr muss auch eine neue Unternehmenskultur zugrunde liegen. Entwickler und Administratoren müssen jeden Tag enger zusammenarbeiten und miteinander kooperieren. Dabei hilft auch räumliche Nähe. DevOps-Teams sollten außerdem ihr Projekt weitgehend selbst organisieren und eigene Budget-Verantwortung übernehmen.
DevOps-Praxistipps
Agilität weiter gedacht führt zwangsläufig zu DevOps. Unternehmen stoßen bei der praktischen Einführung der neuen Methodik jedoch häufig auf unterschiedliche Herausforderungen. So ist es ratsam, die Komplexität einer Anwendung, die mit DevOps entwickelt und bereitgestellt werden soll, im Blick zu behalten: Je komplexer die Anwendung, desto schwieriger gerät die Einführung von DevOps. Wie komplex eine Anwendung ist, lässt sich unter anderem über die Anzahl und Komplexität der Schnittstellen messen.
Auch für die Integration von Legacy-Anwendungen ist in der Regel eine sowohl kosten- als auch zeitintensive Migration nötig. Hinzu kommt, dass Legacy-Anwendungen teilweise unzureichend dokumentiert oder die Dokumentationen veraltet und falsch sind.
Besonderes Augenmerk sollte außerdem auf ein gutes Verständnis der Business-Prozesse, die mit der Anwendung interagieren, und auf eine adäquate Testabdeckung dieser Business-Prozesse gelegt werden. Zur Durchführung von automatisierten Tests für die Qualitätssicherung in der CI/CD- Pipeline sind unter anderem die Open Source Frameworks Citrus und Sakuli 2 von Consol eine ausgezeichnete Wahl. Nach erfolgreich absolvierten Tests besteht das Ziel darin, das neue Release automatisch auszurollen und in die bestehende IT-Landschaft zu integrieren, ohne dass die Mitarbeiter des Unternehmens ihre Arbeit unterbrechen müssen. Das Ziel heißt Zero Downtime.
Die Einführung von DevOps mag anfangs mit der Aufgabe alter Gewohnheiten und mit Umdenken verbunden sein. Aber es lohnt sich, diese Herausforderungen anzunehmen. Mit DevOps steigern Unternehmen ihre Produktivität, modernisieren und automatisieren ihre IT-Infrastruktur schneller, sind insgesamt innovativer und werden dafür mit zufriedeneren Kunden belohnt.
*Dr. Christoph Ehlers ist Technical Lead Software Engineering beim IT-Dienstleister Consol.
Be the first to comment