Continuous Delivery – Der pragmatische Einstieg
Eberhard Wolff leistet in seinem Buch das, was der Untertitel verspricht: Nach der Lektüre ist der Leser in der Lage abzuschätzen, was Continuous Delivery für den eigenen Bereich bringt, er kann mit den vorgestellten oder erwähnten Werkzeugen einsteigen und so schrittweise die eigenen Entwicklungsprozesse optimieren.
- Michael Müller
Eberhard Wolff
Continuous Delivery – Der pragmatische Einstieg
dpunkt.verlag, 2014
IX + 254 Seiten, € 34,90
ISBN 978-3-86490-208-6
Haben sich Softwareentwickler vor ein paar Jahren mit Continuous Integration, dem automatisierten Build-Prozess inklusive Unit- und Integrationstests beschäftigt, wird das Thema heute weiter gedacht, bis hin zum automatisierten Rollout. Continuous Delivery heißt das, und es führt zu einem Umdenken im Release-Management: Software wird nicht mehr für einen langen Zeitraum stabil gehalten und dann viele neue Features in einem aufwendigen Verfahren ausgerollt. Die Automatisierung erlaubt vielmehr einen kontinuierlichen Prozess der stetigen Auslieferung kleiner Features. Das bleibt natürlich nicht ohne Auswirkungen auf den Betrieb. Entwickler und Operatoren müssen ihre Zusammenarbeit neu definieren, bis hin zur Verschmelzung von Entwicklung und Betrieb. DevOps heißt das passende Stichwort.
Continous Delivery und DevOps bedingen zwar einander nicht, aber oftmals hängt beides dicht zusammen. Eberhard Wolf geht natürlich auf diesen Zusammenhang in einem der hinteren Kapitel des vorliegenden Buchs ein. Zu DevOps selbst gibt er nur einen kurzen Überblick, der teilweise an eine komprimierte Zusammenfassung einiger Kapitel von Michael Hüttermanns "DevOps" erinnert. Und so geht es in vielen Teilen des Buchs. Der Autor verschafft dem Leser überblicksartig eine theoretische Grundlage, und geht dann auf einen konkreten Technik-Stack ein.
Bestimmte Produkte, häufig Open Source, mit denen sich einzelne Phasen der Lieferkette realisieren lassen, werden vorgestellt. Auch hier wird vornehmlich die wesentliche Funktionsweise gezeigt; Details bleiben außen vor. Dennoch kann nicht behauptet werden, das Buch sei nur oberflächlich. Ziel ist eben nicht, wenige Techniken im Detail auf 1000 oder mehr Seiten darzustellen, sondern den Leser in die Lage zu versetzen, mit überschaubarem Leseaufwand die Zusammenhänge und verschiedenen Aspekte der kontinuierlichen Auslieferung zu verstehen. Und wer zu einzelnen Produkten mehr Tiefgang wünscht, wird aufgefordert, selbst zu experimentieren. Zum leichten Einstieg stellt der Autor dem Leser Aufgaben, ja fordert geradezu auf, das Erlernte praktisch zu vertiefen. Das ist aber nur eine Ergänzung zum Lesestoff, denn der Haupttext ist nicht zum direkten Nachvollziehen gedacht, sondern lässt sich flüssig lesen.
Eberhard Wolff hat sein Buch aus drei Teilen aufgebaut: Einleitung, Prozesskette, sowie eine Management- und Architektursicht. In der Einleitung erläutert er ausführlich, was hinter dem Gedanken von Continuous Delivery steht und geht auf die Infrastruktur ein. Hierzu gehört beispielsweise die Automatisierung mit Chef und anderen Werkzeugen sowie der automatisierte Aufbau von Umgebungen mittels Virtualisierung sowie Containern, namentlich Docker. In diesem Teil liefert er die theoretische und praktische Klammer für die Prozesskette.
Diese startet mit dem Klassiker Continuous Integration, ein Kapitel, das von Bastian Spanneberg beigesteuert wurde. Es umfasst (bekanntermaßen) auch Unit-Tests. Doch die kontinuierliche Lieferung erfordert mehr. Und so beschäftigen sich die nächsten Kapitel mit Akzeptanz- und Kapazitätstests sowie dem explorativen Testen. Ist Letzteres nicht ein manuelles Verfahren? Ja, doch dass dies nicht dem Gedanken von Continuous Delivery widersprechen muss, erläutert Wolff anschaulich. Schließlich geht es um Deploy und Operation.
Der letzte Teil informiert über Einführungsstrategien im Unternehmen, zeigt den erwähnten Zusammenhang zu DevOps und beschäftigt sich mit dem Einfluss auf die Softwarearchitektur. Die Auslieferung in vielen kleinen Schritten ist nämlich mit entscheidend davon abhängig, wie Software in unabhängige Komponenten aufgeteilt werden kann.
Insgesamt liefert der Autor das, was der Untertitel verspricht: den pragmatischen Einstieg in ein aktuelles Thema der Softwareentwicklung. Nach der Lektüre ist der Leser in der Lage abzuschätzen, was Continuous Delivery für den eigenen Bereich bringt, kann mit den vorgestellten oder erwähnten Werkzeugen einsteigen und so schrittweise die eigenen Entwicklungsprozesse optimieren. Und selbst, wenn es nicht darum geht, gleich die komplette Lieferkette zu automatisieren, so liefert das Buch wertvolle Anregungen, einzelne Phasen zu überdenken und zu optimieren.
Michael Müller
ist als Bereichsleiter Softwareentwicklung der InEK GmbH verantwortlich für Projekte im Web-, Java- und .NET-Umfeld. Daneben betätigt er sich als freier Autor und verfasst Fachartikel zu diversen Entwicklungsthemen sowie Buchrezensionen.
(ane)