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.

DevOps und Value Streams

Value Streams umfassen alle Aktivitäten, die gemeinsam einen Mehrwert für den Kunden liefern – und zwar horizontal von Anfang bis Ende. Die Herausforderung besteht darin, Übergabepunkte in der Verantwortlichkeit zu eliminieren. Organisatorisch bedeutet DevOps den Wandel von einer funktional gegliederten Aufbauorganisation hin zu einer Organisation nach Value Streams.

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.

 

Mit DevOps zu Continuous Improvements

Unternehmen, die von DevOps profitieren wollen, müssen eine Kultur der ständigen Prozessoptimierung (Continuous Improvement) ausprägen. Dieser Ansatz geht davon aus, dass Verbesserung nur dort entstehen kann, wo man Dinge verändern kann und darf. Es gilt also, Verantwortung zu teilen. Darüber hinaus kann nur mit einer toleranten Fehler- und einer klaren, unmittelbaren Feedback-Kultur ein kontinuierlicher Verbesserungsprozess gelingen. Die Energie soll dafür verwendet werden, den nächsten Schritt zu tun, und nicht dafür, die Verantwortlichen für einen Fehler auszumachen.

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