DevOps

Was ist DevOps?

Was ist DevOps?

Warum die DevOps-Bewegung entstanden ist, habe ich bereits hier beschrieben. Nun stellt sich allerdings die wichtige Frage: Was genau ist DevOps? Handelt es sich um den Einsatz neuer Werkzeuge? Geht es um eine spezielle Arbeitsweise? Vielleicht auch beides?

Die Prinzipien von DevOps

Was verbirgt sich nun genau hinter DevOps?

Durch DevOps findet Agilität, die im Entwicklungsbereich bereits eine große Verbreitung hat, auch im Betrieb ihren Platz und ihre Umsetzung. Es bringt wenig, wenn die Entwicklung in kurzen Feedbackschleifen und Iterationsintervallen neue Versionen zur Verfügung stellt, wenn diese nicht in Betrieb genommen werden. Hier entsteht aber durchaus ein Zielkonflikt. Immerhin ist es der Job und die Verantwortung des Betriebs, für Stabilität zu sorgen. Jedes Update einer Software gefährdet diese gewünschte Stabilität potenziell. Folglich ist es aus Sicht des Betriebs weitaus angenehmer, wenn Software-Updates so selten wie möglich durchgeführt werden. Das führt zu großen Release-Paketen, die lange geplant und aufwändig durchgeführt werden. Da bei solch großen Releases auch mehr Fehler ausgeliefert werden, darf man die Zeit der Nacharbeiten nicht unterschätzen.

Wie also soll nun Agilität in den Betrieb finden? Auf die gleiche Weise, wie es auch in der Entwicklung der Fall ist: kurze Iterationen, um regelmäßig Feedback und kontinuierliche Verbesserung zu ermöglichen. Das heißt für die Software, dass diese nicht nur ständig weiterentwickelt, sondern auch ständig in Betrieb genommen wird. Nun fragen erfahrene BetriebsmitarbeiterInnen hoffentlich „Wie sollen wir es schaffen, so oft neue Versionen zu deployen? Wisst ihr wie aufwändig so ein Update ist?“. Und genau hier setzt DevOps an. Um das Ziel einer sich ständig weiterentwickelnden, aber stabilen Software zu erreichen, müssen Entwicklung und Betrieb an einen Tisch und gemeinsam an einem Strang ziehen. Gedankliche Grenzen und Mauern werden eingerissen, um eines zu erreichen: volle und gemeinsame Verantwortung für die Software! Der Grundsatz lautet „You build it, you run it!“.

Die Softwareentwicklung endet nicht mehr beim Ausliefern der Software mit Betriebsanleitung, sondern dann, wenn die entwickelte Software erfolgreich in Produktion läuft. Produktionsprobleme sind damit nicht mehr alleinige Sache der BetriebsmitarbeiterInnen, sondern für die SoftwareentwicklerInnen soll transparent sein, wie es der Software gerade geht und was aus dem laufenden Betrieb gelernt werden kann. Das heißt umgekehrt, damit der Betrieb reibungslos und optimiert funktionieren kann, muss bereits bei der Konzeption der Software der Betrieb mitgedacht werden. Der erste Kontakt zum Betrieb findet nicht mehr erst dann statt, wenn die Software fertig ist, sondern bereits bei den ersten Architektur- und Release-Konzepten. Entwicklung und Betrieb entwerfen gemeinsam eine Lösung für schnelle, regelmäßige und stabile Rollouts. Damit diese Optimierung stattfinden kann, ist eines der Kernelemente die Automatisierung. Werkzeuge und Prozesse für Continuous Integration, Continuous Testing und Continuous Deployment spielen eine entscheidende Rolle, um DevOps zu kultivieren. Ohne diesen Werkzeugeinsatz und passende Technologien wird die regelmäßige Bereitstellung nur schwer umsetzbar.

Dieser Werkzeugeinsatz ist ein wesentlicher Erfolgsfaktor, reicht aber allein nicht aus. DevOps ist eine Grundausrichtung, eine Denkweise und Übereinkunft, die letztendlich durch Werkzeugeinsatz gelebt werden kann. DevOps ist ein weiterer Baustein einer Kultur, die gemeinsame Ziele und Werte in den Vordergrund stellt.

Was bringt DevOps?

Als Softwareentwicklerin frage ich mich natürlich ab und zu, ob es denn nicht einfacher wäre, so weiterzumachen wie bisher. Mitverantwortung für den reibungslosen Betrieb heißt eben auch mehr Verantwortung zu übernehmen und noch mehr mitzudenken. Betrachte ich die Situation aber aus einer gesamtheitlichen Sicht, so sehe ich für alle Beteiligten, vom Unternehmen, den EntwicklerInnen und BetriebsmitarbeiterInnen bis hin zu den EndkundInnen die Vorteile - und die sprechen meiner Meinung nach eindeutig FÜR DevOps.

Viele Firmen können schon von den Verbesserungen mit DevOps berichten. In einer groß angelegten Studie wird detailliert analysiert, wie die Bereitstellung der Software zum Unternehmenserfolg beiträgt und welche Schlüsselkompetenzen diesen leistungsstarken Unternehmen zugrunde liegen1. Aus diesem Grund habe ich ebenso große Erwartungen, was die Zukunft mit DevOps anbelangt:

  • Erhöhte Qualität und Stabilität der Software
  • Kurzes Rollout - Features und Fehlerbehebungen können den KundInnen schneller zur Verfügung gestellt werden
  • Erhöhte Kundenzufriedenheit aufgrund der Stabilität der Software
  • Verbessertes Monitoring für Entwicklung und Betrieb
  • Kostenoptimierung durch bessere Stabilität, Produktivität und kürzerer Produkteinführungszeit
  • Erhöhte MitarbeiterInnenzufriedenheit durch Transparenz in der Zusammenarbeit und durch gemeinsame Verantwortung, Ziele und Vertrauen

Fazit

Wer sich noch nicht mit DevOps beschäftigt hat und auf dem IT-Markt auch in Zukunft Erfolg haben möchte, sollte sich mit dem Thema definitiv auseinandersetzen. Um Software mit hoher Produktivität, Stabilität und Qualität zu entwickeln und zu betreiben, bedarf es nicht nur der Auswahl neuer Werkzeuge, sondern der wesentliche Erfolgsfaktor sind der Kulturwandel und die Denkweise, die mit DevOps einhergehen. Agilität als gesamtheitliche Grundausrichtung, von der Anforderung bis zum Betrieb, wird damit gelebte Praxis. Ein Umstieg hört sich vielleicht erstmal anstrengend an, man sollte sich aber nicht zu Tode fürchten. Jede Veränderung beginnt mit dem ersten Schritt. Wie diese ersten Schritte konkret aussehen können, beschreibe ich in einem Folgeartikel.


  1. Forsgren, Nicole/Humble, Jez/Kim, Gene (2019). Accelerate. Das Mindset von Devops, Verlag Franz Vahlen GmbH: München ↩︎

Newsletter abonnieren

Über neuen Blog-Artikel informiert werden