Buch-Review: Continuous Delivery — Der pragmatische Einstieg (Wolff)

Note: Most articles on this blog are in English, but I review books in the language they are written in. I read the german edition of this book, so this article is in German.

Das Buch
Title: Continuous Delivery — Der pragmatische Einstieg
Authors: Wolff, E.
Publisher: dpunkt
Year: 2015
Pages: 253


Meine Beschreibung

Das Buch hält, was der Untertitel verspricht, und gibt eine relativ knappe, und sehr praktisch orientierte Einführung in Continous Delivery (CD). CD ist ein Weiterdenken von Continuous Integration (CI), und es geht darum, nach dem Build von Software (wie bei CI) auch die danach folgende Auslieferung so weit wie möglich zu automatisieren. Das Buch richtet sich dabei an unterschiedliche Leserschaften, denn die Einführung von CD betrifft neben den Entwicklern eben auch die Admins und Operations und natürlich das Management. Es werden also auch zu CD passende Organisationsformen aus Nicht-Programmier-Bereichen angesprochen (Lean Startup, DevOps, etc). Tatsächlich geht es eigentlich gar nicht um Software-Entwicklung im Sinne des Programmierens (bis auf die Tests), sondern hauptsächlich um den Aufbau einer CD-Pipeline. Dabei werden sehr pragmatisch dafür nützliche Softwaretools aufgezählt, verglichen, beschrieben und es werden kurze Übungen vorgeschlagen, mit denen man einen guten Eindruck von den Tools bekommt und sie evaluieren kann. Der Fokus liegt im Bereich Open-Source Tools unter Linux/Unix zum Aufbau einer CD-Pipeline für die Entwicklung von Java EE-Anwendungen. Es werden aber auch kommerzielle closed-source Lösungen vorgestellt, und auch die Möglichkeiten zur Nutzung von PaaS (oder Outsourcing der Hardware in die Cloud) werden diskutiert. Zum Aufbau der Pipeline wird dabei viel auf Virtualisierung gesetzt, und es kommen Tools wie Docker und Vagrant zum Einsatz. Build-Tools wie Ant, Maven und Gradle sowie die Automatisierung von Unit-Tests, Akzeptanztests und Lasttests werden ebenfalls praxisnah besprochen. Außerdem unterschiedliche Strategien zum Deployment von Software und Umgang mit Fehlern dabei, inklusive dem dabei heiklen Thema Datenbanken.


… und mein persönlicher Eindruck

Das Buch ist sehr praxisnah und gut lesbar, und die Tiefe, in der die Tools erklärt werden, ist sehr passend gewählt. Ich verstehe mich hauptsächlich als Software-Entwickler, und habe es aus Interesse von vorne bis hinten in recht kurzer Zeit durchgelesen, würde aber sagen, dass es wohl am wertvollsten für die Leute ist, die die Infrastruktur für die CD-Pipeline wirklich einrichten und warten müssten, also in vielen Fällen wohl eher die Administratoren als die Entwickler. Die Praxis-Vorschläge fand ich exzellent. Das Buch richtet sich dabei recht deutlich an Enterprise-Anwender, und manche der vorgestellten Tools und Techniken sind in kleineren Projekten oder Umgebungen (ich wntwickle Software in einem Arbeitskreis an einer dt. Universität) sicher Overkill, aber trotzdem interessant zu kennen. Nach der Lektüre kenne ich die Tools, und kann ihren Nutzen für mich bewerten, und das war das Ziel. Das Buch hat also meine Erwartungen voll erfüllt.

Was ich daraus gelernt habe

  • CD ist ein Weiterdenken von CI, und setzt darauf, alle Schritte von Build und Deployment zu automatisieren. Wichtig sind insbesondere gute Tests.
  • Dies erlaubt einfaches, schnelles und häufiges Deployment. Das führt dazu, dass neu entwickelte Features schnell in Produktion gebracht werden können, und schnell einen Nutzen und Wert bringen.
  • Ich habe viele gute Automatisierungstools kennengelernt (und kürzlich meinen eigenen Jenkins-CI-Server bei OpenShift in Betrieb genommen)
Advertisements

About dfspspirit

PhD student in bioinformatics, interested in photography, level design, digital image manipulation, architecture and, of course, bioinformatics.
This entry was posted in IT and computers, Software Design and tagged , , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s