03.03.2020

DevOps – Vorbild für die digitale Transformation

So können agile Methoden die Digitalisierung von Unternehmen vorantreiben.

Einerseits müssen Unternehmen immer schneller neue Marktanforderungen und Kundenwünsche erfüllen, anderseits die Zuverlässigkeit und Stabilität ihrer Angebote sicherstellen. Einen Lösungsansatz bieten agile Methoden. So können DevOps-Praktiken einer modernen IT als Vorbild für das gesamte Unternehmen dienen. 

Wer kennt es nicht: Je schneller man dringende Aufgaben erledigt, desto eher schleichen sich Flüchtigkeitsfehler ein. Dies gilt für alle Bereiche des Büroalltags, von Vertrieb und Abrechnung über Produktentwicklung und Projektmanagement bis zum Beantworten von Mails. Im Zuge der digitalen Transformation wird die Geschwindigkeit immer stärker zum Wettbewerbsfaktor. Doch wer dabei die Sorgfalt vernachlässigt, bleibt auf der Strecke.  

Insbesondere IT-Abteilungen kennen das Problem schon länger. Sie sollen schnell auf sich verändernde Marktbedingungen und technologische Möglichkeiten reagieren und gleichzeitig stabile, zuverlässige und sichere Services für Kunden bereitstellen. Häufig führt dies dazu, dass in kurzen Zyklen neue Features entwickelt werden, diese jedoch anschliessend einen strengen, langwierigen Abnahmeprozess durch den IT-Betrieb durchlaufen müssen. Resultat: Die Vorteile erhöhter Geschwindigkeit durch agile Entwicklungsmethoden verpuffen. Doch wie können diese Geschwindigkeitsgewinne wirklich genutzt werden?

Was ist DevOps?

Einen Ausweg bietet DevOps – ein Kunstwort aus Development (Entwicklung) und Operations (Betrieb). Dieser Ansatz versucht, durch die umfassende Betrachtung von Kultur, Automation und kontinuierlicher, datengetriebener Verbesserung die Entwicklung nachhaltig zu beschleunigen sowie die zum Teil widersprüchlichen Ziele von Dev und Ops zu vereinen. Auf diese Weise kann die IT schnell auf Kundenbedürfnisse reagieren und gleichzeitig einen stabilen Betrieb gewährleisten. 

Im Rahmen der Einführung damit verbundener agiler Mindsets und Methoden liegt der Fokus häufig auf der Optimierung des Produktentwicklungszyklus. Ziele sind eine kontinuierliche Bereitstellung von Entwicklungsschritten, die Bildung funktionsübergreifender Teams aus allen relevanten IT-Experten sowie eine stärkere Zusammenarbeit zwischen Fachbereichen und IT.

Das traditionelle Vorgehen

Die Vorteile von DevOps werden vor allem im Vergleich mit herkömmlichen Abläufen deutlich. Bislang wird am Ende eines Entwicklungsschrittes das neue Produktinkrement zur produktiven Bereitstellung an den IT-Betrieb übergeben. Entsprechend der klassischen Ausrichtung des IT-Betriebs auf optimale Stabilität und Verfügbarkeit der Lösungen wird der Prozess durch detaillierte Übergabe- und Abnahmekriterien begleitet. Diese führen jedoch unweigerlich zu Verzögerungen. Zudem fehlt nach erfolgreicher Inbetriebnahme neuer Releases häufig eine Feedbackschleife, damit die Entwickler aus Fehlern lernen und andere Produkte auf die Anforderungen des Betriebs ausrichten können.  

Das klassische sequenzielle Vorgehen führt oftmals auch zu einer späten Berücksichtigung von Anforderungen aus dem Bereich IT-Security und Compliance. So werden Datenschutz- oder Sicherheitsüberprüfungen meist erst kurz vor dem Go-Live durchgeführt. Decken diese grössere Probleme auf, muss das Produkt im schlimmsten Fall völlig neu entwickelt werden.  

