DevOps – was ist das eigentlich?

Entwicklung und Operations in einem Ansatz vereint: DevOps rückt die einzelnen Teams in der IT näher zusammen. Doch wie genau funktioniert DevOps? Und was unterscheidet diesen Ansatz von anderen? Wir geben einen Überblick.


Was bedeutet DevOps?

Die Bezeichnung „DevOps“ setzt sich zusammen aus den Begriffen „Development“ und „Operations“. In der Vergangenheit arbeiteten Entwicklungs- und Operations-Teams in der IT strikt getrennt voneinander und brachten meist wenig Verständnis füreinander auf. Langwierige Übergaben, Barrieren und Bürokratie erschwerten daher den Erfolg.


DevOps zielt darauf ab, diese Barrieren abzubauen und die Zusammenarbeit der einzelnen Teams zu verbessern. Dabei kommen verschiedene Methoden und Tools zum Einsatz. Längst beschränkt sich DevOps nicht mehr nur auf Entwicklungs- und Operations-Teams, sondern ist in sämtliche Unternehmensbereiche vorgedrungen.


Wie funktioniert DevOps?

DevOps lässt sich am besten durch eine endlose Schleife veranschaulichen. Die einzelnen Schritte sind miteinander verknüpft und die verschiedenen Teams arbeiten eng zusammen. Erhalten die Teams Feedback, setzt sich der Prozess erneut in Gang.


Diese Phasen sind Teil des DevOps-Prozesses:

  • Continuous Development: Zu dieser Phase gehören die Planung und die Codierung. Planung bedeutet, eine Vision für das Projekt sowie einen konkreten Maßnahmenplan zu entwickeln.
  • Continuous Integration: Kommt eine neue Funktion hinzu, muss auch der Code geändert werden. Unit Testing Tools, Code Review und Integration Testing tragen in dieser Phase dazu bei, Fehler in der Software möglichst früh aufzudecken und zu beheben.
  • Continuous Testing: Die Software wird kontinuierlich getestet. Um Zeit und Ressourcen zu sparen, kommen meist Automatisierungstools ins Spiel.
  • Continuous Feedback: In einer Beta-Umgebung geben die Nutzer der Anwendung kontinuierlich Feedback, das die Entwickler anschließend umsetzen können.
  • Continuous Monitoring: Das Monitoring ist einer der wichtigsten Bestandteile, um eine effiziente Software zu entwickeln. Häufig tauchen Fehler auf, die die Entwicklungsteams beheben müssen.
  • Continuous Deployment: Regelmäßige Updates sind nötig, um neue Funktionen zu integrieren. Sobald ein Code veröffentlicht ist, lädt das Team ihn auch auf dem Server hoch. Somit werden die Updates auch auf den einzelnen Endgeräten durchgeführt. Container-Tools unterstützen diesen kontinuierlichen Deployment-Prozess.
  • Continuous Operations: Operations-Teams sind dafür verantwortlich, nach jeder neuen Veröffentlichung regelmäßige Updates sicherzustellen.


Um die Software zu verbessern, kommunizieren die Teams regelmäßig miteinander. Vertreter des Operations-Teams nehmen beispielsweise an Design-Meetings teil und bringen dort ihre Erfahrungen ein. Auch auf anderen Ebenen tauschen sich die Spezialisten aus. Die Teams denken Veränderungen und Neuheiten mit und greifen regelmäßiges Feedback auf. Entwickler arbeiten stets an kleinen Updates, die unabhängig voneinander live gehen. Nur so können die Teams sichergehen, dass die Software die Erwartungen der Kunden und Stakeholder bestmöglich erfüllt.


DevOps: Vorteile und Herausforderungen


Der DevOps-Ansatz bietet IT-Teams viele Vorteile

  • verbesserte Kommunikation
  • regelmäßiges Feedback
  • schnelle Fortschritte
  • kürzere Zeiten bis zum Release
  • automatisierte Prozesse


Darüber hinaus müssen Teams jedoch ein paar Herausforderungen im Blick behalten

  • Neue Kompetenzen und Jobrollen sind erforderlich.
  • Teams müssen mit hohen Kosten für Tools und Plattformen rechnen.
  • Hinzu kommen Ausgaben für Training und Support.
  • Die gewünschte Schnelligkeit kann zu Risiken und Fehlern führen.
  • Der Ansatz muss auf mehrere Projekte und Teams ausgerollt werden.


DevOps im Vergleich zu anderen Ansätzen

Um DevOps noch besser zu verstehen, ist es sinnvoll, den Ansatz mit anderen zu vergleichen. In den folgenden Abschnitten zeigen wir Gemeinsamkeiten und Unterschiede zur Wasserfall-Methode und der agilen Arbeitsweise auf und stellen die beiden Weiterentwicklungen CloudOps und DataOps vor.


DevOps vs. Wasserfall

Wasserfall ist eine traditionelle Methode und beschreibt eine lineare Vorgehensweise in der Software-Entwicklung. Das Modell beinhaltet verschiedene Phasen, zum Beispiel Erfassung der Anforderungen, Analyse, Design, Coding, Testing, Operation, Deployment und Wartung. Diese sind strikt voneinander getrennt. Ist eine Phase abgeschlossen, folgt die nächste. Softwaretester prüfen den Code in einer isolierten QA-Umgebung. Sind alle Anforderungen erfüllt, wird der Code dem Operations-Team zur Verfügung gestellt und in der Produktion getestet.


In einem Wasserfall-Modell dauert es meist lange, eine Software zu veröffentlichen. Entwicklung und Operation arbeiten getrennt voneinander. Das bedeutet zum Beispiel, dass Software-Entwickler sich den Anforderungen der anderen Teams oft überhaupt nicht bewusst sind. Aufgrund dieser isolierten Arbeitsweise ist das Wasserfall-Modell nur wenig dynamisch und anpassungsfähig. Feedback lässt sich nur schwer umsetzen.


Der DevOps-Ansatz versucht hingegen, diese Barrieren abzubauen. Die einzelnen Schritte laufen hierbei nicht getrennt voneinander ab. Vielmehr handelt es sich um einen kontinuierlichen Prozess, in dem die Teams stetig entwickeln, integrieren, testen und optimieren. Alle Teams haben die Möglichkeit, Feedback zu geben. Dieses wird kontinuierlich umgesetzt.


DevOps vs. Agile

Agile ist ein Ansatz aus der Softwareentwicklung. Eine erste Definition findet sich im Agile Manifesto. Agile Teams fokussieren sich darauf, Codes schnell und innerhalb eines definierten Zeitrums umzusetzen und bereitzustellen. Diese Zeiträume heißen „Sprints”. In jedem Sprint entwickelt und optimiert das Team weiter. Dieser Prozess stellt sicher, dass das Software-Projekt flexibel bleibt und sich den Veränderungen anpassen kann.

DevOps basiert auf der Agilen Arbeitsweise und deren Erkenntnis, dass Softwareentwicklung schnell und anpassungsfähig sein muss. Im Gegensatz zu DevOps-Teams arbeiten Entwickler und Operations in agilen Teams getrennt voneinander. DevOps und Agile lassen sich jedoch miteinander kombinieren.


Dann arbeiten Entwicklungs- und Operations-Teams zusammen, um eine optimale Software bereitzustellen. Was die beiden Ansätze noch unterscheidet:

  • Agile ist ein Softwareentwicklungs-Ansatz. DevOps hingegen fokussiert sich darauf, eine End-to-end-Lösung bereitzustellen.
  • Der agile Workflow basiert auf einem Framework, meist Scrum. Dazu gehören eine Reihe an definierten Terminen wie Sprint Planning, Sprint Review und weitere. DevOps hingegen hat kein festes Framework. Wichtige Bestandteile sind jedoch die kontinuierliche Entwicklung, Testing und Feedback.
  • DevOps bezieht häufig große Teams mit ein. Agile Teams sind meist kleiner.


CloudOps

Unternehmen verlagern ihre digitale Infrastruktur nach und nach in die Cloud. Hier setzt CloudOps an und transportiert den DevOps-Ansatz in Plattformen wie Amazon Web Services, Google Cloud und Azure. Cloud-basierte Plattformen sind ortsunabhängig. Teams können von überall auf sie zugreifen. CloudOps kann Prozesse daher beschleunigen und effizienter gestalten. Der Ansatz garantiert zudem Sicherheit. Daten können in der Cloud nicht verloren gehen und sind sogar dann verfügbar, wenn die Hardware beschädigt ist.


DataOps

Auch DataOps basiert auf DevOps-Prinzipien und nutzt den technologischen Fortschritt, um die Qualität zu verbessern, Prozesse zu beschleunigen und die Zusammenarbeit zu optimieren. Dies gelingt nur, indem die Teams so viele Prozesse wie möglich automatisieren.

Während CloudOps den DevOps-Ansatz in die Cloud verlagert, basiert DataOps auf Data Analytics. Das DataOps Manifesto gibt eine Reihe an Prinzipien vor, wie Daten genutzt, ausgewertet, visualisiert und verwaltet werden. Diese sollen sicherstellen, dass persönliche und vertrauliche Informationen geschützt werden. Darüber hinaus formuliert das Manifesto, Rollen und Karrierepfade innerhalb von Organisationen.


Fazit:

DevOps ist ein relativ neuer Ansatz in der IT, genau wie die beiden Adaptionen CloudOps und DataOps. Diese Ansätze umzusetzen, kann sich für Softwareprojekte durchaus lohnen. Vor allem hilft DevOps dabei, die Kommunikation und Zusammenarbeit der einzelnen Teams zu stärken und somit folglich die Qualität im Team zu erhöhen. Dennoch lauern auf dem Weg dahin einige Stolperfallen. Um diesen Ansatz auf Teams und Projekte auszurollen, ist daher eine durchdachte Strategie und einige Vorbereitung nötig.


Wir unterstützen Sie gerne dabei und helfen Ihnen, DevOps erfolgreich in Ihrem Team einzuführen und umzusetzen. Lassen Sie sich von unseren Qualitätssicherungsexperten professionell und unverbindlich beraten!

Share by: