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