Suchen

Cloud-basierte agile Entwicklung DevOps, und alle ziehen an einem Strang

Autor / Redakteur: Andreas Gauger * / Elke Witmer-Goßner

Hinter DevOps verbirgt sich der Leitgedanke, Softwareentwicklung und Operations gemeinsam Verantwortung übernehmen zu lassen für eine agile Entwicklung und einem gleichzeitig stabilen IT-Betrieb. Vier Grundelemente helfen bei der Umsetzung.

Firmen zum Thema

DevOps-Plattformen in der Cloud schicken sich an, die Software-Entwicklung umzukrempeln.
DevOps-Plattformen in der Cloud schicken sich an, die Software-Entwicklung umzukrempeln.
(Bild: Peggy_Marco - Pixabay.com / CC0 )

Es ist eine kleine Kulturrevolution: Um Windows 10 möglichst schnell auf den Markt zu bringen, hat Microsoft viele alte Zöpfe abgeschnitten, vor allem die Tradition der Major Releases in langen Abständen. Stattdessen werden neue Funktionen in rascher Folge über Windows Update ausgeliefert.

Mit der Abkehr von der Idee des „großen Wurfs“ reagiert Microsoft auf Veränderungen, die auch IT-Organisationen in Unternehmen bemerken. Aktuelle Entwicklungen von Mobile über Social Media bis hin zu Cloud Computing haben die Anforderungen an die IT extrem erhöht.

Die Antwort auf kürzere Time-to-Market und höhere Flexibilität ist DevOps. Dieser Ansatz propagiert bessere Kommunikation zwischen Entwicklung und Betrieb und starke Automatisierung. Beides sorgt dafür, dass Anwendungen deutlich schneller zur Verfügung stehen und trotzdem eine hohe Qualität aufweisen.

Schulterschluss

DevOps ist ein Kunstwort aus „Development and Operations“. Es steht für den Ausgleich im Zielkonflikt zwischen Dynamik und Stabilität. Entwickler wollen in erster Linie die Anforderungen an die Software erfüllen. Dafür hat sich ein neues Paradigma etabliert: Agilität. Neue Funktionen werden inkrementell entwickelt und in kurzen Abständen ausgeliefert.

Dies widerspricht aber dem üblichen Vorgehen im IT-Betrieb. Admins sind die Herrscher über die Stabilität der Infrastruktur. Dem halten die Verfechter von DevOps entgegen: Normalerweise sollten Devs und Ops reibungslos zusammenarbeiten und nicht erst dann ins Gespräch kommen, wenn das neue Release bereits fertig ist. Agilität schließt Stabilität nicht aus.

Gemeinsame Verantwortung und Automatisierung

Um die Abläufe in Entwicklung und Betrieb mit dem DevOps-Konzept zu dynamisieren, können Unternehmen vier Grundelemente einsetzen. Zunächst einmal benötigen sie Arbeitsgruppen aus Entwicklern und Betriebspersonal. Die Teams planen frühzeitig Entwicklung, Test und Rollout, wodurch sie eine gemeinsame Verantwortung für einen IT-Service oder ein Produkt besitzen.

Das zweite Element ist „Continuous Integration and Delivery“. Agile Entwicklung erfordert zunächst „Continuous Integration“: Fertige Releases müssen kurz hintereinander getestet und rasch in die IT-Infrastruktur eingebunden werden. Die Konsequenz daraus ist „Continuous Delivery“, Anwendungspakete erreichen in kurzer Abfolge die Produktionsumgebung. Dabei darf es nicht zu einem Rückstau kommen.

Agile Methoden beschleunigen Test, Integration und Bereitstellung eines Release. Deshalb ist ein drittes Element der Abbau von Handarbeit bei der Provisionierung. Die aktuelle DevOps-Werkzeugpalette kennt viele Automatisierungs-Tools für diesen Zweck, zum Beispiel für das automatisierte Bereitstellen von Umgebungen und deren Integration in die vorhandene IT-Infrastruktur (Puppet, Chef) oder das Verwalten von Softwarekomponenten (Nexus).

Das vierte Element ist die Cloud, genauer gesagt: Infrastructure as a Service (IaaS). Sie ist ideal für die Entwicklung, den Test und die Integration von neuen Releases nach dem agilen Paradigma. Ganze Entwicklungsplattformen samt Tutorials, Experten-Communities und Support helfen bei der Bewältigung der Arbeit.

