DevOps

DevOps

Copyright © Shutterstock / Ashalatha

Was bedeutet DevOps?

Definition

DevOps bezeichnet einen noch relativ jungen Ansatz bei der Entwicklung von Anwendungssoftware. DevOps ist ein Akronym, das aus den Begriffen für Development (engl. für Entwicklung) und IT Operations (engl. für IT-Betrieb) gebildet wird. 

Bei diesem Entwicklungsmodell arbeiten die beiden sonst getrennt voneinander agierenden Bereiche Softwareentwicklung und IT eng zusammen. Dadurch soll sichergestellt werden, dass neu entwickelte Software mit einem Minimum an Problemen lauffähig ist.

Viele Unternehmen sehen sich heute durch das vermehrte Aufkommen von Cloud-basierten Webanwendungen in einer herausfordernden Situation, die schnelle Releases als Reaktion auf Probleme oder Anfragen von den Benutzern ermöglichen muss.

Die schnelle Reaktion ist zwar im Grunde das Ziel eines jeden Software-Entwicklungsteams, kann aber die Organisation in ihrer Gesamtheit belasten. Diese Belastung führt oft zu mehr Fehlern und damit zu einer Störung des Teams. DevOps versucht dieses Problem zu lösen, indem es eine Partnerschaft zwischen Software-Entwicklung und IT Betrieb entwickelt.

In dieser Struktur unterstützt das Entwicklungsteam betriebliche Anforderungen wie das Bereitstellen von Skripts, Diagnose sowie Last- und Leistungstests zu Beginn des Zyklus und das IT Team bietet sachkundigen Support und Feedback vor, während und nach der Bereitstellung.

DevOps als neue Philosophie der Softwareentwicklung

Die Zusammenarbeit von Entwicklung und IT ist die Richtung, in die immer mehr Software-Entwicklungsteams gehen. Sie müssen angesichts des Drucks, unter dem die Unternehmen stehen, Codes mit höherer Qualität schneller und mit weniger Zeit für die Qualitätssicherung produzieren.

Dies ist eine neue Anforderungsqualität. Viele Entwickler werden sich anpassen müssen, wenn sie weiterhin Erfolg haben wollen. Bei eng gesetzten Zeitlinien ist die Trennung zwischen Entwicklung, Qualitätssicherung und Produktion ein Hemmnis für die Agilität der Entwicklungsteams.

DevOps versucht, diese Trennung aufzuheben. Hierbei sind Team-Player Fähigkeiten genauso gefragt und wichtig, wie die technischen Fähigkeiten der Entwickler. Ein besonderer Fokus liegt auf der User-Experience und darauf, wie sich diese auf das Unternehmen auswirkt. DevOps ist keine neue Gruppe von Tools oder Organisationen, sondern eine neue Kultur und ein neuer Prozess. Entwicklung, Qualitätssicherung und IT arbeiten eng zusammen, um neue Entwicklungen und Problemlösungen zu beschleunigen.

Warum Softwareentwickler DevOps bevorzugen

Der neue Ansatz bietet den involvierten Mitarbeitern verschiedene Vorteile. Es gibt drei Hauptgründe, warum Softwareentwickler zunehmend in einer DevOps orientierten Organisation arbeiten möchten.

DevOps ermöglicht ein weniger stressbelastetes Arbeiten und eine bessere Work-Live-Balance für alle Beteiligten. Untersuchungen in den USA haben gezeigt, dass Entwickler, die in einer DevOps orientierten Organisation arbeiten, nach Feierabend, mitten in der Nacht oder am Wochenende weniger gestört werden, um zum Beispiel Produktionsprobleme zu lösen. Der Grund dafür ist, dass durch die enge Zusammenarbeit von Entwicklung und IT kleine Probleme erkannt werden, bevor sie zu katastrophalen Problemen werden. DevOps ist auf eine proaktive Überwachung und weniger auf reaktive Aktionen ausgerichtet.
In einem traditionellen Software-Prozess wird Software, sobald sie einmal entwickelt ist, weitergereicht und landet schließlich in der Produktion. Was der Endanwender dann sieht, kann sich dabei von dem unterscheiden, was der Entwickler geschrieben hat.

Aber im Rahmen des neuen Entwicklungsmodells wird das, was die Entwickler programmieren, live geschaltet, sodass sie weiterhin Zugriff auf den Code haben, selbst nach der QA und der Produktion. Mit anderen Worten: Entwickler begleiten ihren Code von der Erstellung bis zur Implementierung. Dadurch wird eine wesentlich höhere Identifikation des Entwicklers mit seiner Software erreicht. Die Zufriedenheit mit seiner eigenen Arbeit wächst. Und zufriedene Mitarbeiter leisten mehr als unzufriedene.

