Alle reden über DevOps, aber was ist DevOps?

Ob auf Konferenzen oder in Büchern – der Begriff DevOps wird in der IT-Welt derzeit lebhaft diskutiert. Das Interesse ist verständlich, denn zahlreiche IT-Abteilungen suchen nach Möglichkeiten, ihre Unternehmen von der bestehenden Mischung aus verzögerten Projekten, fragwürdiger Produktqualität und verpassten Lieferterminen zu befreien.

Bei aller Begeisterung schleicht sich jedoch der Verdacht ein, dass nicht alle dasselbe unter dem Begriff DevOps verstehen. Diese Befürchtung steigt, wenn CTOs und Anbieter behaupten, DevOps zu „machen“ oder Tools dafür anzubieten. Vor diesem Hintergrund ist es sinnvoll, die unterschiedlichen und teilweise mehrdeutigen Interpretationen von DevOps zusammenzutragen und gegenüberzustellen.

Was ist DevOps wirklich?

DevOps ist ein kollaborativer Ansatz zur Organisations- und Prozessverbesserung in den Bereichen Entwicklung (Dev) und Betrieb (Ops), also Entwicklung und IT-Betrieb. Vor dem Hintergrund, neue Methoden zur Steigerung der Agilität zu finden, wurde der Begriff erstmals 2009 auf einer Konferenz in Belgien verwendet. Seitdem ist er eines der meistdiskutierten Themen, wenn es um die Frage nach der besten Arbeitsweise geht. Viele große Unternehmen verfolgen inzwischen DevOps-Strategien.

Was ist DevOps nicht? DevOps ist keine Methodik, kein Prozess, kein Haufen Tools oder Technologien. Tatsächlich lässt sich DevOps nicht einmal eindeutig der Entwicklung und dem Betrieb zuordnen. DevOps ist auch keine Software-as-a-Service-Anwendung, auch wenn viele Unternehmen, die DevOps erfolgreich einsetzen, aus diesem Bereich kommen.

Stattdessen wird DevOps allgemein als Teil der Unternehmenskultur verstanden, mit bestimmten Prinzipien, die ein Unternehmen langfristig anstrebt und umsetzt. Befürworter dieser Kultur legen Wert auf Zusammenarbeit, Experimentierfreude und Lernbereitschaft. Alle Beteiligten einer DevOps-Kultur konzentrieren sich während des gesamten Software-Lieferzyklus (nicht nur in der Entwicklung und im Betrieb) auf ein Ziel: die schnelle Umsetzung stabiler, qualitativ hochwertiger Software, vom Konzept bis zum Kunden oder Benutzer.

Obwohl nicht zwingend erforderlich, ist die Automatisierung der Softwareentwicklung, -tests und -bereitstellung durch Continuous Delivery (CD) ein anerkannter Schlüsselfaktor für DevOps. Die Automatisierung ermöglicht eine schnellere Softwareimplementierung und stellt sicher, dass die Lösungen die erforderliche Qualität, Sicherheit und Stabilität aufweisen.

Definition von DevOps

Vereinfacht ausgedrückt konzentriert sich DevOps darauf, alle Beteiligten am Softwareentwicklungszyklus auf drei Ebenen zusammenzubringen: Menschen, Prozesse und Tools.
DevOps kann anhand sehr unterschiedlicher Modelle definiert und beschrieben werden, die alle auf ihre eigene Weise korrekt sind und zu einem tieferen Verständnis und einer nahtlosen Einführung führen können. Ein gutes Beispiel hierfür sind die drei Wege von DevOps in Gene Kims Buch „The Phoenix Project“. Die drei Wege beschreiben Schnittstellen zwischen systematischem Denken, Verstärkung von Feedbackschleifen, kontinuierlichem Experimentieren und Lernen im Kern.

Ein weiteres Modell ist das Akronym C.A.L.M.S. Laut DevOps-Pionier John Willis sind die fünf Grundprinzipien von C.A.L.M.S. erforderlich, um eine DevOps-Kultur im Unternehmen zu etablieren, nach dem Motto „Keep C.A.L.M.S. and carry on“:

Kultur beschreibt eine sichere Umgebung für Innovation und Produktivität. Um diese zu schaffen, müssen die Grenzen der einzelnen Bereiche aufgebrochen werden. Entwickler auf der einen Seite und Betreiber auf der anderen Seite, die jeweils ihre eigenen Ziele verfolgen, gibt es nicht mehr.
Automatisierung bezieht sich auf die Überzeugung, dass Optimierung durch Automatisierung stattfindet. Prozessautomatisierung schafft Konsistenz, spart Zeit und vermeidet Fehler.
Lean bedeutet, Verschwendung zu vermeiden und trotzdem die gewünschten Ergebnisse zu erzielen. Prozessoptimierung muss ganzheitlich betrachtet werden, dafür ist Transparenz erforderlich.
Messung definiert einheitliche Bewertungskriterien, die erstellt werden müssen. Mit diesen ist eine kontinuierliche Verbesserung der Prozesse möglich.
Austausch dient als Grundlage für die gemeinsame Kommunikation. Dazu gehört die Bereitschaft, Wissen zu teilen, voneinander zu lernen sowie das proaktive Teilen von Wissen.

Diese fünf Prinzipien bilden die Grundlage für eine effizientere Zusammenarbeit und eine bessere Produktqualität. DevOps selbst ist mehr als ein Werkzeug und eine einfache Automatisierung. Alle oben genannten Bausteine für DevOps sind für eine erfolgreiche DevOps-Implementierung gleichermaßen wichtig. Im Mittelpunkt von DevOps stehen jedoch die Menschen und die Art und Weise, wie sie mit anderen zusammenarbeiten.

