Schluss mit dem „Blame Game“ 5 Tipps auf dem Weg zu DevOps
DevOps in einem Unternehmen zu etablieren, geschieht nicht von heute auf morgen. Dabei klingt es so einfach: Software-Entwicklung und IT-Betrieb müssen eben enger zusammenarbeiten. Aber wie kann das tatsächlich gelingen?
Anbieter zum Thema

Oft wird bei Umsetzung von DevOps vergessen, dass die beiden involvierten Parteien, also Development und Operations, ganz unterschiedliche Ziele verfolgen: Für agile IT-Projekte zählt eine schnelle Time-to-Market, für den IT-Betrieb die Stabilität und Sicherheit der Software.
Neben dem gemeinsamen Mindset und Prozessen spielen auch die Auswahl der richtigen Tools und Technologien sowie die passende Strategie eine entscheidende Rolle. Die folgenden Faktoren sollten dabei berücksichtigt werden:
1. Mindset und Zusammenarbeit
Die größte Herausforderung in Sachen DevOps aber auch die wichtigste Voraussetzung, ist ein gemeinsames Mindset der Beteiligten in Entwicklung (Dev) und IT-Betrieb (Ops). Beide Parteien müssen die Notwendigkeit von DevOps erkennen und eine gewisse Sensibilität für die Herausforderungen und Bedürfnisse des jeweils anderen entwickeln. Das heißt auch, dass der IT-Betrieb als Stakeholder erster Klasse bereits ab der Anforderungsanalyse im Projekt aufgenommen und gehört wird.
Im Gegenzug muss die Entwicklung mehr Verantwortung für den Betrieb übernehmen. Es reicht nicht, dass neue Software-Releases in der Testumgebung fehlerfrei laufen – die Entwicklung ist auch dafür mitverantwortlich, dass die Software in der Produktion einwandfrei funktioniert. Dies sollte als Akzeptanzkriterium in der Definition-of-Done der agilen Projekte verankert werden.
Wichtig ist außerdem, dass Entwickler auch für eine gewisse Zeit nach dem Deployment für Fehleranalysen und -korrekturen im Rahmen eines 3rd-Level-Supports den Betrieb unterstützen. Vor allem wenn das IT-Projekt an einen externen Dienstleister gegeben wird, sollte die Beauftragung von vorneherein die notwendigen Unterstützungsleistungen des IT-Betriebs umfassen. Nur so lässt sich ein DevOps-Ansatz ohne Reibungsverluste realisieren.
2. Prozesse
Neben dem Mindset ist es wichtig, dass Dev und Ops gemeinsame Prozesse definieren. Nehmen wir als Beispiel das Deployment: Dieser Prozess setzt in einem DevOps-Vorgehen bereits zu dem Zeitpunkt ein, ab dem ein theoretisch auslieferbares Produktinkrement durch die Entwicklung bereitgestellt wird.
Spezifische Tests für die nichtfunktionalen Anforderungen wie Performance oder Security sichern vor dem Produktivgang die Betreibbarkeit des Systems ab. Nach dem Go-Live folgt eine Hyper-Care-Phase, in der Dev und Ops eng zusammenarbeiten und gemeinschaftlich die Verantwortung tragen, um auftretende Störungen schnell zu analysieren und zu beseitigen.
3. Automatisierung
Die weitgehende Automatisierung ist ein weiterer Aspekt eines DevOps-Ansatzes. Sie ermöglicht eine erhebliche Beschleunigung der Auslieferung neuer Releases. In der sogenannten Deployment-Pipeline wird der in der agilen Entwicklung eingesetzte Continuous-Integration-Ansatz um die Möglichkeit des automatisierten Deployments erweitert. So können neue Softwareversionen ohne Prozessbruch vom Entwicklerarbeitsplatz direkt bis in die Produktion gebracht werden.
Nach dem Einchecken von neuem Source-Code werden automatisch Build-Prozesse sowie Tests angestoßen und ein skriptbasiertes Deployment durchgeführt. Für die einzelnen Prozessschritte bedarf es spezialisierter Tools: Zur übergreifenden Steuerung der Deployment-Pipeline eignet sich beispielsweise Jenkins, für die Testautomatisierung Selenium oder JUnit. Ein Patentrezept gibt es für DevOps nicht, jedes Unternehmen muss sich die individuell passenden Lösungen zusammenstellen.
Ein weiterer Vorteil der Automatisierung im Rahmen von DevOps: Auf Basis einer durchgängigen Deployment-Pipeline lassen sich Kennzahlen generieren, die den gesamten DevOps-Prozess abdecken. Ein Beispiel ist die Ticket-Speed: Diese Kennzahl misst die Zeit von der Einsteuerung einer neuen Anforderung bis hin zum erfolgreichen Deployment. Damit umfasst die Kennzahl sowohl die Effizienz der Entwicklung als auch die Geschwindigkeit des Deployments. Die Ticket-Speed ist eng verbunden mit der Time-to-Market und lässt sich mit einem effektiven DevOps-Ansatz signifikant reduzieren.
4. Architektur
Eines vorweg: Unternehmen können DevOps auch mit einer monolithischen Architektur umsetzen und Vorteile daraus ziehen. Wer jedoch zukunftsfähig sein möchte, kommt an skalierbaren Anwendungen nicht vorbei. Neue Software-Architekturen sollten bereits passend für DevOps geplant werden. Am besten geeignet sind Architekturen, die auf Microservices basieren. Sie bestehen aus kleinteiligen Modulen, die je nach Bedarf bereitgestellt und skaliert werden können.
Bei einer klassischen Architektur muss die Infrastruktur auch bei geringer Auslastung vollständig bereitgestellt werden; Microservices hingegen können in einer virtualisierten Umgebung oder in einer Cloud-Plattform flexibel und bedarfsgerecht skaliert werden. Auf Seiten des Betriebs werden sich neue Modelle für den Infrastrukturbetrieb etablieren müssen: Dieser sollte weniger auf den Betrieb eigener Hardware abzielen, sondern stärker auf Virtualisierung und den Zukauf von Cloud-Lösungen.
5. Strategie
Wer DevOps im Unternehmen einführen will, sollte sich eine passgenaue Strategie zurechtlegen. Es empfiehlt sich, mit einem geeigneten Pilotprojekt zu starten. Dieses Projekt sollte mit Mitarbeitern aus Entwicklung und Betrieb ausgestattet werden, die bereit sind, den DevOps-Ansatz zu leben.
Aufgabe des Teams ist es, im Verlauf des Projekts die Deployment-Pipeline zu definieren, die Tools auszuwählen und die entsprechenden Prozesse aufzusetzen. Grundsätzlich sollte das initiale Projekt über mehrere Releases geplant werden. So können das Toolset und die Prozesse über mehrere Iterationen adaptiert und optimiert und die so gewonnenen Erfahrungen auf weitere Projekte übertragen sowie in die Breite getragen werden.
Fazit
Die Einführung von DevOps sollte auf mittel- oder langfristige Erfolge abzielen. Unternehmen können dann von DevOps profitieren, wenn sie es schaffen, durch ein gemeinsames Mindset und die enge Zusammenarbeit von Entwicklung und IT-Betrieb die Auslieferung neuer Software-Releases reibungsloser und hochgradig automatisiert zu gestalten. Wer DevOps richtig macht, kann nicht nur seine Prozesse optimieren, sondern bietet durch kurze Time-to-Market-Zyklen auch einen hohen Mehrwert für den Kunden.
* Dr. Matthias Hamm ist Head of Engineering bei PROCON IT.
(ID:45389992)