Eine Kultur der Zusammenarbeit

DevOps-Bewegung will Silodenken beenden

Die DevOps-Bewegung will Silodenken und gegenseitige Schuldzuweisungen zwischen Software-Entwicklung und IT-Betrieb beenden. Wie können IT-Verantwortliche diesen Kulturwandel im eigenen Unternehmen aktiv vorantreiben?

Team am Tisch

Ein Vorteil gemeinsamer Teams: Konflikte können in kleinem Rahmen ausgetragen und gelöst werden.

Wenn Software-Entwicklung und IT-Betrieb unter großem Zeit- und Erfolgsdruck stehen, kommt es regelmäßig zu Konflikten und Schuldzuweisungen. Die Kluft zwischen Development (Dev) und Operations (Ops) zu überwinden und so eine Kultur der Zusammenarbeit zu entwickeln, ist das Ziel der DevOps-Bewegung. Schon innerhalb eines Unternehmens ist es schwierig, den Produktverantwortlichen, die IT-Entwicklung sowie den -Betrieb unter einen Hut zu bringen. Noch komplexer wird es, wenn externe Dienstleister mit ins Spiel kommen. Rechenzentrumsbetreiber wie Noris Network gehen inzwischen aktiv mit Dev­Ops-Experten auf agil entwickelnde Kunden zu, um gemeinsam Projekte mit Continuous-Delivery-Strategien zu realisieren. Was muss getan werden?

Spezialisierung baut Kompetenz auf. Das ist der Grund, warum sich Unternehmen beispielsweise bei der Entwicklung von Webshops an Entwicklungsdienstleister und für das skalierbare Hosting und den Schutz solcher Systeme an spezialisierte Rechenzentrumsbetreiber wenden. Doch was soll das Unternehmen beim Start der Entwicklung als Hosting in Auftrag geben? Wie wird der Software-Entwickler die Software designen und implementieren? Und wie soll das Gesamtsystem nach der Projektphase gepflegt werden? Kann der Software-Spezialist die Anforderungen an Hardware und Konnektivität richtig einschätzen?
Zur Klärung dieser Fragen ist es sinnvoll, ein einen Querschnitt bildendes Team zu gründen. Es sollte die fachlichen Anforderungen durch den Produktverantwortlichen, die Software-Engineering-Expertise durch die Entwickler und das Betriebswissen durch den Betreiber darstellen. Wichtig: Diese Teamstruktur sollte bereits zu Beginn des Projekts eingerichtet werden. Und es sollte bewusst nicht rein virtuell organisiert sein.

Es ist ungewohnt, bereits zu Beginn einer Entwicklung Experten für den Betrieb dabeizuhaben. Aber für ein komplexes System müssen Infrastruktur und Dimensionierungsfragen frühzeitig geklärt werden, denn die Betreibbarkeit einer Software entscheidet sich größtenteils bereits in der Design-Phase. Mit modernen Virtualisierungs- und Container-Technologien sowie skalierbaren Cloud-Lösungen können Fragen der benötigten Ressourcen zwar teilweise auf später verschoben werden, aber die Grundlagen für eine spätere Skalierbarkeit des Systems müssen frühzeitig gelegt werden.

Bei zeitkritischen Projekten kann es durchaus sinnvoll sein, einvernehmlich mit einem „Minimum Viable Product“ zu beginnen. Dieses ist auf Kernfunktionalität beschränkt und weitere Funktionen werden erst später in kleinen Inkrementen nachgeliefert. Hierfür muss bereits frühzeitig auf eine Continuous-Delivery-Strategie und häufige Abstimmung gesetzt werden.

Konflikte austragen


Ein weiterer Vorteil gemeinsamer Teams: Konflikte können in kleinem Rahmen ausgetragen und gelöst werden. Das spart Zeit und Ärger, denn erfahrungsgemäß lässt sich so schneller und sachlicher eine Lösung finden, als wenn Beschwerden in der Organisation eskaliert werden. Ebenfalls wichtig in diesem Zusammenhang: Durch den Dialog zwischen „Dev“ und „Ops“ werden auch nicht funktionale Eigenschaften der Systeme besser beachtet, also Fragen der Sicherheit, Stabilität, Pflege sowie Skalierbarkeit – Eigenschaften, die ein Produkt nachhaltig und robust machen. Es liegt in der Natur der Sache, dass die für den Betrieb Zuständigen hier einen schärferen Blick haben.

Um Software-Verbesserungen schnell, zuverlässig und stabil in die Produktionsumgebung zu bringen, ist ein durchgängig automatisierter Prozess, eine Pipeline, unabdingbar. Diese Pipeline reicht von der Quellcodeübergabe und dem Test bis hin zum automatisierten Deployment in die Produktionsumgebung. Dabei setzt man heute auf Open-Source-Tools, die bereits in den Entwicklungsabteilungen vieler Unternehmen genutzt werden. So lässt sich „Foreman“ für die automatisierte Provisionierung instrumentalisieren. In Verbindung mit der Konfigurations-Management-Software „Puppet“ wird es möglich, die Konfiguration der Infrastruktur als Quellcode (Infrastructure as Code) zu behandeln.

Für die Steuerung der Deployment-Pipeline bieten sich Tools wie „Thoughtworks Go“ oder auch „Jenkins“ an. Infrastructure as Code ist ein Paradebeispiel für das Angleichen der Arbeitsweisen von Entwicklung und Betrieb. Es bedeutet, dass sämtliche benötigten Vorgänge und Konfigurationen zum Aufsetzen von Infrastruktur oder zum Durchführen von Deployments als Quellcode repräsentiert und entsprechend behandelt und entwickelt werden. Dadurch können die in der Software-Entwicklung üblichen Lösungen zur Qualitätskontrolle auch für den Betrieb eingesetzt werden. Vorzüge des Infrastructure-as-Code-Ansatzes sind die zentrale Verwaltung des Quellcodes unter Einsatz einer Versionskontrolle. Darüber hinaus kann die Konfiguration von Servern und virtuellen Maschinen automatisiert getestet werden und somit die Qualität und auch die Wiederholbarkeit eines Deployments sicherstellen.

Die Methoden und Tools, um Entwicklung und Betrieb in einem gemeinsamen agilen Prozess zu automatisieren, sind vorhanden. Am Anfang steht aber für viele IT-Verantwortliche die Entscheidung an, die verschiedenen Spezialisten „zu ihrem Glück zu zwingen“ und ein gemischtes Team zusammenzubringen. Die Treffen, oder gar das gemeinsame Team, werden den Beteiligten zunächst vielleicht nicht sinnvoll vorkommen und es wird Widerstände geben, denn auch junge IT-affine Menschen sind vor Veränderungsängsten nicht gefeit. Doch die praktische Erfahrung wird spürbar machen, dass dieser Ansatz der Qualität des Projekts gut tut und einige Probleme vermieden werden können.

Bildquelle: Thinkstock/iStock

©2019Alle Rechte bei MEDIENHAUS Verlag GmbH

Unsere Website verwendet Cookies, um Ihnen den bestmöglichen Service zu bieten. Durch die weitere Nutzung der Seite stimmen Sie der Verwendung zu. Weitere Infos finden Sie in unserer Datenschutzerklärung.

ok