Gastbeitrag 19.04.2023, 08:00 Uhr

DevOps: Autonomie und Standards?

DevOps und Microservices gewinnen in der IT immer stärker an Bedeutung. Zu Recht, denn diese Strukturen versprechen autonomes und agiles Arbeiten. Doch wie lässt sich das mit dem Anspruch an Standardisierung in grossen Unternehmen vereinbaren?
DevOps ist eine Kultur und Praxis der Zusammenarbeit zwischen Software-Entwicklung und IT-Betrieb, die auf konti­nuierliche Integration, Bereitstellung sowie Feedback abzielt
(Quelle: Shutterstock/Ribkhan, ZKB)
Das Kunstwort DevOps, bestehend aus Development und Operations, lässt den trügerischen Schluss zu, dass es sich dabei lediglich um die Zusammenlegung der beiden Aktivitäten handelt. Doch dies ist zu kurz gedacht! DevOps ist vielmehr eine Philosophie, wie ein Team sein Produkt entlang des gesamten Lebenszyklus begleitet. Dabei sind agile Prinzipien und der stetige Drang zur Verbesserung, wie beispielsweise in der Automatisierung oder in der Zusammenarbeit, integrale Bestandteile. Im Fokus steht die Autonomie der Teams, die Entscheidungen anhand übergeordneter Prioritäten selbst treffen und die daraus resultierenden Massnahmen umsetzen. Stets mit dem Fokus, den Kundinnen und Kunden die bestmöglichen Lösungen anzubieten und sich auf Basis eingeholter Feedbacks und gemachter Erfahrungen fortwährend zu optimieren und weiterzuentwickeln.
Die Zürcher Kantonalbank (ZKB) hat die Vorzüge von DevOps-Teams schon früh erkannt. Selbstorganisierende, autonome und stehende Scrum-Teams sind in der ZKB mittlerweile breit etabliert und mittels Scaled Agile Framework (SAFe) orchestriert. Die Tatsache, dass in den DevOps-Teams das für die Produktentwicklung relevante Know-how vorhanden ist, stützt die Überzeugung, dass die Teams die besten Entscheidungen treffen. Diese Kompetenz ist gleichzeitig eine Verpflichtung, die Verantwortung in jeder Phase des Produktlebenszyklus wahrzunehmen. Dank des von der ZKB verfolgten IT-made-in-Chreis-5-Ansatzes, einen Grossteil der IT-Lösungen im Kreis 5 von Zürich selbst zu entwickeln, ist diese Verantwortung nicht nur ein Lippenbekenntnis, sondern gelebte Ownership. Diese Eigenverantwortung fördert nebst der Effektivität der DevOps-Teams auch die Zufriedenheit der Mitarbeitenden.

Agilität auch in der Technik: Microservices-Architekturen

Nicht nur bei den Organisationsformen haben sich kleine, autonome Strukturen am Markt durchgesetzt, sondern auch bei den Systemarchitekturen. Mit dem Einsatz von Microservices werden grosse, komplexe Systeme in kleinere, möglichst autonome Dienste unterteilt, die unabhängig entwickelt, installiert und betrieben werden können. Durch diese Unabhängigkeit bieten Microservices eine hohe Flexibilität, da sie leicht ausgetauscht oder aktualisiert werden können, ohne dass sich dies auf die gesamte Applikationslandschaft auswirkt. Dies ermöglicht es, schnell auf Veränderungen im Geschäftsumfeld zu reagieren und neue Funktionen hinzuzufügen. Microservices sind damit die perfekte Antwort auf die heutigen Herausforderungen der Digitalisierung und die stetig wachsenden Anforderungen an Agilität und Time-to-Market.
Die ZKB verfolgt schon seit einigen Jahren eine Transition zu Microservices-Architekturen mit messbarem Erfolg: Die nun bei Bedarf viel häufigeren sowie unabhängigeren Produktivsetzungen reduzieren nicht nur die Dauer eines neuen Features von der Idee bis zum Kunden massiv, sondern steigern auch die Qualität der IT-Dienstleistungen.
Das Herz der IT der Zürcher Kantonalbank schlägt im «Chreis 5»
Quelle: ZKB

