Der pragmatische Einstieg
E-Book, Deutsch, 282 Seiten
ISBN: 978-3-86491-930-5
Verlag: dpunkt
Format: PDF
Kopierschutz: 1 - PDF Watermark
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.
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