DevOps ist ein Konzept zur besseren automatisierten Zusammenarbeit der Softwareentwicklung (Dev für Development) und der IT-Abteilung (Ops für Operations) in Unternehmen. Ziel ist es, durch agile Prozesse und Methoden einen kürzeren Entwicklungsprozess zu schaffen, der kontinuierlich bessere Anwendungen, Lösungen und Services für die Kundschaft bereitstellt. Das Konzept hat kulturelle, systemische, methodische und instrumentelle Dimensionen.
Der Begriff DevOps kam ca. im Jahr 2007 auf und steht für die Erkenntnis, dass Softwareentwickler und IT Operations-Abteilungen agiler zusammenarbeiten müssen, wenn sie in der Digitalisierung mit ihren Produkten und Lösungen am Markt Schritt halten wollen. Durch Automatisierung der Softwareentwicklung und des Produktlebenszyklus ist es möglich, steigende Kundenansprüche an Aktualität und die Bereitstellung neuer Software, Services und Tools zu beantworten. DevOps ist zwar kein starres Framework mit festem Toolkit, folgt aber in den meisten Betrieben und Teams denselben Grundbedingungen:
Mit kleinen Anpassungen lassen sich diese Methoden auf die Zusammenarbeit in ähnlichen Teamstrukturen mit anderen Schwerpunkten übertragen. So sind aus DevOps „Teildisziplinen“ wie DataOps (DevOps plus Data Science) oder DevSecOps (DevOps plus Security) entstanden, welche in datengetriebenen Unternehmen Einsatz finden und von essenzieller Bedeutung sind.
Rücken verwandte Bereiche und Abteilungen in einem Unternehmen enger zusammen, führt dies meist zu einer positiven Änderung der Unternehmenskultur. Dies ist nicht auf die Softwarenentwicklung beschränkt, entfaltet aber in einer digital getriebenen betrieblichen Umgebung besondere Vorteile. DevOps-Strukturen, -Prozesse und -Methoden stellen sicher, dass:
Die DevOps Pipeline ist das Framework für jeden Schritt im Entwicklungsprozess einer Software. Sie besteht üblicherweise aus acht Phasen. Im Sinne des agilen Projektmanagements müssen diese nicht alle durchlaufen werden oder können um weitere Schritte ergänzt werden. Streng genommen ist die Pipeline ein Infinity Loop, da die Prozesse und Phasen je nach Impuls (zum Beispiel durch Kundenfeedback) kontinuierlich und automatisiert durchlaufen werden. Die DevOps Pipeline beinhaltet in einer optimierten Variante die sogenannte CI/CD-Pipeline.
Projekt- und Produktmanager:innen erstellen eine Roadmap für die Entwicklung einer Software und berufen sich auf den Input von Kundschaft und anderen Stakeholdern.
Softwarearchitekt:innen und Entwickler:innen erstellen Codes nach den Vorgaben der Roadmap. Dabei werden parallel weitere Inputs integriert und es wird über enge Feedbackschleifen an der Optimierung der Vorgaben gearbeitet.
Codes werden innerhalb der Entwicklungsteams geschrieben, überprüft, zusammengefügt und Tests unterzogen. In diesem Abschnitt entsteht eine CI/CD-Pipeline (Continuous Integration/Continuous Delivery) – ein fortlaufender Prozess im Team, der Codes und Änderungen nachverfolgbar macht und Fehler vermeiden soll.
Jeder erfolgreiche Build-Sprint zieht Tests in einer Staging-Umgebung nach sich – also Testverfahren in einer annähernd realistischen Umgebung.
Die Anwendung wird für die Produktionsumgebung und den Release bereitgestellt sowie mit allen notwendigen Schnittstellen, Abhängigkeiten und Updates versehen.
Die Anwendung wird über diverse Tools veröffentlicht.
Kund:innen nutzen die Anwendung; das Betriebsteam kümmert sich um Server-Konfigurationen und die korrekte Bereitstellung.
Über Daten aus der Anwendungsperformance und dem Userverhalten wird die gesamte Pipeline überwacht und bei entsprechenden Problemen eingegriffen.
Eine wesentliche Aufgabe von DevOps besteht darin, die Entwicklung und Implementierung von IT-Infrastrukturen sowie Anwendungen zu beschleunigen, indem Prozesse mit speziellen Methoden und Softwaretools automatisiert werden.
Sowohl in jeder Phase der DevOps Pipeline als auch in der gesamten Zusammenarbeit setzen Teams auf unterschiedliche Tools und Software. Im Rahmen des DevOps Lebenszyklus werden z. B. Ansätze wie agile Softwareentwicklung, Infrastructure as Code oder Continuous Integration und Continuous Delivery eingesetzt. Welche Tools bestimmte Bedingungen und Funktionen für das jeweilige Team erfüllen, müssen Sie im Sinne des agilen Arbeitens selbst entscheiden. Zu häufig verwendeten Tools und Werkzeugen gehören:
Sprechen Sie jetzt mit unserem Cloud Analytics Experten und wir zeigen Ihnen, wie Sie Ihr Unternehmen auf die nächste Stufe bringen können.
Dürsin Kurt
CEO Cloud Analytics