Wie ein Massanzug: DevOps und Microservices

Insbesondere für autonome DevOps-Teams sind Microservices die perfekte Ergänzung, da die Teams damit die komplette Verantwortung für ihre Services übernehmen können: von der Erstellung, über den Betrieb bis hin zur Wartung. Dies beschleunigt den Entwicklungsprozess, ermöglicht schnellere Reaktionszeiten auf Änderungen und erhöht die Agilität insgesamt. Voraussetzung dafür ist, dass die Microservices möglichst passend und kongruent auf die Teams zugeschnitten sind. Hier hilft der Ansatz von Domain-Driven Design, der die Strukturierung der Systeme und der Organisation konsequent entlang der Geschäftsprozesse fordert.

Standardisierung: Die Vorzüge

In der Theorie ist die Autonomie der DevOps-Teams sehr breit definiert und die Teams dürfen sämtliche Entscheidungen, zum Beispiel auch die Wahl des Technologie-Stacks, komplett autonom treffen. Jedes grössere Unternehmen hat jedoch ein Interesse an einer gewissen teamübergreifenden Konsistenz bezüglich der Art und Weise, wie Applikationen entwickelt werden. Eine Standardisierung der eingesetzten Technologien bietet viele Vorteile, wie vereinfachter Wissensaustausch, gemeinsames Tooling, erhöhte Sicherheit und Wiederverwendbarkeit. Zudem können mittels Technologie-Konsolidierung Lizenzkosten optimiert und Betriebsaufwände reduziert werden.
In der ZKB werden die diversen internen Standard-Technologie-Stacks in sogenannten Workbenches definiert, wobei die wichtigste Workbench rund um das Java-Ökosystem (Java/Kotlin mit Spring-Boot) gruppiert ist. Mit dieser auf Microservices-Architekturen optimierten Workbench können Applikationen auf effiziente Weise ent­wickelt und betrieben werden. Dank der Standardisierung sind Aspekte wie Logging, Monitoring und Security immer konsistent abgedeckt, ohne dass diese in jeder App neu implementiert und gewartet werden müssen. Das reduziert die Time-to-Market und steigert gleichzeitig die Qualität der Applikationen.
“Microservices sind Wasser auf die Mühlen der Bestrebungen nach Autonomie in den DevOps-Teams„
Mathias Amherd

Trotz Standardisierung: Handlungs­spielraum für die DevOps-Teams

Trotz der in grösseren Firmen nötigen Standardisierung ist es wichtig, dass DevOps-Teams über möglichst grossen Handlungsspielraum verfügen. Ein zentraler Grund dafür ist Innovation – diese entsteht nur, wenn Teams kreative, neue Lösungswege ausprobieren können. Zudem werden standardisierte Prozesse und Technologien nie in der Lage sein, alle spezifischen Anforderungen eines Unternehmens abzudecken. Ein gewisser Handlungsspielraum ermöglicht es den Teams, sich besser an ändernde Bedürfnisse anzupassen und schneller auf Herausforderungen zu reagieren. Aber der wichtigste Punkt ist Verantwortung: Wenn DevOps-Teams eine grosse Autonomie haben, übernehmen sie auch mehr Verantwortung für ihre Entscheidungen und können sich stärker mit ihrer Arbeit identifizieren, was Motivation und Zufriedenheit steigert.
Stehen die beiden Konzepte, autonome Teams und Standardisierung, nun im Widerspruch? Falls es gelingt, dort zu standardisieren, wo es die Freiheit der Teams nicht unnötig einschränkt, spielen beide Konzepte ihre Stärken gemeinsam aus. Die Fähigkeit einer Organisation, die ideale Balance zu finden, ist allerdings eine Herausforderung und benötigt laufende Adaption.
Die Autoren
v. l. n. r. Stefan Müller, Beat Kuster, Mathias Amherd
ZKB
Stefan Müller ist DevOps Solution Engineer bei der Zürcher Kantonalbank.
Beat Kuster ist DevOps Solution Engineer bei der Zürcher Kantonalbank.
Mathias Amherd ist Leiter DevOps Finanzierungen & Geldverkehr bei der Zürcher Kantonalbank. www.zkb.ch



Das könnte Sie auch interessieren