Softwareentwicklern geht es nicht anders als anderen Menschen. Eine Arbeit, die in der realen Welt von Bedeutung ist, Änderungen hervorruft, bringt in der Regel eine größere Befriedigung bei der Arbeit. Da Entwickler in einer traditionellen Organisation isoliert sind, arbeiten sie oft, an simulierten Problemen in erfundenen Szenarien – und sie sehen mögliche Änderungen durch ihr Eingreifen nur in diesen digitalen Szenarien.

In einem DevOps-Modell sind Szenarien real. Die Umgebungen werden zum Beispiel – bevor sie in Produktion gehen – einem Belastungstest unterzogen, um zu sehen, ob sie korrekt funktionieren. Ein anderes Beispiel ist, dass Testskripts selbst auf Realismus getestet werden, indem sie in der Produktionsumgebung eingesetzt werden, nicht nur in Testlabors. Wenn die Testergebnisse an die Entwickler weitergeben werden, können Sie sehen, wie ihr Code unter realen Bedingungen funktioniert.

Was bedeutet DevOps für ein Unternehmen?

Während bei DevOps mehr Wert auf Kultur und Prozess als auf Organisation gelegt wird, können Tools dazu beitragen, Best Practices durchzusetzen – insbesondere die gemeinsame Nutzung von Informationen zur Fehlerbehebung.

Das erfordert mehr Kontrollinstrumente für die Software, um zu überprüfen, wie die Software in der Qualitätssicherung und Produktion funktioniert, nicht nur in der Entwicklung. Fehler müssen protokolliert, Systemparameter überprüft, Funktionszeitüberschreitungen registriert und während der Programmausführung andere Werte zurückgegeben werden, die dann in Protokolldateien festgehalten werden.

In einer isolierten Umgebung sehen Entwickler diese Protokolldateien nach der Veröffentlichung des Codes in der Produktion häufig nicht mehr. In einer DevOps-Welt haben Entwickler Zugriff auf diese Dateien, unabhängig davon, wo die Software ausgeführt wird – in der Entwicklung, in der Qualitätssicherung oder in der Produktion.

Fehler können so nicht nur schneller behoben werden. Es ist auch weniger wahrscheinlich, dass dieselben Fehler in zukünftigen Versionen wieder auftauchen. Die Entwicklung selbst wird schneller und kann besser auf sich ändernde Anforderungen reagieren.

DevOps – alter Wein in neuen Schläuchen?

Bei DevOps geht es auch darum, mit alten Gewohnheiten zu brechen. Die Korrektur eines einzelnen Fehlers wird nicht viel dazu beitragen können, mit dem neuen Entwicklungsansatz fehlerfreie Software schneller zu erstellen. Eine bessere Kenngröße ist die Anzahl der Prozessfehler.

Mit anderen Worten: wo sind die Prozesse, die zum Fehler geführt haben? Ist der Code, den Entwickler auf ihren lokalen Maschinen programmieren, anders als der Code, der für die Qualitätssicherung oder die Produktion bereitgestellt wird? Oder verhält sich der Code in einer Umgebung anders, weil dort etwas vorhanden ist, das in den anderen Umgebungen nicht vorhanden ist?

Sofern Codeversionen nicht eng über Umgebungen hinweg synchronisiert sind und die Umgebungen selbst nicht eng synchronisiert sind, ist es schwierig zu sagen, ob ein Problem ein logisches Problem, ein Datenproblem, ein Umgebungsproblem oder etwas anderes ist. Dies ist ein weiterer Ansatzpunkt, um mit geeigneten Tools die Konsistenz zu erzwingen.

Die wahrscheinlich wichtigste Anpassung wird bei den Entwicklern selbst und ihrer täglichen Interaktion mit anderen Teammitgliedern erfolgen müssen. Suchen und beheben Entwickler Software-Probleme proaktiv zum Beispiel durch die tägliche Auswertung von Betriebsprotokollen oder warten sie auf Probleme?

Und wenn es ein Problem gibt, wie wird es gelöst? Sind die Mitglieder im Team wirkliche Partner oder zeigt jeder mit dem Finger auf andere? Viel hängt bei DevOps von der Führung ab. Das Management muss mit gutem Beispiel vorangehen, die notwendigen Schulungen, jede erforderliche Unterstützung bereitstellen und die Entwickler für Teambeiträge belohnen – nicht nur für die technischen Fähigkeiten.


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte