Die Einführung von DevOps erfordert vielfach ein Umdenken in der Entwicklung und im IT-Betrieb. Aber dieser Prozess ist lohnenswert. Mit DevOps können Unternehmen ihre Produktivität steigern und die IT-Infrastruktur schneller modernisieren und automatisieren. Die Konsequenzen sind eine höhere Innovationskraft und letztlich auch zufriedenere Kunden.

Strebt ein Unternehmen eine hohe Agilität und Kundenorientierung an, wird unweigerlich das Thema DevOps ins Blickfeld rücken. Agile Software-Entwicklungsmethoden wie Scrum und Kanban sind inzwischen Industriestandard. Sie ermöglichen vor allem schnellere Release-Zyklen und damit die unmittelbare Umsetzung von Kundenanforderungen. Die Ergebnisse sind eine verbesserte Qualität der Software-Services und eine erhöhte Zufriedenheit der Kunden. Der nächste logische Schritt in puncto Agilität heißt aber DevOps, ein Kunstwort aus Development und Operations.

Die DevOps-Methodik, die darauf abzielt, dass die beiden ehemaligen „Silos“ – die Software-Entwicklerteams und IT Operations – eng zusammenarbeiten, bietet weitreichende Vorteile. Laut dem 2019 Global Developer Report von GitLab sind DevOps-Teams im Durchschnitt 1,4-mal innovativer als getrennt voneinander arbeitende Geschäftseinheiten. Auch Integrations- und Akzeptanztests, die in etwa der Hälfte der Unternehmen zu Verzögerungen und damit gegebenenfalls zu einer verspäteten Auslieferung führen, lassen sich mit DevOps besser bewältigen. Insbesondere Integrationstests sind dabei eine essenzielle Voraussetzung für eine vollständige Automatisierung des Deployment-Prozesses.

Die Bildung cross-funktionaler Teams

Herkömmlicherweise standen in der Software-Entwicklung die Anwendung, innovative, neue Features und eine kurze Time-to-Market im Vordergrund. Der Job der Entwickler endete mit der Lieferung des neuen Releases. Der Fokus der Administratoren lag anschließend auf der Infrastruktur, auf der 24/7-Verfügbarkeit, der hohen Performance, der Stabilität und kurzen Latenzzeiten.

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 und sogar 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 erfolgt, desto größer wird die Schleife und desto kostspieliger wird die Korrektur und Anpassung.

Die Veränderungen für Dev und Ops

DevOps stellt sowohl Development als auch IT Operations vor Herausforderungen. Software-Entwickler werden sich stärker mit der Konfiguration von CI/CD-Pipelines und Containern, mit Aspekten der IT-Sicherheit (DevSec) und mit der Auslieferung neuer Releases beschäftigen müssen. Und für das DevOps-Team gewinnen Themen wie Infrastructure as Code,  Versionsverwaltung oder automatisierte Tests an Relevanz.

Bei einem DevOps-Projekt sollte wie bei jedem anderen Projekt auch mit einer klaren Bestandsaufnahme der Ist-Situation begonnen werden. Anschließend geht es um die Auswahl der Projektwerkzeuge und des initialen DevOps-Technologie-Stacks. Schließlich muss über die Zusammensetzung des DevOps-Kernteams entschieden werden. Dabei sind folgende Fragen zu klären: 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? Die Beantwortung dieser wichtigen Fragen wird bei der Einführung von DevOps oft vernachlässigt.

Definition klarer und messbarer Ziele

Wichtig sind klar definierte KPIs für das DevOps-Team, die die Fortschrittskontrolle erleichtern, zu einer kontinuierlichen Verbesserung führen und so die Produktivität und die Kundenzufriedenheit erhöhen. 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.

Quelle: Consol

DevOps überwindet die Silo-Grenzen zwischen Development und IT Operations. Die neue Methodik schafft cross-funktionale Teams, die die Wünsche des Kunden schneller und besser erfüllen.

Hinzu kommen Performance-Parameter wie der Datendurchsatz und die Antwortzeiten im produktiven Einsatz sowie technische Parameter wie Speicherbedarf und Prozessorauslastung. Von Vorteil ist zudem die Erstellung eines Lastprofils des ausgerollten Services mit dem Ziel, eine optimale Performance und möglichst kurze Latenzzeiten zu erreichen. Dadurch kann auch eine unerwartete Über- und Unterlast erkannt, und darauf reagiert werden – zum Beispiel durch Hochskalieren des Clusters. Prinzipiell sollten Fehler beziehungsweise Unzulänglichkeiten im Betrieb so schnell wie möglich ermittelt und behoben werden.

Darüber hinaus haben zahlreiche Projekte gezeigt, dass eine auch vom Top-Management getragene gemeinsame DevOps-Vision den Erfolg von DevOps-Projekten fördert. 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 Budget-Verantwortung übernehmen.

Die DevOps-Praxistipps

Unternehmen stoßen bei der praktischen Einführung der DevOps-Methodik häufig auf unterschiedliche Herausforderungen. Folglich 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. Die Komplexität einer Anwendung kann unter anderem anhand der Anzahl und Vielschichtigkeit der Schnittstellen ermittelt werden.

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.

Ein besonderes Augenmerk sollte zudem 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 bieten sich unter anderem die Open-Source-Frameworks Citrus und Sakuli 2 von Consol an.

Nach erfolgreich absolvierten Tests besteht das Ziel darin, neue Releases 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.

Insgesamt betrachtet muss eines klar sein: Die Methodik DevOps erfordert in aller Regel ein Umdenken auf Unternehmensseite. Richtig eingesetzt aber erhöht sie in direkter Konsequenz die Produktivität und Kundenzufriedenheit.

Dr. Christoph Ehlers ist Technical Lead Software Engineering beim IT-Dienstleister Consol.

Consol