Der neue Ansatz: DevOps

Dagegen umfasst das DevOps-Vorgehen auf Basis gängiger agiler Frameworks keine eigene Architektur- oder Planungsphase. Es bindet alle relevanten Experten und Stakeholder von Anfang an in das Entwicklungsvorhaben ein. Nach dem Grundsatz „Shift left“ werden neben den funktionalen auch die nicht-funktionalen Anforderungen in den frühen Phasen des Projekts betrachtet. Darunter fallen insbesondere die Bereiche IT-Security und Datenschutz sowie vertragliche Anforderungen und interne Standards. Die Erweiterung des Begriffs auf DevSecOps betont die Integration von Sicherheitsaspekten in alle Phasen des Entwicklungszyklus. 

DevOps berücksichtigt die vielfältigen Anforderungen an ein Projekt durch eine umfassende Betrachtung von technischen Massnahmen sowie die Optimierung der Entwicklungsprozesse entlang der Dimensionen: Kultur, Automatisierung, Lean Management, kontinuierliche Messbarkeit und abteilungsübergreifende Zusammenarbeit. Dadurch können Unternehmen ihre Vorhaben sowohl nachhaltig als auch schneller abschliessen.

Technische Veränderungen für die richtige Architektur

Dazu müssen aber sowohl technische als auch methodische Fragen beantwortet werden. Zu den technischen Herausforderungen zählen die Bereitstellung einer flexiblen Entwicklungsinfrastruktur und die Implementierung von Praktiken wie Continuous Integration, Continuous Delivery oder Continuous Deployment (CI/CD). Neben Prozessen für eine optimierte Entwicklung unterstützen geeignete Deployment-Strategien das Ziel, jederzeit auf Änderungen reagieren zu können und gleichzeitig das Risiko von Deployments zu minimieren.  

Deployment-Strategien

Beim Blue-Green Deployment werden einzelne Server temporär aus dem Produktivbetrieb herausgenommen, bis die Installation erfolgreich abgeschlossen ist. Canary Deployment bedeutet, dass neue Features auf einer kleinen Auswahl von Servern installiert und ausgerollt werden. Schrittweise folgen alle anderen Server der Produktionsumgebung. Alternativ lässt sich durch sogenannte „Feature Switches“ sicherstellen, dass Funktionen jederzeit (de-)aktiviert werden können. Diese Strategien gewährleisten, dass sich Deployments problemlos und sicher auch im laufenden Betrieb durchführen oder im Fall von Fehlern einfach zurücknehmen lassen.  

Darüber hinaus stellt die richtige Systemarchitektur eine entscheidende Voraussetzung für die erfolgreiche Skalierung des Projekts dar. Je mehr Abhängigkeiten zwischen den Systemkomponenten entstehen, desto schwieriger wird es für eine wachsende Zahl von Teams, gemeinsam ein Produkt zu bearbeiten. Durch eine lose gekoppelte Architektur, etwa in Form von Microservices, können dagegen viele kleine Entwicklungsteams effizient am Gesamtprodukt arbeiten, ohne dass schwierig zu steuernde Schnittstellen nötig sind. Diese Architektur ermöglicht es zudem, unterschiedliche Releasezyklen je Service zu etablieren. Dies ist ein weiterer wichtiger Schritt, um Kundenanforderungen flexibel zu erfüllen.  

5 Prinzipien auf dem Weg zum DevOps-Mindset

Neben den technischen Praktiken und der Systemarchitektur der Produkte unterstützen einige methodische Prinzipien das DevOps-Mindset. Als besonders relevant sind die folgenden fünf zu erachten:  

  1. Make our work visible (Transparenz erhöhen) 
  2. Limit work in progress (Arbeitsumfang eingrenzen) 
  3. Reduce batch size (Batch-Grösse reduzieren) 
  4. Reduce the number of handovers (Anzahl der Übergaben verringern)  
  5. Eliminate waste (Überflüssiges beseitigen) 

