- Der DevOps-Ansatz zieht weite Kreise und wird immer bekannter. Doch ist es ein Tool, ist es eine neue Nerd-Kultur oder einfach nur ein Job-Titel?
- Neben der Verzahnung von operativen und Entwicklungskompetenzen, um ein besseres Gesamtprodukt zu erzielen, ist das Konzept des Site Reliability Engineerings die tragende Stütze für die erfolgreiche Automatisierung der Integrations- und Deployment-Prozesse im Rahmen des DevOps-Ansatzes.
Tradition trifft Moderne
Klassische IT-Architekturen sind auf Stabilität, Zuverlässigkeit und Sicherheit ausgelegt. Sie wurden entwickelt, damit die Unternehmen ihre traditionellen Enterprise-Applikationen durch eine zentrale Infrastruktur dauerhaft verfügbar halten können. Dabei wurden über die Jahre hinweg zahlreiche Bestandteile wie Hardware- und Virtualisierungskomponenten verbaut, die heute nicht nur veraltet sind, sondern auch den derzeitigen Ansprüchen an Skalierbarkeit, Performance und Agilität nicht mehr genügen.
Für die neue Generation des digitalen IT- und Plattformbetriebs benötigt es eine innovative, flexible und auf den neuesten Standards der Cloud-Architekturen basierende Infrastruktur. Neben Microservices und Automatisierungstools sind es auf organisatorischer Seite vor allem agile DevOps-Konzepte, die für ein Real Time Monitoring und Management hier die wesentlichen Voraussetzungen sind, um eine digitale Plattform für Unternehmen oder Kunden erfolgreich bereitzustellen.
DevOps ist mehr als eine Verknüpfung von Entwicklung und IT-Betrieb
Eines der wichtigsten IT-Trendthemen ist derzeit das Thema DevOps. Der Begriff setzt sich aus dem Präfix “Dev” von Softwareentwickler (Developer) und dem Suffix “Ops” von IT-Betrieb (Operations) zusammen. Die Wortkombination symbolisiert die enge Zusammenarbeit der beiden Unternehmensbereiche Softwareentwicklung und IT-Betrieb – ist aber nicht auf diese beiden Teams beschränkt. Geprägt von Prinzipien der Agilität und Open Source beschreibt das Konzept ebenso eine neue Programmier- und Organisationsphilosophie, die die Beschleunigung und Optimierung der Software- und Produktentwicklung betrachtet.
Einerseits lässt sich mittels DevOps-Ansatz die Fehlerrate in der Software-Entwicklung deutlich reduzieren, andererseits die Taktrate bei Innovationen und neuen Releases deutlich erhöhen. Da ein schnelleres Time-to-Market in der digitalen Welt ein entscheidender Erfolgsfaktor ist, macht sich DevOps derzeit in immer mehr Unternehmen breit. Dieses Konzept und die Einbeziehung einer umfassenden Open-Source-Kultur kann die Software-Entwicklung in ihrer Rolle als Motor zur Steigerung der Effizienz stärken. Neue Funktionen und Dienste können nicht nur schneller und flexibler, sondern durch Automatisierung und iterative Entwicklung auch sicherer und im Hinblick auf Qualitätsanforderungen besser bereitgestellt werden. Mit DevOps kommen Unternehmen also in einen Flow, der es ihnen ermöglicht auch die klassischen IT-Infrastrukturen zu modernisieren. In Verbindung mit Standards und Paradigmen der Cloud-Native-Welt können verschiedenste Infrastruktur- und Betriebskonzepte miteinander in Einklang gebracht und wichtige Daten und Anwendungen in der gesamten IT-Umgebung zugänglich gemacht werden.
Wenngleich es nicht einfach ist eine klare Definition für DevOps zu formulieren, sieht das Konzept die vollständige Verzahnung und Automatisierung aller Entwicklungs-, Testing- und IT-Betriebsprozesse in einem holistischen Ansatz vor. Die Leitlinien im Kontext von DevOps können folgendermaßen umrissen werden:
- Effiziente Zusammenarbeit: Entwickler, Test-Engineers, IT-Administratoren und Product Owner kommunizieren effizient über Abteilungs- und Unternehmensgrenzen hinweg, um schnell und vertrauensvoll zusammenarbeiten zu können. Hierzu braucht es einen einheitlichen Informationsstand („Single Source of Truth“) und Transparenz für alle unternehmensinternen sowie externen Beteiligten im Hinblick auf Code Repositories, System Management und Monitoring Tools. Die Dokumentation ist weitgehend „Code-based“ und die wesentlichen Logs und Vital-Funktionen der Systems sind jederzeit in Echtzeit verfügbar und analysierbar.
- Automatisierung: Während traditionell noch nach dem Testing eine manuelle Übergabe und Inbetriebnahme neuer „Builds“ in den produktiven Betrieb erfolgt, sieht der DevOps-Ansatz eine ganzheitliche Optimierung in Richtung CI/CD vor. Das automatisierte Erstellen, Testen und Deployen von Anwendungen und Prozessen, die entsprechend standardisiert, prozessual definiert und in Code sind, sichert nicht nur Zeit, sondern auch Produktivität und Qualität.
- Site Reliability Engineering (SRE): Site Reliability Engineering ist ein aufstrebendes Paradigma in der Cloud-Native-Ära, welches von Ben Treynor Sloss, VP Engineering bei Google, ins Leben gerufen wurde. Hierbei stehen Betrieb, Überwachung und Orchestrierung, aber vor allem das System Design als Voraussetzung für die Durchführbarkeit im Fokus. SRE bildet die Basis für Zuverlässigkeit und Automatisierung und vereint verschiedene Prozesse, die den Betrieb gewährleisten.
Der DevOps-Ansatz hat sich, seitdem sich der Begriff 2009 gefestigt hat, schnell verbreitet und weiterentwickelt. Der zunehmende Automatisierungs- und Toolchain-Ansatz, der durch bessere Überwachungs- und Bereitstellungstools, die Notwendigkeit agiler Prozesse und die Zusammenarbeit von Entwicklern sowie durch das Scheitern umfangreicher Implementierungen von ITSM / ITIL unterstützt wird, hat verschiedene Ebenen zusammengeführt und sich bis heute weiterentwickelt.