Aufgaben, Rollen, Organisation

DevOps in einer Two-Speed-Architektur

22.12.2015 von Oliver Bossert
Die Integration von Entwicklung und Betrieb kann die Bereitstellung neuer Anwendungen beschleunigen. Dieser DevOps-Ansatz ist allerdings eine umfassende Transformation, die unter Umständen nicht für alle Unternehmen geeignet ist.
  • Was IT-Verantwortliche beachten müssen, wenn sie ein DevOps-Modell in einer IT der zwei Geschwindigkeiten einführen möchten
  • Netflix hat eine cloudbasierte IT-Architektur entwickelt, in der Entwickler täglich Hunderte von Deployments vornehmen können
  • Mit der klassischen IT-Silostruktur ist beim DevOps-Ansatz vorbei; ein grundlegender Wandel der IT-Management-Strategie wäre zwingend nötig
  • Unternehmen können sich bei Prozess- und Governance-Änderungen einiges von Internetpionieren abschauen

Nachdem im Silicon Valley über zwanzig Jahre lang mit agiler Softwareentwicklung experimentiert wurde, ist "Agile" nun Mainstream geworden. Unternehmen im Silicon Valley und anderswo bedienen sich in irgendeiner Form dieser Entwicklungsmethode, deren Schwerpunkt unter anderem auf der schnellen Erstellung und häufigen Bereitstellung von Software und Systemupdates liegt. Der Nutzer wird dabei über den gesamten Prozess hinweg eingebunden.

Mit DevOps steht nun die nächste Innovationswelle in der Softwareentwicklung und -bereitstellung an. Mit diesem Ansatz können Softwareentwicklungsteams produktiver arbeiten, digitale Produkte und Dienstleistungen gelangen schneller auf den Markt, und die Kundenzufriedenheit steigt. In einem Fall ließ sich die durchschnittliche Dauer der Entwicklung und Implementierung von Code dadurch von 89 auf 15 Tage - also auf 17 Prozent der ursprünglichen Dauer - verkürzen (Schaubild 1).

Die Einführung eines DevOps-Modells kann erheblichen Wert schaffen
Foto: McKinsey Analyse

Softwareentwicklung in IT-Betrieb integrieren

Zahlreiche Unternehmen haben dieses Produktentwicklungskonzept bereits übernommen. Grundidee des Konzepts ist die Integration der Softwareentwicklung in den IT-Betrieb, damit Teams neue digitale Anwendungen häufiger und effizienter entwickeln, testen, herausbringen und warten können. Die Software wird nicht im luftleeren Raum, sondern ganz konkret für spezielle Geschäftsanforderungen und die Systemintegration entwickelt, und Entwickler und operative IT-Mitarbeiter sind für die Codebereitstellung und -stabilität gleichermaßen verantwortlich.

Bis jetzt ist es jedoch nur wenigen Unternehmen gelungen, die Vorteile von DevOps wirklich voll auszuschöpfen, ganz unabhängig von der Branche. Die Einführung agiler Systeme wirkte sich bislang meist nur auf die Zusammenarbeit kleiner Gruppen von Projektbeteiligten der Fachseite und einzelnen Anwendungsentwicklungsteams aus. Der Wechsel zu einem DevOps-Modell erfordert hingegen größere und systematischere Veränderungen, die erhebliche Auswirkungen auf die Zusammenarbeit zwischen allen Softwarebereitstellungsteams, operativen IT-Mitarbeitern und Projektbeteiligten der Fachseite haben könnten. Dies ist ein komplizierteres Unterfangen.

Agiles Projektmanagement
Prüfen von Anforderungen in agilen Projekten
Ohne die Priorisierung der Anforderungen des IT-Projekts drohen hohe Folgekosten in einzelnen Sprintphasen.
Verzögerungen durch exportierte Probleme
Neben dem Totalausfall eines Sprints gehören Verzögerungen zur Tagesordnung. Diese entstehen etwa bei unklar definierten Anforderungen, die eventuell im falschen Detaillierungsgrad vorliegen oder durch Überlastung des Product Owners verspätet priorisiert werden.
Zeitverluste durch fehlende Aufgabenzuordnung
Zunächst lassen sich nicht ausreichend gut definierte Anforderungen durch ohnehin erforderliche Routinearbeiten wie der Spezifikation technischer Anforderungen kompensieren. Später droht dagegen der Totalverlust ganzer Sprints.
Anforderungen treffen ungesteuert auf das Projektteam
Bei agilem Projektmanagement stehen viele Unternehmen noch immer auf der Bremse. Der Grund: Viele Projektverantwortliche müssen zusätzlich zu den Projektanforderungen weiterhin Aufgaben im Tagesgeschäft übernehmen.
Anforderungen laufen beim Product-Owner-Team zusammen
In einem Projektteam aus typischerweise sechs bis acht Mitarbeitern laufen alle Fäden beim Product Owner zusammen. Das Product-Owner-Team besteht aus maximal drei Personen. Der Product Owner managed alle an das Team herangetragenen Anforderungen. Das gilt sowohl vonseiten der Auftraggeber als auch der beteiligten Fach- und IT-Abteilungen sowie der Revision. Viele Unternehmen machen dabei den Fehler, Product Owner nicht ausreichend vom Tagesgeschäft freizuhalten.

Nicht jede Anwendung braucht DevOps

Für die meisten Großunternehmen ist die Neuausrichtung des IT-Betriebs an einer IT-Architektur der zwei Geschwindigkeiten, die stabile, transaktionsorientierte Systeme auf der einen Seite und schnell wechselnde Kundenanwendungen auf der anderen Seite umfasst, eine Voraussetzung für die Implementierung von Agilität und DevOps-Konzepten. Aber nicht jede Anwendung, die ein Unternehmen entwickelt, und nicht jedes Update in einer Umgebung mit zwei Geschwindigkeiten erfordert diese gemeinsame Zusammenarbeit, die das Herzstück eines DevOps-Modells ist.

Einige Mechanismen, die zur schnellen Entwicklung von E-Commerce-Anwendungen verwendet werden, sind zum Beispiel nicht für die Entwicklung oder Pflege von in COBOL entwickelten eher transaktionalen Anwendungen geeignet. In solchen Fällen ist die traditionelle Verteilung von Rollen und Verantwortlichkeiten auf IT-Betrieb, Softwareentwicklung und Projektbeteiligten der Fachseite möglicherweise besser geeignet.

Die Aufgaben für IT-Führungskräfte

Dieser Artikel zeigt auf, welche Überlegungen IT-Verantwortliche anstellen müssen, wenn sie ein DevOps-Modell in einer IT-Umgebung mit zwei Geschwindigkeiten einführen möchten (Schaubild 2). Sie müssen entscheiden, wie und wo neue Technologien wie Automatisierung und Cloud-Plattformen eingeführt werden sollen, und dabei berücksichtigen, welche Unternehmensteile am meisten von einem DevOps-Ansatz profitieren. Zudem müssen sie neue Produktionsprozesse und Steuerungsmöglichkeiten testen, damit IT-Betrieb und Softwareentwicklung trotz unterschiedlicher Geschwindigkeiten effektiv zusammenarbeiten können.

Folgende Faktoren sind für den DevOps-Einsatz in einer IT-Umgebung der 2 Geschwindigkeiten wichtig
Foto: McKinsey Analyse

DevOps mit zwei Geschwindigkeiten

In den vergangenen zehn Jahren haben digitale Unternehmen die herkömmliche Entwicklung und Pflege von Technologieinfrastruktur sowie die Softwareentwicklung und -verteilung auf den Kopf gestellt. Sie waren mit die Ersten, die ihre Softwareentwicklungsfunktionen in ihren IT-Betrieb integrierten und sich die kontinuierliche Bereitstellung kleiner Upgrades zum Ziel setzten. Zentrales Merkmal dieses neuen Konzepts ist die enorme Schnelligkeit, mit der Softwareänderungen designt, integriert, getestet, bereitgestellt und überwacht werden.

Die cloudbasierte IT-Architektur bei Netflix

Netflix hat beispielsweise eine cloudbasierte IT-Architektur entwickelt, die es den Entwicklern ermöglicht, täglich Hunderte von Deployments vorzunehmen. Die Website besteht aus Mikroservices, die in einer Cloud gehostet werden. Jeder Service wird von einem DevOps-Team gepflegt. Entwickler müssen keine Ressourcen beim IT-Betrieb anfragen, sondern können Code gemeinsam mit einem virtuellen Image direkt in die Produktionsumgebung einstellen. Beim Update eines virtuellen Image können neue Funktionen oder Services über eine auf Amazon Webservices basierenden Plattform in die bestehende Infrastruktur von Netflix integriert werden.

