Wolff | Continuous Delivery | E-Book | sack.de
E-Book

E-Book, Deutsch, 282 Seiten

Wolff Continuous Delivery

Der pragmatische Einstieg

E-Book, Deutsch, 282 Seiten

ISBN: 978-3-86491-930-5
Verlag: dpunkt
Format: PDF
Kopierschutz: 1 - PDF Watermark



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.
Wolff Continuous Delivery jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


1;Inhaltsverzeichnis;5
2;1 Einleitung;11
2.1;1.1 Überblick über Continuous Delivery und das Buch;11
2.2;1.2 Warum überhaupt Continuous Delivery?;12
2.3;1.3 Für wen ist das Buch?;15
2.4;1.4 Neu in der 2. Auflage;15
2.5;1.5 Übersicht über die Kapitel;17
2.6;1.6 Pfade durch das Buch;18
2.7;1.7 Danksagung;20
3;2 Continuous Delivery: Was und wie?;23
3.1;2.1 Was ist Continuous Delivery?;23
3.2;2.2 Warum Software-Releases so kompliziert sind;23
3.3;2.3 Werte von Continuous Delivery;24
3.4;2.4 Vorteile von Continuous Delivery;27
3.4.1;2.4.1 Continuous Delivery für Time-to-Market;27
3.4.2;2.4.2 Continuous Delivery zur Risikominimierung;30
3.4.3;2.4.3 Schnelleres Feedback und Lean;33
3.5;2.5 Aufbau und Struktur einer Continuous-Delivery- Pipeline;34
3.6;2.6 Links & Literatur;38
4;3 Infrastruktur bereitstellen;39
4.1;3.1 Einleitung;39
4.2;3.2 Installationsskripte;41
4.3;3.3 Chef;44
4.3.1;3.3.1 Technische Grundlagen;47
4.3.2;3.3.2 Chef Solo;54
4.3.3;3.3.3 Chef Solo: Fazit;56
4.3.4;3.3.4 Knife und Chef Server;56
4.3.5;3.3.5 Chef Server: Fazit;61
4.4;3.4 Vagrant;61
4.4.1;3.4.1 Ein Beispiel mit Chef und Vagrant;63
4.4.2;3.4.2 Vagrant: Fazit;65
4.5;3.5 Docker;65
4.5.1;3.5.1 Dockers Lösung;66
4.5.2;3.5.2 Docker-Container erstellen;69
4.5.3;3.5.3 Beispielanwendung mit Docker betreiben;71
4.5.4;3.5.4 Docker und Vagrant;73
4.5.5;3.5.5 Docker Machine;76
4.5.6;3.5.6 Komplexe Konfigurationen mit Docker;78
4.5.7;3.5.7 Docker Compose;80
4.6;3.6 Immutable Server;83
4.7;3.7 Infrastructure as Code;84
4.8;3.8 Platform as a Service (PaaS);87
4.9;3.9 Umgang mit Daten und Datenbanken;89
4.10;3.10 Fazit;92
4.11;3.11 Links & Literatur;93
5;4 Build-Automatisierung und Continuous Integration;97
5.1;4.1 Überblick;97
5.2;4.2 Build-Automatisierung und Build-Tools;98
5.2.1;4.2.1 Ant;100
5.2.2;4.2.2 Maven;100
5.2.3;4.2.3 Gradle;105
5.2.4;4.2.4 Weitere Build-Tools;108
5.2.5;4.2.5 Das geeignete Tool auswählen;109
5.2.6;4.2.6 Links und Literatur;110
5.2.7;4.2.7 Experimente und selber ausprobieren;110
5.3;4.3 Unit-Tests;111
5.3.1;4.3.1 »Gute« Unit-Tests schreiben;113
5.3.2;4.3.2 TDD – Test-driven Development;115
5.3.3;4.3.3 Clean Code und Software Craftsmanship;116
5.3.4;4.3.4 Links und Literatur;116
5.3.5;4.3.5 Experimente und selber ausprobieren;117
5.4;4.4 Continuous Integration;117
5.4.1;4.4.1 Jenkins;118
5.4.2;4.4.2 Continuous-Integration-Infrastruktur;124
5.4.3;4.4.3 Fazit;125
5.4.4;4.4.4 Links und Literatur;126
5.4.5;4.4.5 Experimente und selber ausprobieren;126
5.5;4.5 Codequalität messen;128
5.5.1;4.5.1 SonarQube;130
5.5.2;4.5.2 Links und Literatur;132
5.5.3;4.5.3 Experimente und selber ausprobieren;132
5.6;4.6 Artefakte managen;133
5.6.1;4.6.1 Integration in den Build;135
5.6.2;4.6.2 Weiterreichende Funktionen von Repositories;137
5.6.3;4.6.3 Links und Literatur;137
5.6.4;4.6.4 Experimente und selber ausprobieren;137
5.7;4.7 Fazit;138
6;5 Akzeptanztests;141
6.1;5.1 Einführung;141
6.2;5.2 Die Test-Pyramide;141
6.3;5.3 Was sind Akzeptanztests?;145
6.4;5.4 GUI-basierte Akzeptanztests;149
6.5;5.5 Alternative Werkzeuge für GUI-Tests;155
6.6;5.6 Textuelle Akzeptanztests;157
6.7;5.7 Alternative Frameworks;160
6.8;5.8 Strategien für Akzeptanztests;162
6.9;5.9 Fazit;164
6.10;5.10 Links & Literatur;165
7;6 Kapazitätstests;167
7.1;6.1 Einführung;167
7.2;6.2 Kapazitätstests – wie?;168
7.3;6.3 Kapazitätstests implementieren;173
7.4;6.4 Kapazitätstests mit Gatling;174
7.5;6.5 Alternativen zu Gatling;179
7.6;6.6 Fazit;181
7.7;6.7 Links & Literatur;182
8;7 Exploratives Testen;183
8.1;7.1 Einleitung;183
8.2;7.2 Warum explorative Tests?;183
8.3;7.3 Wie vorgehen?;185
8.4;7.4 Fazit;189
8.5;7.5 Links & Literatur;190
9;8 Deploy – der Rollout in Produktion;191
9.1;8.1 Einleitung;191
9.2;8.2 Rollout und Rollback;192
9.3;8.3 Roll Forward;193
9.4;8.4 Blue/Green Deployment;195
9.5;8.5 Canary Releasing;196
9.6;8.6 Continuous Deployment;198
9.7;8.7 Virtualisierung;200
9.8;8.8 Jenseits der Webanwendungen;202
9.9;8.9 Fazit;203
9.10;8.10 Links und Literatur;204
10;9 Operate – Produktionsbetrieb der Anwendungen;205
10.1;9.1 Einleitung;205
10.2;9.2 Herausforderungen im Betrieb;206
10.3;9.3 Log-Dateien;208
10.3.1;9.3.1 Werkzeuge zum Verarbeiten von Log-Dateien;210
10.3.2;9.3.2 Logging in der Beispielanwendung;212
10.4;9.4 Logs der Beispielanwendung analysieren;213
10.4.1;9.4.1 Experimente und selber ausprobieren;218
10.5;9.5 Andere Technologien für Logs;221
10.6;9.6 Fortgeschrittene Log-Techniken;222
10.7;9.7 Monitoring;223
10.8;9.8 Metriken mit Graphite;224
10.9;9.9 Metriken in der Beispielanwendung;226
10.9.1;9.9.1 Experimente und selber ausprobieren;227
10.10;9.10 Andere Monitoring-Lösungen;229
10.11;9.11 Weitere Herausforderungen beim Betrieb der Anwendung;230
10.12;9.12 Fazit;231
10.13;9.13 Links & Literatur;232
11;10 Continuous Delivery im Unternehmen einführen;235
11.1;10.1 Einleitung;235
11.2;10.2 Continuous Delivery von Anfang an;235
11.3;10.3 Value Stream Mapping;236
11.4;10.4 Weitere Optimierungsmaßnahmen;239
11.5;10.5 Zusammenfassung;243
11.6;10.6 Links & Literatur;243
12;11 Continuous Delivery und DevOps;245
12.1;11.1 Einführung;245
12.2;11.2 Was ist DevOps?;245
12.3;11.3 Continuous Delivery und DevOps;249
12.4;11.4 Continuous Delivery ohne DevOps?;253
12.5;11.5 Fazit;255
12.6;11.6 Links & Literatur;256
13;12 Continuous Delivery, DevOps und Softwarearchitektur;257
13.1;12.1 Einleitung;257
13.2;12.2 Softwarearchitektur;257
13.3;12.3 Komponentenaufteilung für Continuous Delivery optimieren;260
13.4;12.4 Schnittstellen;262
13.5;12.5 Datenbanken;265
13.6;12.6 Microservices;268
13.7;12.7 Umgang mit neuen Features;271
13.8;12.8 Fazit;274
13.9;12.9 Links & Literatur;275
14;13 Fazit: Was bringt’s?;277
14.1;13.1 Links & Literatur;278
15;Index;279
16;www.dpunkt.de;0


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.


Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.