Außerdem sind in der Wolke virtuelle Umgebungen konfigurierbar, in denen die Software unter realen Bedingungen getestet und optimiert werden kann. Storage, Server und Netzwerkkomponenten werden mit nur wenigen Mausklicks vorbereitet. Die eigene Infrastruktur bleibt vom Entwicklungsprozess weitgehend unberührt – mit bedeutenden Vorteilen für den Betrieb und die Kosten.

Agilität und Kommunikation

Doch was heißt das nun in der Praxis? Werden die Admins durch automatische, vom Entwickler gestartete Routinen abgeschafft? Mit Sicherheit nicht, denn so leicht wird den IT-Organisationen die Arbeit nicht ausgehen. Immer mehr Releases und stetig wachsende Anforderungen in anderen Bereichen sorgen für eine hohe Auslastung.

Die agilen Methoden erlauben den Entwicklerteams eine höhere Produktivität und kurze, schnell aufeinanderfolgende Arbeitszyklen. Cloud Computing (IaaS) und die verschiedenen Automatisierungs-Tools sind die Voraussetzung für diese Beschleunigung. Die Konsequenz ist allerdings nicht, dass Entwicklung und Rollout einer neuen Software-Version einfacher geworden sind.

Im Gegenteil. Die Teams, die Software herstellen und betreiben, arbeiten jetzt in einer deutlich komplexeren Umgebung als dies noch vor wenigen Jahren der Fall war. Ab einer gewissen Unternehmensgröße und Schwierigkeit der Business-Anforderungen sind jederzeit mehrere Releases in Vorbereitung. Mehr noch: Sie befinden sich in unterschiedlichen Phasen von Entwicklung, Test, Integration und Deployment. Hinzu kommt eine Eigenheit von DevOps, die häufig übersehen wird. Das Konzept ist keine Sammlung von Best Practices und kein einfach einzusetzender Blueprint für erfolgreiche Software-Projekte. Es fordert eine Vorgehensweise, die auf Agilität und Kommunikation beruht, gibt aber keinerlei Prozesse vor.

Doch DevOps wird bereits seit einigen Jahren in vielen Unternehmen diskutiert und umgesetzt. Deshalb gibt es zahlreiche praktische Erfahrungen, die in der neuen Community-Site „DevOps Central“ von ProfitBricks geteilt werden können. Sie richtet sich an Fachanwender, die ihr Wissen in Tutorials zur Verfügung stellen und DevOps-Projekte diskutieren und dokumentieren.

Flache Hierarchien und Transparenz

Die Erfahrungen der Praktiker aus der Community zeigen, dass DevOps in den IT-Organisationen sehr häufig drei Konsequenzen hat. Erstens verändert sich das Deployment. Oft ist die Integration eines Release in vorhandene IT-Systeme eine Entwicklungsaufgabe ganz eigener Art. Hier muss eine Feedback-Schleife zum Kunden aufgebaut werden, damit Anregungen und Erfahrungen der Nutzer in die Arbeit einfließen können.

Doch auch die Entwicklung ändert sich, vor allen Dingen durch den Einsatz von IaaS-Plattformen: Die Entwickler haben zweitens mehr Zeit für Experimente, da Build- und Test-Umgebungen recht einfach bereitgestellt werden können. Mit der Cloud ist es für Entwickler möglich, schnell ein „Proof of Concept“ zu bauen und trotzdem Ressourcen für das nächste Release freizuhalten.

Andreas Gauger, ProfitBricks.
Andreas Gauger, ProfitBricks.
(Bild: Michael Setzpfandt/ProfitBricks)

Die durch agile Methoden und DevOps freigesetzte Dynamik ist typisch für Startups, wird aber ebenso von großen Unternehmen geschätzt. Deshalb ist hier das Interesse am neuen strategischen Ansatz groß, er wird häufig vom Management eingeführt. Doch das erfordert Änderungen der Organisationsstruktur, auch außerhalb der IT. Die neue Arbeitsweise der IT hat also drittens Rückwirkungen auf das gesamte Unternehmen.

Die entsprechenden Stichworte sind bekannt und werden weithin diskutiert: Flache Hierarchien, mehr Kommunikation und größere Transparenz, also weniger Bürokratie und Silodenken. Letztlich muss auch das Business mit Dev und Ops an einem Strang ziehen, anders werden sich viele Unternehmen im aktuellen Marktumfeld nur schwer behaupten können.

* Der Autor Andreas Gauger ist CMO und Gründer von ProfitBricks.

(ID:44394979)