Anschließend werden die Images mit einem Subset von Nutzern in der Produktionsumgebung getestet. Sobald sie freigeschaltet sind, wird ein Teil der Zugriffe von der alten Versionen auf die neue Version umgeleitet. Erfüllt die neue Version nicht alle Anforderungen, wird der Datenverkehr mit Hilfe eines automatisierten Überwachungstools zurück zu den älteren Versionen geleitet. Dank dieser starken Automatisierung kann Netflix einen neuen Code binnen weniger Stunden in seiner Produktionsumgebung verteilen. Bei den meisten Unternehmen würde dies Wochen oder Monate dauern.

Natürlich haben Internetunternehmen wie Netflix den Vorteil, dass sie ihre IT-Architekturen von Grund auf neu gestalten konnten, ohne komplexe Altsysteme neu konfigurieren oder pflegen zu müssen. Und weil ihre wichtigsten Produkte - Webanwendungen - zu 100 Prozent auf ihre Kunden ausgerichtet sind, haben diese Unternehmen gelernt, rasch auf Kundenfeedback zu reagieren und "on the fly" neue Features und Verbesserungen herauszubringen.

Die Probleme für traditionelle Unternehmen

Im Gegensatz dazu stehen die meisten traditionellen Unternehmen, die in ähnlicher Weise ein DevOps-Modell einführen wollen, vor der Herausforderung, ihre älteren, transaktionsbasierten Systeme mit agilen Entwicklungsmethoden unter einen Hut zu bekommen. Noch komplizierter wird es dadurch, dass nicht jede Funktion in einem stationären Unternehmen einen DevOps-Ansatz benötigt - bei nicht zeitkritischen Erfassungssystemen wie dem Hauptbuch wäre das zum Beispiel der Fall. Diese Unternehmen müssen also nicht nur eine IT-Architektur der zwei Geschwindigkeiten entwickeln, sondern auch eine Organisation mit zwei Geschwindigkeiten managen.

Management einer Architektur der zwei Geschwindigkeiten

Mit einer IT-Architektur der zwei Geschwindigkeiten können große Unternehmen schneller innovative, kundenrelevante Produkte und Anwendungen auf den Markt bringen und gleichzeitig ihre alten IT-Systeme beibehalten, die weniger innovativ, aber notwendig für die Stabilität des Geschäfts sind. Bei einer solchen Architektur sind die entwickelten Softwareanwendungen stark mit der unterstützenden Hardwareinfrastruktur verzahnt.

In der Vergangenheit war der IT-Betrieb, also die Pflege von Software und Hardware, komplett von der Softwareentwicklung getrennt. Da sich vertikale ERP-Systeme jedoch immer mehr durchsetzen, Netzwerke immer häufiger virtualisiert werden und Software-as-a-Service-Modelle auf den Markt drängen, haben sich die beiden Seiten einander angenähert. Infolge dieser Entwicklungen sind Hardware-Stacks weniger komplex und für Softwareentwickler zugänglicher geworden.

Automatisierungstools für Softwarebereitstellung

In einer Umgebung mit zwei Geschwindigkeiten brauchen Unternehmen Automatisierungstools für eine kontinuierliche Softwarebereitstellung, insbesondere in der Test- und Produktionsphase. Mit solchen Tools lassen sich die Releases von Software-Updates, die Portierung von neuem Code und die allgemeine Verarbeitungsumgebung besser steuern. Vor allem jedoch können Automatisierungstools und cloudbasierte Technologien als Brücke zwischen IT-Altsystemen im Backend und kundenorientierten Anwendungen im Frontend fungieren und einen reibungslosen Ablauf von Test, Bereitstellung, Verteilung und Steuerung sowie Serversicherheit und neue Software-Releases gewährleisten (Schaubild 3).

Neuer Code ist bei Netflix innerhalb von einer Stunde in der Produktivumgebung verfügbar
Foto: Netflix

Cloud- und Automatisierungstechnologien bei Netflix

Eine IT-Architektur der zwei Geschwindigkeiten bietet einige entscheidende Vorteile; allerdings erfordert ihr Aufbau ein gewisses Maß an Zeit, sorgfältige Überlegungen und entschlossenes Handeln. Netflix hat beispielsweise den Großteil seiner Cloud- und Automatisierungstechnologien selbst entwickelt. Inzwischen gibt es für Unternehmen jedoch eine große Auswahl an Produkten und Paketen (zum Teil Open Source), mit denen sie eine ähnliche 2-Speed-Performance erreichen können.

Auf eines kommt es bei einer Architektur der zwei Geschwindigkeiten ganz besonders an: IT-Verantwortliche dürfen die Architektur nicht nur aus System- oder Prozesssicht betrachten, sondern müssen vor allem die benötigten Fähigkeiten im Blick haben. Dafür müssen sie herausfinden und klar definieren, welche Softwareanwendungen für mehrere Geschäftsbereiche relevant sind.