Die DevOps-Kultur ist geprägt von offener und transparenter Kommunikation entlang der gesamten Wertschöpfungskette – ungeachtet von Organisationsstrukturen oder Unternehmenshierarchien. Projekte werden rund um motivierte und fähige Teammitglieder aufgebaut. Dabei sind nicht nur die fachlichen Expertisen relevant, sondern auch ganz alltägliche Kenntnisse, etwa zum Umgang mit den verfügbaren Kommunikationsmitteln.  

Lektionen für das gesamte Unternehmen

Der DevOps-Ansatz kann als Vorbild für die digitale Transformation des gesamten Unternehmens dienen, denn hier sind ähnliche Anforderungen zu erfüllen. So müssen sich Mitarbeiter in volatilen Umgebungen, welche durch die Digitalisierung entstehen, auf das jeweilige Umfeld einlassen und sich zum Beispiel auf fachübergreifende, interkulturelle oder virtuelle Teams einstellen. Eine flexible Kommunikationskultur bildet die Grundlage für eine enge Zusammenarbeit von Kunden, Fachbereichen, Entwicklung und Betrieb, um schnell neue Lösungen bereitzustellen. 

Die Hierarchie ist dabei flach und dezentral verteilt. Entscheidungen werden dort getroffen, wo sich die Informationen befinden. Die Führungsebene konzentriert sich auf die Orchestrierung und das Einbringen von Kontextwissen sowie den Blick über den Tellerrand. So werden langwierige Vorlage- und Entscheidungsfindungsprozesse, wie sie in vielen Unternehmen existieren, ersetzt. Das ist eine wichtige Voraussetzung für schnelle Entscheidungen. 

Allen Beteiligten muss bewusst sein, dass in einem volatilen, unsicheren Umfeld stetiges Lernen unerlässlich ist. Dies lässt sich nur auf Basis einer modernen Fehlerkultur umsetzen, die ein Scheitern als wichtigen Lernprozess begreift (Fail Fast). In kurzen, stetigen Zyklen werden das Produkt, das Vorgehen und die Zusammenarbeit kontinuierlich überprüft und weiterentwickelt. Für alle kleinen und grossen Verbesserungsmassnahmen werden Hypothesen entwickelt und messbare Indikatoren formuliert, die Erfolg und Misserfolg beschreiben.  

Eine stetige Ausrichtung an messbaren Kriterien erlaubt es dem Team oder der Organisation, die eigene Entwicklung zu steuern und den Fortschritt zu bestimmen. Gemessen werden dabei Metriken zu Durchsatz, Deployment-Frequenz, Vorlaufzeit, Zuverlässigkeit, Fehlerrate, durchschnittliche Zeit zur Wiederherstellung sowie zu betrieblichen Erfolgsindikatoren wie Umsatz, Marktanteil und Unternehmenswert. Damit lassen sich die Prozesse kontinuierlich verbessern und Produkte flexibel auf die Anforderungen des Marktes ausrichten. 

DevOps

Fazit

DevOps beschreibt ein Mindset, das die Umsetzung von Transformationsvorhaben deutlich beschleunigt. Es hat sich bereits im Bereich Software-Entwicklung und IT-Betrieb bewährt. Die grundsätzlichen Denkweisen, Methoden und Praktiken lassen sich auch als Vorbild für die digitale Transformation des Unternehmens nutzen. Denn die umfassende Betrachtung aller Faktoren entlang der Wertstromkette ebnet den Weg der kontinuierlichen Verbesserung. CIOs müssen sich also mit agilen Methoden wie DevOps beschäftigen, um die IT zum Innovationstreiber und integralen Erfolgspartner des Business zu entwickeln. So profitieren insbesondere grosse Transformationsvorhaben, die häufig mehrere Jahre andauern, von cross-funktionalen Einheiten und dem DevOps-Mindset.