Bringen Sie Ihre Entwicklung ins 21. Jahrhundert
Warum wir uns auf DevOps verlassen, um bessere Softwareprodukte zu erstellen
Warum wir uns auf DevOps verlassen, um bessere Softwareprodukte zu erstellen
„Die Verbesserung der täglichen Arbeitsabläufe ist sogar noch wichtiger als deren Durchführung“, zitiert eine Figur in dem 2013 erschienenen Roman „The Phoenix Project“ seinen Kampfsportlehrer. Das Buch war ein Überraschungshit, der die Welt der Informationstechnologie im Sturm eroberte und bis heute in fünf Auflagen erschienen ist. Der Untertitel erläutert den geheimnisvollen Titel: „A Novel about IT, DevOps, and Helping Your Business Win“. IT mag ein unendlich komplexes Thema sein, aber auch der Laie weiß, wofür die beiden Buchstaben stehen. Und jedes Unternehmen will gewinnen, das ist klar. Aber was zum Teufel ist DevOps?
DevOps ist ein Kofferwort, das sich aus „Development“ (Entwicklung) und „Operations“ (Betrieb) zusammensetzt. Es stellt die jüngste Softwareentwicklungsmethode dar, die viel breiter angelegt ist als vorhergehende Ansätze. In der Tat wird es oft auch als eine Art Kultur und nicht nur als Methode definiert. Doch bevor wir beschreiben, warum DevOps eine so beliebte Softwareentwicklungsmethode ist, lohnt es sich, einen Blick auf die Vorgänger zu werfen.
Das traditionelle Wasserfallmodell existiert seit 1970 und verfolgt einen sequenziellen Ansatz: In jeder Phase muss erst ein gewisser Output produziert werden, bevor man die nächste einleiten kann. Zum Beispiel müssen Sie die Anforderungen analysieren, bevor Sie zum Design übergehen können, auf das wiederum die Programmierung aufbaut, und so weiter. Aufgrund seines linearen Charakters lässt das Wasserfallmodell keine Anpassungen zu und erschwert den Austausch von Feedback zwischen den Projektmitgliedern.
Im Februar 2001 trafen sich in Utah siebzehn Geschäftsleute aus dem IT Umfeld, um darüber zu diskutieren, wie man das Wasserfallmodell verbessern könnte. Das Ergebnis der dreitägigen Veranstaltung war schließlich das Manifest für agile Softwareentwicklung. Mit nur 68 Wörtern definiert es vier grundlegende Prinzipien, von denen zwei besagen, dass die Gruppe „Individuen und Interaktionen über Prozesse und Werkzeuge“ bzw. „Reagieren auf Veränderungen über das “Befolgen eines Plans“ stellt. Mit anderen Worten: Die agile Methodik ermöglicht es Ihren Teams, miteinander zu interagieren und zu kommunizieren. Da die Arbeit in kleine, überschaubare Inkremente aufgeteilt wird müssen Projekte außerdem nicht mehr vollständig im Voraus definiert werden. Da die Ergebnisse fortlaufend ausgewertet werden, ist es zudem deutlich einfacher, sofort und während des gesamten Lebenszyklus der Softwareentwicklung auf Änderungen zu reagieren. Es gibt jedoch ein grundlegendes Problem, das von Agile nicht adressiert wird.
Patrick Debois, ein belgischer Manager, begann im Jahr 2007 an einem Regierungsprojekt zu arbeiten. Seine Aufgabe war es, bei der Migration eines Rechenzentrums zu helfen. Bald bemerkte er jedoch, dass er zwischen zwei Welten gefangen war, die sich scheinbar unmöglich überbrücken ließen. Die Koordination zwischen dem Entwicklungsteam und dem Operations-Team – zwei Einheiten, die eigentlich zusammenarbeiten sollten, aber in der Realität strikt voneinander getrennt waren – erwies sich nicht nur als Verschwendung von Zeit und Energie, sondern auch als eine fortwährende Frustrationsquelle für Debois.
Nachdem ihn eine Konferenz und eine Videopräsentation davon überzeugt hatten, dass andere das gleiche Problem durchmachten, organisierte er 2009 die DevOpsDays. In der Branche sorgte die Veranstaltung für Aufsehen: Die Nachricht verbreitete sich wie ein Lauffeuer über Twitter, der Begriff DevOps war geboren, und der Rest ist mittlerweile IT-Geschichte.
Die Neuerung im DevOps-Ansatz gegenüber einem agilen Vorgehen ist, dass die Entwicklungs- und die Operation-Teams nicht mehr länger voneinander abgeschottet sind. Im Gegenteil, der Schwerpunkt liegt vielmehr auf der Zusammenarbeit und Integration. Wie Christophe Capel von Jira Service Management es ausdrückte: „DevOps ist nicht der Job einer einzelnen Person. Es ist die Aufgabe von allen.“ Letztlich ist DevOps also ein Sinneswandel, der die aktive Zusammenarbeit fördert und als Voraussetzung für den Erfolg betrachtet. Die schnelle Bereitstellung zuverlässiger, qualitativ hochwertiger Lösungen ist nur möglich, wenn man über die entsprechende Entwicklungsumgebung verfügt. Wie erzeugt man diese also?
Geteilte Verantwortung ist das Herzstück von DevOps. Ob Sie in der Entwicklung oder im operativen Betrieb tätig sind, Sie tragen jeweils die Verantwortung für den Erfolg (oder das Scheitern) eines Projekts. Das Gleiche gilt für jeden Einzelnen in beiden Teams: Einer für alle – Alle für einen. Daraus resultieren eine erhöhte Transparenz und ein gemeinsames Verständnis der Unternehmensziele und die Herausforderungen, denen Sie sich auf dem Weg dorthin stellen müssen.
Um die effektive Zusammenarbeit Ihrer Teams zu gewährleisten, dürfen die Entscheidungsfindung und die Umsetzung von Änderungen nicht lange auf sich warten lassen, sondern müssen ohne komplizierte Genehmigungsverfahren erfolgen. Es bedarf dafür einer Arbeitsatmosphäre, in der Ihre Teams sich auf ihre eigene Entscheidungsfähigkeit verlassen können, anstatt sich Sorgen über ein mögliches Scheitern zu machen. Das gilt insbesondere bei schwierigen Entscheidungen unter Zeitdruck. Mit anderen Worten: Sie müssen ihnen ein hohes Maß an Autonomie zugestehen.
Ein weiterer wichtiger Aspekt der DevOps-Kultur ist Feedback. Indem Sie es fortlaufend und unverzüglich geben, können sich die Mitglieder beider Teams sicher sein, dass notwendige Anpassungen und Verbesserungen vorgenommen werden. Beispielsweise könnten die Mitarbeiter, die eine Strategie zur Anwendungsüberwachung implementieren wollen, von den Entwicklern eine Iteration des Codes verlangen. Da die beiden Teams an einem Strang ziehen, sollte es keine Herausforderung sein, diesen Bedarf erfolgreich zu kommunizieren.
Die vielbeschworene Zusammenarbeit, das wesentliche Merkmal von DevOps, wäre ohne die Automatisierung weit weniger effektiv. Die Teams stützen sich auf eine Reihe von Methoden, um die Prozesse zu automatisieren und zu optimieren, die letztendlich zu einem Software-Release führen. Die DevOps-Prinzipien wären ohne diese Methoden nahezu wirkungslos, weshalb hier einige der wichtigsten vorgestellt werden sollen.
Während bei der agilen Vorgehensweise die Notwendigkeit der Verzahnung von Entwicklung und operativem Betrieb vernachlässigt wurde, kommt das Grundgerüst, das das agile Projektmanagement bietet, auch bei DevOps zum Einsatz. Wir haben die agile Vorgehensweise bereits ausführlich beschrieben, aber es lohnt sich, ihre Grundidee zu wiederholen: Ein Projekt wird in kleinere Teilaufgaben zerlegt und die Teams reagieren auf Änderungen, die sich im Laufe ihrer Arbeit ergeben können. Dieses Grundkonzept gilt auch für DevOps.
Entwickler führen Code-Änderungen in einem gemeinsamen Repository zusammen, woraufhin eine Vielzahl von Tests ausgeführt wird. Durch diese kontinuierliche Integration können Fehler leicht erkannt und behoben werden, wodurch sich die Qualität der Software verbessern lässt. Darüber hinaus stellt die kontinuierliche Bereitstellung sicher, dass Codeänderungen entweder in einer Testumgebung zur Verfügung stehen, falls weitere Tests erforderlich sind, oder in einer Produktionsumgebung, wenn sie bereit für die Veröffentlichung sind.
Da Services rund um die Uhr verfügbar sein und Anwendungen immer häufiger aktualisiert werden müssen, ist ein aktives Monitoring unerlässlich. Auf diese Weise können nicht nur potenzielle Schwachstellen identifiziert, sondern durch die Erfassung und Analyse von Daten auch ein besseres Verständnis für die Auswirkungen der Updates auf die Benutzererfahrung gewonnen werden.
Eine Organisationsstruktur, in der die Abteilungen streng voneinander getrennt sind, basiert nicht auf Vertrauen und Empathie. Die Teams teilen sich keine Verantwortungsbereiche, was sich auf ihre Moral, ihr Engagement und ihre Produktivität auswirken kann. Indem DevOps die Mauer zwischen Entwicklung- und Operations-Abteilung einreißt, kommt es zu einer besseren Kommunikation und Zusammenarbeit zwischen den beiden Bereichen. Das wiederum beschleunigt den Informationsaustausch innerhalb der gesamten Organisation und macht es viel einfacher, Ziele zu definieren, auf die man dann hinarbeiten kann.
Voraussichtlich werden die oben beschriebenen Methoden auf absehbare Zeit ein fester Bestandteil von DevOps bleiben. Angesichts der sich ständig verändernden Welt der Informationstechnologie ist es jedoch ebenso wahrscheinlich, dass sich DevOps im Zuge neuer Trends stetig weiterentwickeln wird.
Wäre DevOps eine Person, befände sie sich in ihren frühen Teenagerjahren. Die Pubertät ist eine Testphase und manchmal schwer zu meistern. Die eigene Persönlichkeit befindet sich im Wandel, man ordnet sich immer wieder neu zu, sucht nach einer Gruppe und versucht verzweifelt, dazuzugehören. Mit der Zeit entwickelt sich die eigene Individualität und man beginnt, sich eine eigene Zukunft auszumalen. Offenbar verhält es sich mit Tech-Methoden ganz ähnlich.
Aufgrund der globalen Pandemie kam es 2020 in den meisten Branchen zu einer Verschiebung von Prioritäten und Entwicklungen – fortlaufende Innovation wird jedoch weiterhin Vorrang haben. Auch DevOps wird in naher Zukunft eine Reihe von Veränderungen erfahren. In der Tat finden einige bereits statt.
Das Thema Anwendungssicherheit wird in den Vordergrund rücken und in DevOps-Praktiken eingebettet werden. Da Entwicklungszyklen heute oft innerhalb von Wochen oder sogar Tagen abgeschlossen werden, müssen Unternehmen sicherstellen, dass sie ihr Sicherheitsteam von Anfang an einbeziehen. Der Begriff DevSecOps, der in der Branche bereits gebräuchlich ist, unterstreicht die Bedeutung einer sicherheitsbezogenen Ausgangsbasis.
Da das Thema Sicherheit stärker in den Fokus rückt, ist zu erwarten, dass die Infrastruktur zunehmend in die Cloud verlagert wird. Da Unternehmen bemüht sind, ihre Produkte möglichst schnell und regelmäßig bereitzustellen, wird es unumgänglich, auf Cloud-basierte Technologien zu setzen. In der Tat ist dies ein Trend, der durch COVID-19 sowohl verstärkt als auch beschleunigt wurde.
Die Wahrnehmung von Remote-Arbeit ist eine weitere Veränderung, die durch die Pandemie ins Rampenlicht gerückt wurde. Eine Studie von Worldwide Research hat gezeigt, dass Unternehmen, die bereit sind, die Home Office Regelungen neu zu bewerten und ihren Mitarbeitern zu ermöglichen, von überall aus zu arbeiten, in den kommenden Jahren wahrscheinlich florieren werden. Ein weiterer Aspekt eines solchen hybriden Modells ist, dass die Teams selbst einem tief greifenden Wandel unterzogen werden: Von den Mitarbeitern wird eine Reihe von Fähigkeiten und Kenntnissen verlangt, die über ihren Kompetenzbereich hinausgehen.
Auch wenn es für DevOps nichts Neues ist, wird die verstärkte Automatisierung zunehmend in den Mittelpunkt rücken. Fortschrittlichere Techniken wie Tools zur robotergestützten Prozessautomatisierung werden sich durchsetzen und durch die Ablösung manueller und/oder fehleranfälliger Aufgaben sowohl die Markteinführungszeit als auch die Effizienz verbessern. Dies wiederum wird zu einer höheren Kundenzufriedenheit führen.
Letztendlich, und das ist vielleicht sogar der wichtigste Punkt, wird DevOps immer mehr Wertschätzung von Führungskräften erfahren. Es ist heute nicht ungewöhnlich, dass leitende Angestellte ihren Kollegen aus der IT-Abteilung Anerkennung für die Leistungen und Erfolge ihres Unternehmens zollen. Gene Kim, einer der Co-Autoren von The Phoenix Project, erwartet, dass sich dieser Trend fortsetzen wird und hat sich diesbezüglich optimistisch geäußert: „Ich glaube, das verheißt Gutes für die gesamte Technologie.“ Es könnte durchaus sein, dass schon bald genügend Stoff für ein neues Buch zur Verfügung steht.
Wir haben festgestellt, dass der DevOps Ansatz uns dabei hilft, noch besser zusammenzuarbeiten und unseren ohnehin bereits agilen Entwicklungsansatz weiter verbessert hat. Durch DevOps sind wir effizienter und erfolgreicher geworden und unser Produkt weist jetzt eine noch bessere Qualität auf.
Das könnte Sie auch interessieren: