DevOps hat das Potenzial, die vielen Herausforderungen zu bewältigen, denen sich die IT-Abteilung gegenübersieht. Es kann helfen, Projektverzögerungen zu minimieren, Qualität zu gewährleisten und Projektabbrüche zu verhindern.
Unternehmen, die DevOps bereits anwenden erzielen signifikante Wettbewerbsvorteile, indem sie ihren Mitarbeitern qualitativ hochwertigere Software schneller bereitstellen können. Viele der Unternehmen, die bereits Continuous-Delivery-Praktiken, DevOps oder ein Software Delivery Management, für den Überblick aller DevOps-Aktivitäten und -Werkzeuge im Unternehmen, eingeführt haben, finden sich in einer dominierenden Marktstellung wieder.
DevOps hat das Potenzial sich über kurz oder lang zum Standard für die Softwareentwicklung. Wenn über DevOps gesprochen wird, ist allerdings nicht immer dasselbe gemeint. So behaupten manche CTOs, dass sie DevOps „machen“, oder es wird behauptet, dass einige Software-Tools „DevOps ermöglichen“. Jedoch verwirren diese Aussagen eher. Glücklicherweise scheint sich in den letzten Jahren ein Konsens darüber zu etablieren, was unter „DevOps“ zu verstehen ist.
Begriffsklärung
Worum also handelt es sich, diesem Konsens gemäß, bei DevOps? Es handelt sich weder um eine Methodik oder um einen Prozess noch um ein einzelnes Werkzeug oder um eine Technologie. Tatsächlich kann man nicht einmal zu Recht behaupten, dass DevOps lediglich in der Entwicklung und der Implementierung Anwendung findet. Auch sind viele der Organisationen, die für ihren Erfolg mit DevOps bekannt sind, Software-as-a-Service- (SaaS-) Lieferanten. Doch können auch andersartige Unternehmen von den Vorteilen profitieren, die DevOps bietet.
Bei DevOps handelt es sich letztlich um eine bestimmte Kultur. Diese basiert auf einer Reihe von Prinzipien zur Struktur und Verwaltung von Organisationen. Organisationen mit dieser Kultur legen Wert auf Zusammenarbeit, neue Ansätze und Lernprozesse. Alle Teilnehmer am Software-Lebenszyklus – eben nicht nur Entwicklung und Implementierung – richten sich auf ein gemeinsames Ziel aus: die schnelle Lieferung stabiler, qualitativ hochwertiger Software vom Konzept bis zum Kunden. Da es sich dabei um eine kulturelle Frage handelt, erfordert DevOps, technisch gesehen, nicht zwangsläufig Automatisierung. Die Automatisierung der Software-Entwicklung, des Testens und der Bereitstellung durch Continuous Delivery kann jedoch eine Schlüsselrolle in dieser Kultur spielen. Diese ermöglicht es Unternehmen, Software schneller zu liefern, Vertrauen in die bereitgestellte Software zu schaffen und den Kunden die geforderte Qualität, Sicherheit und Stabilität zu bieten.
Der DevOps-Dreiklang
Ein Faktor der DevOps-Kultur ist der sogenannte „DevOps-Dreiklang“: ein Zusammenspiel von Menschen, Prozessen und Werkzeugen. Tatsächlich kann es die erfolgreiche Einführung von DevOps- gefährden, wenn diese drei Elemente nicht gleichzeitig berücksichtigt werden. Wenn ein Unternehmen DevOps nur als Technologie versteht und lediglich in automatisierte Werkzeuge für das Testen investiert, den kulturellen Aspekt aber vernachlässigt, so werden seine Entwickler der Software-Qualität nicht die höchste Priorität einräumen. Wichtige Faktoren der Qualitätssicherung sind die Festlegung klarer Ziele, die Realisierung des entsprechenden Automatisierungsgrades und die Zusammenarbeit zwischen Abteilungen. Ohne ausreichende Berücksichtigung dieser Faktoren werden Unternehmen ihre Software zwar schnell bereitstellen können, jedoch wird die intensive Fehlersuche und die Qualität darunter leiden.
Umgekehrt wird ein Unternehmen, das auf Kulturwandel setzt, agile Methoden und automatisierte Werkzeuge aber vernachlässigt, den notwendigen Wandel nur schwer bewerkstelligen können. Mit manuellen Arbeitsschritten, einem schwerfälligen Prozess und alten Werkzeugen bleiben die Erwartungen an die Einführung von DevOps zum Scheitern verurteilt.
DevOps realisieren
Für Unternehmen, die auf DevOps umsteigen wollen, bietet sich auf technischer Seite zunächst die Einführung agiler Entwicklung an. Diese sollte sowohl eine kontinuierliche Integration (Continuous Integration: CI) als auch eine kontinuierliche Bereitstellung (Continuous Deployment: CD) neuen Codes beinhalten, und zwar während der gesamten Anwendungsentwicklung. Der Erfolg von CI und CD hängt daher stark vom Grad der Automatisierung ab. Dieser spart nicht nur Zeit, sondern reduziert auch Fehler, erhöht die Konsistenz und ermöglicht Self-Service. Durch die Automatisierung von CI und CD sowie die Förderung offener Kommunikation und Zusammenarbeit schaffen Unternehmen die Grundlage für eine erfolgreiche DevOps-Transformation.
Oftmals konzentrieren sich Organisationen bei der Implementierung von DevOps zu sehr auf den technischen Prozess, von der Übergabe des entwickelten Codes bis zu seiner Bereitstellung auf dem Server. Doch das Verständnis der Anwender-Bedürfnisse ist genauso wichtig, denn die gesamte Feedback-Schleife umfasst mehr als nur Dev und Ops. Deshalb ist es wichtig zu erkennen, dass DevOps vom Software-Entwurf bis zum Anwender reicht.
Die Vorteile einer DevOps-Einführung zeigen sich nicht notwendigerweise sofort. Vielmehr werden sie im laufenden Betrieb sichtbar. Sie erlaubt es Unternehmen, bessere Software schneller zu liefern. Diese wiederum erzielen einen Wettbewerbsvorteil, weil DevOps Innovationen und schnelle Reaktionen auf veränderte Marktanforderungen ermöglicht.