Die Lösung des magischen Dreiecks
Mit DevOps Performance steigern
Im digitalen Zeitalter integrieren viele Unternehmen binnen Tagen oder sogar Stunden neue Funktionen in ihre Software-Anwendungen. Neben einer agilen Entwicklung muss die IT-Abteilung aber weiterhin die Anforderungen eines professionellen IT-Betriebs abdecken: hohe Verfügbarkeit und Stabilität. Dieser Spagat gelingt mit DevOps.
Projektmanager kennen das „magische Dreieck“. Es beschreibt den Zusammenhang von Zeit, Kosten und Qualität, wenn es darum geht, einen Auftraggeber zufriedenzustellen. Die drei Größen stehen im Zielkonflikt zueinander: Wer schneller liefern möchte, muss in der Regel höhere Kosten oder Abstriche bei der Qualität bzw. beim Lieferumfang in Kauf nehmen. Magisch ist daran zunächst einmal nichts.
Als magisch lässt sich die Kunst bezeichnen, das Dreieck auszubalancieren. Was DevOps darüber hinaus anstrebt, ist ein Ausbalancieren auf höherem Niveau: schnellere Lieferung bei gleichzeitig hoher Qualität. Das dies auch gelingt, belegt der „State of DevOps Report 2016“ von Puppet. Demnach haben Unternehmen, die DevOps anwenden, rund zweieinhalbmal kürzere Durchlaufzeiten und verbuchen eine dreimal geringere Fehlerquote bei Changes (siehe Grafik).
Die Vorteile durch Prozessoptimierung und den Einsatz neuer Technologien lassen sich in Geschäftswert ummünzen, indem sich aus dem höheren Liefertempo und mehr Zeit für Innovation konkrete Wettbewerbsvorteile ziehen lassen.
Was ist das Neue an DevOps?
Virtualisierung und Cloud Computing sind die Schlüsseltechnologien für DevOps. Sie ermöglichen es, den Aufbau und die Verwaltung von IT-Infrastruktur mittels Software komplett zu automatisieren und virtuell unbegrenzt zu skalieren. Mit „Infrastructure as Code“ (IaC, Infracode) wird die Betriebsumgebung Teil des Programmcodes. Dadurch können Prinzipien der Softwareentwicklung auf die Rechenzentrumsressourcen angewendet werden. Der Infracode untersteht der Versionskontrolle und dem Prozess der kontinuierlichen Integration (CI, Continuous Integration).
In der Folge wird die Betriebsumgebung durch Infracode und Cloud-Dienste schnell reproduzierbar. Ein manuelles Aufsetzen und Administrieren dedizierter Server gehört damit der Vergangenheit an. Anstatt einige wenige Umgebungen für Entwicklung, Test, Abnahme und Produktion zu pflegen, werden bei Bedarf auf Knopfdruck von Grund auf neue, stets aktuelle und identische Umgebungen erstellt. Ein Team bringt also nicht mehr eine neue Softwareversion in eine bestehende Umgebung, sondern jede neue Softwareversion kommt in Form einer neuen Umgebung.
High-performing-Teams verteilen häufiger neue Software und haben viel kürzere Lieferzeiten.
200 x häufigere Deployments
2,555 x kürzere Lieferzeiten
3 x geringere Fehlerrate bei Changes
24 x schnellere Wiederherstellung nach Ausfällen
High-Performing-Teams verbringen weniger Zeit mit ungeplanten Arbeiten oder Doppelarbeit. Das bedeutet, dass sie mehr Aufgaben erledigen können 29 % mehr investierte Zeit in neue Aufgaben, ohne die Qualität oder die Sicherheit der Systeme zu gefährden. High-performing-Teams verbringen weniger Zeit mit der Lösung von Security-Themen, weil sie Security in jeder Phase der Software-Entwicklung und -Lieferung mit berücksichtigen.
50 % weniger Zeit für die Behebung von Security-Themen
22 % Zeitersparnis bei ungeplanten und doppelten Arbeiten⏳
Quelle: „State of DevOps Report 2016“, Puppet
Systeme regulieren sich selbst
Dabei ist „auf Knopfdruck“ noch nicht die Spitze: Vielmehr soll die Anwendung selbst oder ein im Entwicklungs- und Deploymentprozess unterstützende System erkennen, wenn Bedarf an einer neuen Umgebung besteht, und die erforderlichen Schritte automatisch ausführen. Dadurch wird beispielsweise die vollautomatische Testausführung möglich oder die Implementierung resilienter, skalierbarer Produktivsysteme.
Noch weiter gedacht gelangt man mittels systematischen Monitorings zu einem sich selbst regelnden System aus Softwarekomponenten, das in der Lage ist, Störungen zu erkennen und eigenständig zu beheben. Dabei werden Störungen nicht mehr nur als betriebstechnische Probleme verstanden. Auch gemessene Anomalien im Benutzerverhalten können eine automatische Reaktion des Systems bewirken. Wird das jüngste veröffentlichte Feature von den Benutzern nicht angenommen oder ist es fehlerhaft, was sich beispielsweise in einer verschlechterten Conversion Rate äußert, kann das System selbsttätig eine erfolgreichere Vorversion wiederherstellen.
Neuentwicklungen können somit häufig, schnell und unkompliziert in Produktion gebracht werden. Nicht selten rollen Teams bei Continuous Delivery mehrmals am Tag neue Versionen aus und erproben sie unter Live-Bedingungen.
DevOps als kulturellen Wandel verstehen
Damit so ausgeklügelte Systeme geschaffen werden können, muss bereits bei der Konzeption der Software über deren Betrieb und entsprechende Anforderungen nachgedacht werden. Daraus resultieren fundamentale Designentscheidungen.
Der Name „DevOps“ sagt bereits, dass Entwickler und Administratoren von Anfang an Hand in Hand mit derselben Zielsetzung arbeiten. DevOps ist also nicht nur technologischer Fortschritt, sondern erfordert ebenfalls organisatorische und kulturelle Veränderung.
Für DevOps gibt es keine Blaupause. Um das Konzept erfolgreich einzuführen, genügt es nicht, allein die Werkzeugkiste zu öffnen. Man muss sich den Menschen zuwenden und den Prozessen, in denen sie arbeiten. Jedes Unternehmen muss individuell vorgehen, um einen geeigneten Transformationsprozess in Gang zu setzen. Dann kann doch etwas Magisches entstehen.
Mehr zu DevOps by direkt gruppe und unserer DevOps-MetroMap finden Sie auf devops.direkt-gruppe.de
Dieser Artikel erschien in der direkt informiert 01/2017. Weitere Artikel aus der Ausgabe lesen Sie hier: direkt informiert 01/2017, Schwerpunkt: Orientierung