Agile Partner: DevOps und Docker verstehen sich prächtig

Die Zeiten, in denen Software mit jährlichen Release-Zyklen (weiter-)entwickelt wurde, sind vorbei. Immer stärker stechen Geschwindigkeit und Effizienz als die zentralen Erfolgsfaktoren heraus. Unternehmen, die in rascher Abfolge neue Features, mehr Sicherheit und eine höhere Stabilität liefern, erarbeiten sich klare Vorteile. Denn durch ihre Continuous Delivery können sie sehr flexibel auf Marktentwicklungen und Kundenanforderungen reagieren. Agile Methoden wie Scrum oder Extreme Programming unterstützen die schnelle Entwicklung. Allerdings setzen rasche Release-Folgen auch bei den IT-Betreibern eine erhöhte Agilität und Flexibilität voraus: Die Kundenseite muss bereit sein, sich auf häufige Änderungen in der Software einzulassen. Und dass, obwohl die Aufgabe, Updates in bestehende Produktivumgebungen zu implementieren, immer auch ein potenzielles Ausfallrisiko darstellt.

Für die Entwicklung und Qualitätssicherung ist das Feedback der Betreiber ein enorm wertvoller Input: Wo gibt es Probleme? Wohin entwickeln sich die Prozesse? Welche Funktionen müssen angepasst werden? Ohne diesen Rückkanal laufen Weiterentwicklungen schnell in die falsche Richtung. Eine Silomentalität, nach der IT-Betreiber auftretende Probleme als Aufgabe der Entwickler sehen – und umgekehrt – ist hier wenig zielführend. Kommunikation und Kooperation zwischen Entwicklern und Betreibern sind nötig. Denn die neue Agilität betrifft den gesamten Software Development Life Cycle.

DevOps: Partnerschaftlich agile Prozesse aufbauen

Softwareentwicklung, die ihr agiles Potenzial ausschöpft, weil sie die Kunden miteinbezieht, braucht einen grundlegenden Wandel der Unternehmenskultur auf beiden Seiten. Der IT-Trend DevOps verspricht genau das. In dem Kunstwort, zusammengesetzt aus Development und Operations, steckt schon sein eigentliches Wesen: Softwareentwicklung (Dev) und der IT-Betrieb (Ops) arbeiten zusammen und stimmen ihre Prozesse aufeinander ab. Auch wenn es die Qualitätssicherung (Quality Assurance) nicht zum Namensbestandteil gebracht hat, wird sie bei DevOps doch selbstverständlich mitgedacht. Das Ziel: die Qualität und die Sicherheit der Software stetig zu optimieren.

DevOps sollte dabei nicht als Tool oder Technik verstanden werden. Vielmehr als eine Denkweise, ein Prinzip zur bereichs- und unternehmensübergreifenden Prozessverbesserung. Dennoch spielen Tools und Technologien durchaus eine wichtige Rolle, wenn Unternehmen DevOps einführen, um ihre agile Softwareentwicklung zu unterstützen. Eine Schlüsselfunktion dafür kann die Container-Technologie übernehmen. Auf diesem Gebiet hat zuletzt besonders die Open-Source-Software Docker einigen Ruhm erlangt.

Viel Leben im Container

Der Charme von Container-Technologien wie Docker liegt darin, dass Apps innerhalb isolierter Bereiche (den Containern) laufen und ihre Entwicklung bereits sehr nah am späteren Produktivsystem stattfindet. Im Gegensatz zu virtuellen Maschinen werden dazu nicht komplette Betriebssysteme gestartet, sondern nur Systembestandteile, die zum Betrieb der Anwendung nötig sind. Ein Vorteil dieses Vorgehens: Die Container kommen sich nicht gegenseitig in die Quere, und sie gehen sehr effizient mit den Hardware-Ressourcen um. Denn schließlich muss der Rechner, auf dem sie laufen, nicht zusätzlich zu seinem primären Betriebssystem noch weitere Virtualisierungsinstanzen starten. Im Ergebnis lässt sich die Software unter realitätsnahen Bedingungen betreiben – unabhängig vom eingesetzten Host-System.

Gerade bei agiler Softwareentwicklung und Unternehmen, die über den DevOps-Ansatz eine Continuous Delivery anstreben, bieten Tools wie Docker enorme Möglichkeiten. Bislang war es mitunter sehr aufwendig, eine Software, die in dem einen Systemkontext funktionierte, in einem anderen Systemkontext zum Laufen zu bringen. Über Container lässt sich die Software schon in frühen Entwicklungsphasen unter unterschiedlichsten Bedingungen testen. So können Fehlerquellen aufgespürt und behoben werden, die sonst erst im Life-System auftauchen würden. Die Übertragung einer App aus einem Testsystem in die Produktivumgebung ist dadurch mit weitaus weniger Sorgen verbunden als bisher. Für DevOps lassen sich damit gleich zwei Ziele erreichen: Zum einen verkürzen Container die Testphasen und treiben so die agile Entwicklung von neuen Funktionen voran. Zum anderen bekommen die Betreiber Releases, die bereits eine sehr hohe Ausfallsicherheit mitbringen.

Im Dienste der Kooperation

Eine Besonderheit von Docker besteht darin, dass darüber erstellte Container leicht einzurichten sind. Über ein sogenanntes Docker-Image wird nur die jeweilige Anwendung –inklusive ausgewählter Bibliotheken – integriert und virtualisiert. Grundlage dafür ist eine Konfigurationsdatei, das Dockerfile. Dieses Dockerfile wird beispielsweise vom Betreiber nach den bei ihm vorhandenen System-Parametern definiert. Die Entwickler können dann ein darauf aufbauendes Docker Image erzeugen, das alle relevanten Abhängigkeiten beinhaltet. Da Docker als Plattform mit einheitlicher Entwicklungsumgebung konzipiert ist, verringert sich obendrein die Einarbeitungszeit für neue Entwickler.

Die Verwendung von Docker Images sorgt auch dafür, dass bereits fertiggestellte Teilapplikationen sich leichter verteilen lassen. Über eine zentrale Docker Registry – beispielsweise in der Cloud – können Entwickler die Images vorhalten und auf beliebige Zielsysteme übertragen. Das kann die Testumgebung in der Qualitätssicherung sein oder auch das Produktivsystem des Betreibers. Der entscheidende Vorteil des Verfahrens: Die Anwendungen in den Containern laufen überall in einer identischen Umgebung und zeigen daher überall das identische Verhalten. Die für DevOps zentralen Prinzipien wie Zusammenarbeit und Kommunikation zwischen allen Beteiligten erhalten so starke Unterstützung.

Zurück zur Übersicht

E-Book:
Kernkompetenzen agilen Führens und Arbeitens in der IT

ZUM DOWNLOAD

E-Book: Agiles Projektmanagement mit Scrum


ZUM DOWNLOAD

E-Book:
Stressbewältigung: 10 Tipps für einen entspannten Tag

ZUM DOWNLOAD

E-Book: Tipps für mehr Durchsetzungs-
vermögen

ZUM DOWNLOAD