Mit Continuous Delivery als Schlüsselfaktor schafft DevOps eine bisher unbekannte Transparenz: Ein Build-Monitor kann beispielsweise verwendet werden, um den aktuellen Status der Software anzuzeigen. Dies kann sehr detailliert erfolgen, d. h. jeder einzelne Schritt (Build, Unit-Test, Integrationstest, Abnahmetest, Metriken, Bereitstellung auf dem Zielsystem usw.) ist auf einem solchen Monitor jederzeit direkt sichtbar. Sobald DevOps etabliert ist, wird nicht nur der Status der Software visualisiert, sondern auch der Status der Infrastruktur ist transparent. Die Überwachung gibt nicht nur dem Ops-Team Feedback zu ihren Computern, sondern steht auch den Entwicklern auf die gleiche Weise zur Verfügung. Dadurch fühlt sich das gesamte Team für die Software verantwortlich. Unabhängig davon, ob die Serverüberwachung Probleme meldet, ein Unit-Test fehlschlägt oder unerwartete Fehler in den Anwendungsprotokollen protokolliert werden, erkennt das Team sofort, dass es ein Problem mit der Anwendung gibt, und kümmert sich darum – gemäß dem Prinzip der kollektiven Verantwortung.

DevOps als Kultur etablieren

Die Entwicklung in Richtung DevOps bedeutet, dass ein kultureller Wandel stattfinden wird. Teams in der Entwicklung und im IT-Betrieb arbeiten zusammen, um während des gesamten Lebenszyklus des Produkts einen gegenseitigen Mehrwert zu schaffen.
Wichtig ist, dass die Bewegung von DevOps von der Führungsebene unterstützt wird. Denn es erfordert den Abbau von funktionalen Silos, eine Anfangsinvestition in Hard- und Software für die Automatisierung, die Veränderung von Arbeitsumgebungen und die Erkenntnis, dass ein Kulturwandel Zeit braucht und nicht einfach über Nacht ins Unternehmen eingeführt werden kann. Die Art und Weise, wie Software entwickelt und betrieben wird, verändert sich spürbar, aber die Vorteile liegen auf der Hand und werden in der Regel bereits von der Geschäftsführung gefordert: Kürzere Markteinführungszeiten, stressfreie regelmäßige Veröffentlichungen, höhere Qualität, Transparenz, leistungsstarke Teams – was will man mehr?

Die neuesten Erkenntnisse zu DevOps

DevOps WissenAzure DevOps Services – Übersicht | Microsoft Azure

Azure DevOps bietet Teams eine leistungsstarke Plattform für die Zusammenarbeit, Erstellung, das Testen und die schnelle und effektive Einführung von Anwendungen. Dabei spielt es keine Rolle, ob es sich um ein kleines oder großes Team handelt. Azure DevOps verfügt über verschiedene Dienste, die viele Schritte des Entwicklungsprozesses unterstützen.

Read full post
DevOps TrendsImplementierung von DevSecOps: Ein praktischer Leitfaden

DevSecOps ist eine neue Art der Softwareentwicklung. Sie umfasst strenge Sicherheitsmaßnahmen von Anfang an und während des gesamten Lebenszyklus der Softwareentwicklung. Im Gegensatz zu älteren Sicherheitsmodellen, bei denen die Sicherheit oft vernachlässigt wurde, konzentriert sich DevSecOps auf aktive und kontinuierliche Sicherheitspraktiken.

Read full post
DevelopmentRevolutionäre Softwareentwicklung: Der DevOps-Ansatz

Der DevOps-Ansatz signalisiert einen bedeutenden Wandel in der Softwareentwicklungskultur. Er konzentriert sich auf eine bessere Zusammenarbeit zwischen Entwicklungs- und Betriebsteams. Diese Mischung hilft, die Barrieren abzubauen, die sie normalerweise voneinander trennen. Durch die Kombination dieser wichtigen Bereiche können Unternehmen Software schneller bereitstellen.

Read full post
DevOps WissenDevOps mit Kubernetes meistern

DevOps ist eine Reihe von Verfahren, die Entwicklung und Betrieb miteinander verbinden. In Kombination mit Kubernetes, einer leistungsstarken Plattform für die Container-Orchestrierung, können Organisationen agiler, effizienter und skalierbarer sein als je zuvor.

Read full post
DevOps WissenWas macht ein DevOps-Ingenieur?

DevOps verändert die Art und Weise, wie Software erstellt, geteilt und verwaltet wird. Der Schwerpunkt liegt auf Teamarbeit, Automatisierung und kontinuierlicher Verbesserung vom Anfang bis zum Ende des Softwareentwicklungszyklus.

Read full post
DevOps knowledgeDevOps auf Azure und AWS Cloud meistern

Viele Unternehmen nutzen Cloud-Plattformen wie Microsoft Azure und Amazon Web Services (AWS), um die Softwareentwicklung und -bereitstellung zu unterstützen. Sie bieten auch viele Dienste, wodurch sie sich hervorragend für DevOps-Praktiken eignen. Wenn Unternehmen lernen, wie Azure und AWS in DevOps funktionieren, können sie ihre Softwareentwicklung beschleunigen und die Qualität ihrer Software verbessern.

Read full post

Bist Du bereit, Dein Projekt auf die nächste Stufe zu heben?

Setz Dich noch heute mit uns in Verbindung, und gemeinsam werden wir etwas Außergewöhnliches für Dein Unternehmen schaffen.