Aus dieser Fähigkeitenperspektive könnten sie dann zum Beispiel erkennen, dass einige für das Customer Relationship Management (CRM) des Unternehmens entwickelte Anwendungen einen DevOps-Ansatz erfordern, andere - z.B. Core-Banking-Systeme oder transaktionale Anwendungen - hingegen nicht. Die IT-Verantwortlichen können so ihre Ressourcen nach Bedarf auf "schnelle" und "langsame" Anwendungen verteilen - und soweit möglich von den entscheidenden Vorteilen des DevOps-Ansatzes profitieren.

IT-Organisation der zwei Geschwindigkeiten

Im Zusammenhang mit der für DevOps erforderlichen Technologiearchitektur und -infrastruktur sollten Unternehmen sich auch überlegen, ob sie verschiedene Prozesse und Governancestrukturen in der IT-Organisation und im gesamten Unternehmen ändern wollen.

Der DevOps-Ansatz stellt die etablierten Normen der Produktentwicklung in den meisten IT-Organisationen in Frage. Klassischerweise sind Infrastruktur (Hardware) und Anwendungsentwicklung (Software) in Unternehmen voneinander getrennt - so wie die Mitarbeiter für Entwicklung und Betrieb. Mit dieser Silostruktur wäre es bei einem DevOps-Ansatz vorbei - ein grundlegender Wandel in der IT-Management-Strategie. Zudem sollten sich IT-Verantwortliche bei der Einführung eines DevOps-Modells überlegen, wie die Technologiepartner in ihre Softwarebereitstellungsprozesse integriert sind. Dieser Trend zwingt einige Systemanbieter dazu, darüber nachzudenken, wie sie ihre Plattformen als Service zur Verfügung stellen können.

Die größte Aufgabe für IT-Verantwortliche ist es herauszufinden, in welchen Teilen des Unternehmens ein DevOps-Einsatz am sinnvollsten wäre. Dies wird vermutlich dort sein, wo Geschwindigkeit eine wichtige Rolle spielt und das Unternehmen Möglichkeiten sieht, seinen Kunden ein besseres Erlebnis zu bieten als seine Wettbewerber (z.B. ein Einzelhändler, der den Bezahlvorgang auf seiner Website mit Hilfe von DevOps verbessert, oder eine Bank, die auf ihrer Website neue Möglichkeiten anbietet, um die Entwicklung von Fonds zu verfolgen).

Dort, wo ein DevOps-Einsatz nicht besonders sinnvoll ist - weil Zuverlässigkeit und Stabilität der Software wichtiger sind als die Markteinführungszeit -, werden sich die IT-Verantwortlichen überlegen müssen, wie sie Softwareentwicklung und IT-Betrieb weiterhin voneinander getrennt halten können und welche Rollen und Prozesse sie für eine kontinuierliche Bereitstellung anpassen müssen.

Neudefinition von Rollen

Eine integrierte Produktentwicklung erfordert per se eine enge Zusammenarbeit zwischen Fachseite und IT - und in einigen Fällen auch neue oder neu definierte Rollen. Businessanalysten müssen die Anforderungen an neue Softwarefeatures und -funktionen so formulieren, dass Mitarbeiter aller Abteilungen sie verstehen können. Außerdem müssen sie diese Anforderungen flexibel und bereitwillig geringfügig ändern, wenn dies die Implementierung beschleunigen könnte. Ingenieure und Produktentwickler müssen funktions- und produktteamübergreifend zusammenarbeiten - bei einem DevOps-Modell ist die informelle Zusammenarbeit und Koordination zwischen Fachseite und IT tatsächlich noch wichtiger als formale Berichts- und Genehmigungsprozesse.

Softwaretester müssen mit Entwicklern und Businessanalysten zusammenarbeiten. Mit Ersteren klären sie zunächst Anfragen zu bestimmten Funktionen, Letzteren geben sie nach der Codeentwicklung direktes Feedback zur Funktionstüchtigkeit der Software. Bei DevOps warten die Endnutzer nicht mehr passiv auf fertige Software- oder Service-Releases, sondern werden bereits frühzeitig in Entwicklung und Test neuer Softwarefunktionen einbezogen und von den Unternehmen regelmäßig um Feedback gebeten.

