: Eberhard Wolff
: Continuous Delivery Der pragmatische Einstieg
: dpunkt
: 9783864919305
: 2
: CHF 22,90
:
: Astronomie
: German
: 282
: Wasserzeichen/DRM
: PC/MAC/eReader/Tablet
: PDF
Continuous Delivery ermöglicht es, Software viel schneller und mit wesentlich höherer Zuverlässigkeit in Produktion zu bringen, als es bisher möglich war. Grundlage dafür ist eine Continuous-Delivery-Pipeline, die das Ausrollen der Software weitgehend automatisiert und so einen reproduzierbaren, risikoarmen Prozess für die Bereitstellung neuer Releases bietet. Dieses Buch macht Sie mit dem Aufbau einer Continuous-Delivery-Pipeline vertraut und erklärt, welche Technologien Sie dazu einsetzen können. Dabei lernen Sie u.a. folgende Themen kennen: • Infrastruktur-Automatisierung mit Chef, Docker und Vagrant • Automatisierung von Builds und Continuous Integration • Akzeptanztests, Kapazitätstests, exploratives Testen • Einführung von Continuous Delivery im Unternehmen • Continuous Delivery und DevOps • Auswirkungen auf die Softwarearchitektur Als praktisches Beispiel wird ein konkreter Technologie- Stack vorgestellt. Zahlreiche Aufgaben und Vorschläge für weitergehende Experimente laden Sie darüber hinaus zur praktischen Vertiefung des Themas ein. Nach der Lektüre können Sie abschätzen, welche Vorteile Continuous Delivery konkret bietet, und Sie verfügen über das nötige Handwerkszeug, um Continuous Delivery in Ihrem eigenen Arbeitsumfeld zu etablieren. Die Neuauflage wurde in Bezug auf Werkzeuge wie Docker, Jenkins, Graphite und den ELK-Stack aktualisiert. An neuen Themen sind Docker Compose, Docker Machine, Immutable Server, Microservices und die Einführung von Continuous Delivery ohne DevOps hinzugekommen.

Eberhard Wolff beschäftigt sich seit vielen Jahren mit Softwareentwicklung und -architektur. Er ist Autor zahlreicher Fachartikel sowie Bücher und regelmäßiger Sprecher auf internationalen Konferenzen. Außerdem ist er im Programmkomitee verschiedener Konferenzen vertreten. Er ist Fellow bei der innoQ. Continuous Delivery und die Auswirkungen hat er in verschiedenen Projekten in unterschiedlichen Rollen kennen gelernt. Der Ansatz verspricht, die Produktivität der IT-Projekte erheblich zu erhöhen, und hat Auswirkungen auf das Vorgehen, aber auch auf die Architektur und die Technologien. Daher lag es für ihn auf der Hand, dieses Buch zu schreiben.
Inhaltsverzeichnis5
1 Einleitung11
1.1 Überblick über Continuous Delivery und das Buch11
1.2 Warum überhaupt Continuous Delivery?12
1.3 Für wen ist das Buch?15
1.4 Neu in der 2. Auflage15
1.5 Übersicht über die Kapitel17
1.6 Pfade durch das Buch18
1.7 Danksagung20
2 Continuous Delivery: Was und wie?23
2.1 Was ist Continuous Delivery?23
2.2 Warum Software-Releases so kompliziert sind23
2.3 Werte von Continuous Delivery24
2.4 Vorteile von Continuous Delivery27
2.4.1 Continuous Delivery für Time-to-Market27
2.4.2 Continuous Delivery zur Risikominimierung30
2.4.3 Schnelleres Feedback und Lean33
2.5 Aufbau und Struktur einer Continuous-Delivery- Pipeline34
2.6 Links34
3834
3 Infrastruktur bereitstellen39
3.1 Einleitung39
3.2 Installationsskripte41
3.3 Chef44
3.3.1 Technische Grundlagen47
3.3.2 Chef Solo54
3.3.3 Chef Solo: Fazit56
3.3.4 Knife und Chef Server56
3.3.5 Chef Server: Fazit61
3.4 Vagrant61
3.4.1 Ein Beispiel mit Chef und Vagrant63
3.4.2 Vagrant: Fazit65
3.5 Docker65
3.5.1 Dockers Lösung66
3.5.2 Docker-Container erstellen69
3.5.3 Beispielanwendung mit Docker betreiben71
3.5.4 Docker und Vagrant73
3.5.5 Docker Machine76
3.5.6 Komplexe Konfigurationen mit Docker78
3.5.7 Docker Compose80
3.6 Immutable Server83
3.7 Infrastructure as Code84
3.8 Platform as a Service (PaaS)87
3.9 Umgang mit Daten und Datenbanken89
3.10 Fazit92
3.11 Links92
9392
4 Build-Automatisierung und Continuous Integration97
4.1 Überblick97
4.2 Build-Automatisierung und Build-Tools98
4.2.1 Ant100
4.2.2 Maven100
4.2.3 Gradle105
4.2.4 Weitere Build-Tools108
4.2.5 Das geeignete Tool auswählen109
4.2.6 Links und Literatur110
4.2.7 Experimente und selber ausprobieren110
4.3 Unit-Tests111
4.3.1 »Gute« Unit-Tests schreiben113
4.3.2 TDD – Test-driven Development115
4.3.3 Clean Code und Software Craftsmanship116
4.3.4 Links und Literatur116
4.3.5 Experimente und selber ausprobieren117
4.4 Continuous Integration117
4.4.1 Jenkins118
4.4.2 Continuous-Integration-Infrastruktur124
4.4.3 Fazit125
4.4.4 Links und Literatur126
4.4.5 Experimente und selber ausprobieren126
4.5 Codequalität messen128
4.5.1 SonarQube130
4.5.2 Links und Literatur132
4.5.3 Experimente und selber ausprobieren132
4.6 Artefakte managen133
4.6.1 Integration in den Build135
4.6.2 Weiterreichende Funktionen von Repositories137
4.6.3 Links und Literatur137
4.6.4 Experimente und selber ausprobieren137
4.7 Fazit138
5 Akzeptanztests141
5.1 Einführung141
5.2 Die Test-Pyramide141
5.3 Was sind Akzeptanztests?145
5.4 GUI-basierte Akzeptanztests149
5.5 Alternative Werkzeuge für GUI-Tests155
5.6 Textuelle Akzeptanztests157
5.7 Alternative Frameworks160
5.8 Strategien für Akzeptanztests162
5.9 Fazit164
5.10 Links164
165164
6 Kapazitätstests167
6.1 Einführung167
6.2 Kapazitätstests – wie?168
6.3 Kapazitätstests implementieren173
6.4 Kapazitätstests mit Gatling174
6.5 Alternativen zu Gatling179
6.6 Fazit181
6.7 Links181
182181
7 Exploratives Testen183
7.1 Einleitung183
7