Unsere Systemadministratoren beschäftigen sich gerade mit den Erkenntnissen aus dem Bereich DevOps. Damit wir die Folgeschritte verstehen, liefere ich Ihnen heute einen Überblick über den Begriff und das ursprüngliche Problem, aus dem der Ansatz entstanden ist.
Im 2. Teil dieses Blogbeitrags, den ich dann in der nächsten Woche veröffentliche, gehe ich dann auf unsere Arbeit mit DevOps ein und was der Ansatz uns als IT-Outsourcing-Dienstleister bringt.
Der Begriff
DevOps ist ein Prozessverbesserungs-Ansatz. Der Begriff setzt sich aus den Kürzeln „Dev“, das für die Softwareentwickler (Developers) und „Ops“, das für den IT-Betrieb (Operations) steht, zusammen. DevOps soll eine effektivere und effizientere Zusammenarbeit der beiden Bereiche sowie der Qualitätssicherung (QS) ermöglichen. Mit DevOps sollen die Qualität der Software, die Entwicklungsgeschwindigkeit, die Auslieferung sowie das Miteinander der beteiligten grundverschiedenen Teams verbessert werden.
Softwareentwicklung (Developers)
Deutsche Bankkunden sind digital-affin und verlangen smarte Online-Lösungen. Darum erwarten wiederum Banken von ihren Softwareentwicklern, dass sie die am Markt gewünschten Funktionen möglichst schnell umsetzen. Die neue Funktion bringt dem User einen Mehrwert, der oft bereits nach der ersten Vorstellungsrunde überzeugt und deshalb vom Auftraggeber abgesegnet wird.
Die Entwickler möchten dem Kunden möglichst schnell Updates oder neue Funktionalitäten zur Verfügung stellen. Je mehr Releases sie mit neuen Features anbieten, umso positiver wird ihre Arbeit wahrgenommen.
IT-Betrieb (Operations)
Die Aufgabe des IT-Betriebs ist es nun, die neu entwickelte Software auf der Produktivumgebung zur Verfügung zu stellen. Beispiele hierfür sind der Einsatz neuer Softwarereleases oder die Sicherstellung des laufenden Betriebs unter bestimmten Qualitätsanforderungen.
Natürlich möchte der Nutzer die volle Verfügbarkeit und Sicherheit der Anwendung garantiert bekommen. Der Betrieb übernimmt die Verantwortung für diesen Anspruch. Er ist dann erfolgreich, wenn er alle Qualitätsanforderungen einhalten kann. Ist beispielsweise die volle Verfügbarkeit einmal beeinträchtigt, so fällt das direkt auf den Betrieb zurück und führt in diesem Fall zu einer negativen Wahrnehmung des IT-Betriebs.
Doch warum kommt es zu Verfügbarkeitsausfällen? Das kann auch bei stabil laufenden Anwendungen passieren, wenn eine neue Software eingesetzt wird. Der Ausfall kommt dann beim Auftraggeber natürlich nicht gut an. Deshalb setzt der Betrieb oft alles daran, diesen Zustand vor Änderungen zu schützen.
Konflikte zwischen Entwicklern und IT-Betrieb
Wie wir sehen haben Softwareentwickler und IT-Betrieb unterschiedliche Ziele. Die Entwicklung ist an schnellen und häufigen Releases interessiert, der Betrieb hingegen würde Releases am liebsten vermeiden. Das führt zu Konflikten.
Wie die im Alltag aussehen, möchte ich anhand von zwei Beispielen kurz beschreiben:
Die Entwicklung gibt ein neues Release an den IT-Betrieb weiter. Dem Betrieb gelingt es nicht die Software auf der Produktivumgebung lauffähig zu machen. Er gibt die Fehlerbeschreibung an die Entwickler weiter. Diese blocken aber ab, schließlich würde die Software auf der Entwicklungsumgebung fehlerfrei laufen. Damit habe der Betrieb etwas falsch gemacht. Beide Seiten beschuldigen sich gegenseitig. Nach eingehender Recherche kommt beispielsweise heraus, dass sich Entwicklungs- und Produktivumgebung in einem wichtigen Detail unterscheiden. Das war aber keiner der beiden Seiten vorher bewusst.
In der Produktivumgebung entsteht ein Performanceproblem. Die Entwickler arbeiten daraufhin mehrere Nächte durch und liefern einen Patch. Der IT-Betrieb hat allerdings Bedenken, dass der Patch die Stabilität des Systems gefährdet, weil er Änderungen an einer kritischen Komponente umfasst. Deshalb verlangt er eine genaue Qualitätskontrolle auf einer Testumgebung. Nun lässt sich die benötigte Last in der Testumgebung aber nicht adäquat darstellen. Es vergeht viel Zeit, bis eine Lösung gefunden wird. Die Entwickler sind enttäuscht.
Zum Schluss des ersten Teils noch ein kurzer Film von Ca, der den Konflikt erklärt und schon etwas zur Lösung verrät.
Die Lösung und die Ergebnisse aus der DevOps-Bewegung samt agiler Methoden und unseres unternehmeseigenen Ansatzes von FI-TS werde ich im 2. Teil des Beitrags veranschaulichen.