Funktionsübergreifende Teams mit Vertretern aus Anwendungsentwicklung, Infrastrukturmanagement und IT-Betrieb sollten gemeinsam die Verantwortlichkeiten für die Stacks in der Abwendungspipeline klären. Bei einer kontinuierlichen Bereitstellung würde zum Beispiel ein gemeinsames Team sämtliche Prozesse (und die damit verbundenen Tools) dieser Entwicklungstätigkeit beaufsichtigen - also Anwendungsentwicklung, -test und -verteilung, Performance-Management und -Monitoring sowie Virtualisierung und Konfigurationsmanagement. Bisher war die Verantwortung hier zum Teil auf unterschiedliche Organisationen verteilt. Überdies sollten die Infrastrukturteams ein Mitspracherecht und die gleichen Entscheidungsbefugnisse wie die Entwicklerteams erhalten.

Neudefinition von Unternehmenskultur und Talentmanagement

Eine integrierte Entwicklung und kontinuierliche Bereitstellung ist nur in einer Unternehmenskultur möglich, die ihre Softwareentwickler mit gewissen Vollmachten ausstattet und ihre IT- und F&E-Berichtsstrukturen darauf ausrichtet. In den meisten Organisationen sind Produktentwicklung und IT-Betrieb räumlich voneinander getrennt und beschäftigen Mitarbeiter mit ganz unterschiedlichen Einstellungen, Fähigkeiten und Erfahrungen. Diese Barrieren müssen Führungskräfte von IT und Fachseite niederreißen. Statt zum Beispiel alle Entwickler dem Leiter Entwicklung und alle operativen Mitarbeiter dem Leiter Betrieb zu unterstellen, müssen in manchen Fällen bewusst andere Berichtswege festgelegt werden.

Darüber hinaus brauchen die Mitarbeiter entsprechende Schulungen; gegebenenfalls müssen auch die Gehaltssysteme angepasst werden. Während der Entwickler in einem klassischen Umfeld nur für die Anwendung verantwortlich ist, ist er in einer DevOps-Umgebung für die Qualität ihres Codes im operativen Betrieb verantwortlich. Sie müssen die Grundlagen des Betriebs beherrschen und ausgesprochen teamfähig sein, um sich bei Problemen in der Anwendungsentwicklung oder -verteilung gemeinsam mit dem Betrieb auf das richtige Prozedere zu einigen.

Angesichts dessen haben viele Unternehmen ihre Personalbeschaffungsprozesse bereits angepasst und halten nun verstärkt nach "Full Stack"-Teammitgliedern Ausschau - Experten, die sich mit sämtlichen Aspekten der IT auskennen und in der Entwicklung von Benutzeroberflächen ebenso versiert sind wie im Umgang mit Netzwerken und cloud-basierten Infrastrukturen.

Neudefinition von Prozessen und Governance

Um zu entscheiden, welche Aspekte der Softwarebereitstellung neu definiert oder vollständig automatisiert werden sollen, müssen sich Unternehmen die ganze Bankbreite der Prozesse anschauen. Ziel ist es, auf Entwicklungsseite bei Bedarf von den Vorteilen von Infrastruktur-as-a-Service zu profitieren und Code in einem standardisierten Verfahren in Test- und Produktionsumgebungen zu portieren. Herkömmliche Unternehmen können sich in puncto Prozess- und Governance-Änderungen für eine DevOps-Umgebung einiges von Internetpionieren abschauen.

Zum Beispiel wenden Internetunternehmen in der Entwicklung das Self-Service-Prinzip an: Entwicklungsteams können Code in Produktionsumgebungen testen, weiterentwickeln und verteilen, ohne ständig die Hilfe des Infrastrukturbetriebs anzufordern. Am Ende sind beide Teams gemeinsam für die Code-Performance verantwortlich.

Ein weiteres Merkmal von Internetfirmen sind konsequente, automatisierte Tests von neuem Code in sämtlichen Phasen des Anwendungsentwicklungsprozesses. In manchen Firmen werden alle 10 bis 15 Minuten automatisch aufwändige Tests durchgeführt. Darüber hinaus nutzen sie Advanced Analytics und andere Tools, um Code vorab auf Ausnahmen zu prüfen, und senden Entwicklern automatisierte Berichte zu jenen Codesegmenten, die mit hoher Wahrscheinlichkeit zu Fehlern führen.

Der Wechsel zu einer DevOps-Umgebung kann sowohl die Produktivität als auch die Markteinführungszeit von Softwareprodukten deutlich verbessern. Mit der Einführung einer neuen IT-Methode ist es dabei allerdings nicht getan. Gefragt ist eine unternehmensweite Transformation, bei der Prozess- und Governance-Fragen genauso Rechnung getragen wird wie Technologiethemen.