Das Ziel: Continuous-Delivery
- Die Mauer zwischen Entwicklung und Betrieb muss fallen
- Das Ziel: Continuous-Delivery
- Infrastructure as Code
- Expertenkommentar: Rechenzentren sollen DevOps leben
Bei diesen DevOps-Pionieren unter den IT-Dienstleistern finden anspruchsvolle Kunden Ansprechpartner und Spezialisten, die bei der Optimierung von Release-Prozessen im Sinne von Continuous-Delivery unterstützen und beraten. Das Ziel ist es, in enger Zusammenarbeit mit dem Kunden eine möglichst nahtlos angepasste Lösung für die Übergabe der Applikation und deren Integration in eine Deployment-Pipeline zu entwickeln.
Dabei zeigt die Erfahrung: Neben den Fragen nach Tools und Prozessen ist Kommunikation die eigentliche Aufgabe. In der täglichen Arbeit geht es stark darum, Verständnis für die unterschiedlichen Anforderungen und Arbeitsweisen in Entwicklung und Betrieb zu schaffen. Erst aus diesem gemeinsamen Verständnis heraus, lassen sich projektspezifisch angepasste Tool-Chains und Prozesse etablieren, die den Anforderungen auf beiden Seiten entsprechen.
Das Signal an den Markt und die IT-Community: Unternehmen, die eine der ständigen Weiterentwicklung unterworfene Software in einem fremden Hochleistungsrechenzentrum hosten lassen, können künftig mit den DevOps-Spezialisten ihrer Provider klären, wie man auch mehrere hundert Releases pro Monat „schmerzfrei über die Bühne bringt“. Dabei arbeiten unter Umständen neben den kundeninternen Entwicklern häufig auch weitere externe Software-Teams an der Entwicklung großer Applikationen mit. Auch diese Teams werden in die Dev-Ops-Kultur eingebunden – was zusätzliche Flexibilität in der Koordination bringt.
Durchgängige Continuous-Delivery-Pipeline
Wenn Softwareverbesserungen schnell, zuverlässig und stabil in der Produktionsumgebung ankommen sollen, ist ein durchgängiger automatisierter Prozess unabdingbar, eine Pipeline für Integration und Deployment. Diese Pipeline reicht dabei von dem Source-Code-Commit bis hin zum Deployment in die Produktionsumgebung. Die Pflege und Entwicklung dieser Pipeline mit dem Provider in enger Zusammenarbeit zu entwickeln, ist dabei sinnvoll. Zum einen liegen hier die Detailkenntnisse zu Infrastruktur und deren Betrieb, zum anderen brauchen die Unternehmen keine eigenen Kompetenzen für betriebliche Anforderungen an die Applikation, sondern können hierfür auf die Experten des Providers zurückgreifen.
Mit DevOps-Dienstleistungen bauen fortschrittliche Provider in enger Abstimmung mit ihren Kunden Deployment-Pipelines auf, die vom Unit-Test über Integration-Tests bis zum automatisierten Deployment in Produktion reichen. Das Ziel ist die möglichst vollständige Automatisierung des Release-Prozesses, was gleichzeitig auf Grund der Wiederholbarkeit eine Verbesserung der Qualität mit sich bringt. Dabei setzt man auf bekannte Open-Source-Tools, die auch in den Entwicklungsabteilungen vieler Unternehmen genutzt werden. So lässt sich für die automatisierte Provisionierung auf „Foreman“ setzen. In Verbindung mit der Configuration-Management-Software „Puppet“ wird es möglich, die Konfiguration der Infrastruktur so wie Source-Code zu behandeln (Infrastructure as Code). Für die Steuerung der Deployment-Pipeline bieten sich Tools wie „Thoughtworks Go“ oder auch „Jenkins“ an. Mit diesem speziellen Know-how kann ein Provider Kunden unterstützen, die mit dem Thema Continuous-Delivery beginnen und diese Step by Step auf dem Weg zu einer vollständigen Continuous-Delivery-Pipeline begleiten.
Test und Erfolgsmessung
Mit Tools, Prozessen und abteilungsübergreifender Kommunikation Silos aufzubrechen, klingt gut. Mit der IT-Betriebsmannschaft des Providers eine DevOps-Kultur zu entwickeln, verspricht ein Zugewinn an Agilität und Freiräume für Innovation. Dies muss durch Messungen untermauert werden. Sinnvolle Metriken auf Infastruktur- und Applikationsebene sind in einer DevOps-Bewegung daher äußerst wichtig: Was nicht gemessen wird, kann auch nicht verbessert werden. Es müssen also gemeinsam sinnvolle Messpunkte definiert werden. Gerade DevOps-Spezialisten eines Rechenzentrumsbetreibers können ihre Monitoring-Möglichkeiten und Expertise nutzen, um früh Probleme oder Schwachstellen zu erkennen. Diese werden iterativ im Rahmen eines kontinuierlichen Verbesserungsprozesses mit den Teams des Kunden diskutiert, um Hürden und Fehler systematisch abzubauen.