Inhaltsverzeichnis

Alle Kapitel aufklappen
Alle Kapitel zuklappen
Einleitung
15
1 Cloud Computing
19
1.1 Welcome to the Cloud
20
1.1.1 Virtualisierung
20
1.1.2 Hypervisoren
21
1.1.3 Rechenzentrum
23
1.1.4 Die »Wolke«
23
1.1.5 Die »Cloud Computing Definition«des NIST
24
1.1.6 Private Cloud
24
1.1.7 Weitere Cloud-Varianten
26
1.1.8 Services
26
1.1.9 Infrastructure-as-a-Service
29
1.2 Public Cloud Computing
30
1.2.1 Digitalisierung
31
1.2.2 Kostenersparnis
32
1.2.3 Kostenkalkulation
33
1.2.4 Elastizität
33
1.2.5 Datenhoheit
36
1.2.6 Bedrohung durch Hacker: Die Cloud-Sicherheit
37
1.2.7 Eigenverantwortung
38
1.2.8 Legaler Zugriff von Dritten
39
1.2.9 Unfreiheit
40
1.2.10 Administration
41
1.3 DevOps
43
1.3.1 Philosophie
44
1.3.2 Automation
44
1.3.3 DevOps im Unternehmen einführen
45
1.3.4 Continous Delivery
46
1.4 Container
55
1.4.1 Softwarecontainer
55
1.4.2 Schattenseiten
57
1.4.3 Modularisierung
59
1.4.4 Orchestrierung
61
1.4.5 Cluster-Manager
61
2 Grundlegende Fertigkeiten und Werkzeuge für Cloud-Engineers
65
2.1 Python
66
2.1.1 Interpreter und ein erstes Programm
68
2.1.2 Mathematik
71
2.1.3 Variablen
72
2.1.4 String
74
2.1.5 Liste
76
2.1.6 Tupel
78
2.1.7 Indizierte Datentypen
79
2.1.8 Dictionary
80
2.1.9 Boolesche Ausdrücke
82
2.1.10 If-Abfrage
84
2.1.11 For-Schleife
85
2.1.12 Funktionen
88
2.1.13 Bibliotheken
90
2.1.14 Stdlib
93
2.1.15 Exceptions
94
2.1.16 open()
96
2.2 Google Go
98
2.2.1 Compiler
100
2.2.2 $GOPATH und $GOBIN
101
2.2.3 Mathematik
104
2.2.4 Variablen
105
2.2.5 String
107
2.2.6 Slice
110
2.2.7 Map
112
2.2.8 If-Abfrage
114
2.2.9 For-Schleife
117
2.2.10 Funktionen
119
2.2.11 Pointer
122
2.2.12 Struct
123
2.2.13 Methoden
125
2.2.14 Interface
126
2.2.15 Pakete
128
2.2.16 os.Open()
130
2.3 Docker
132
2.3.1 Installation
133
2.3.2 Docker Server
134
2.3.3 Container-Images
139
2.3.4 MariaDB-Container
143
2.3.5 Docker Compose
150
2.3.6 Volumes
155
2.3.7 Rootless Docker
159
2.4 Kubernetes
162
2.4.1 kubectl
163
2.4.2 Kubernetes auf der GKE
167
2.4.3 Objekte
171
2.4.4 Rollout
176
2.4.5 WordPress auf Kubernetes
180
3 IaaS-Anbieter verwenden
191
3.1 Amazon Elastic Compute Cloud
192
3.1.1 Anmeldung und Usereinrichtung
193
3.1.2 aws-cli
200
3.1.3 Instanzen
209
3.1.4 Elastic Block Store
219
3.1.5 Amazon CloudWatch
231
3.1.6 Autoscaling
239
3.1.7 Ausklang
246
3.2 Microsoft Azure
246
3.2.1 Anmeldung
247
3.2.2 azure-cli
250
3.2.3 VMs erzeugen
258
3.2.4 VMs verändern
267
3.2.5 Image anpassen
272
3.2.6 Blockspeicher
279
3.3 Google Compute Engine
288
3.3.1 gcloud
290
3.3.2 Initialisieren
291
3.3.3 Instanz bereitstellen
293
3.3.4 SSH-Zugriff
294
3.3.5 Firewall
295
3.3.6 Load-Balancer
296
3.4 DigitalOcean
298
3.4.1 Anmeldung und API-Token
300
3.4.2 doctl
303
3.4.3 Ein Droplet bereitstellen
305
3.5 Hetzner Cloud
308
3.5.1 Anmeldung und API-Token
309
3.5.2 hcloud
311
3.5.3 Server bereitstellen
312
3.6 Multi-Cloud- und Hybrid-Cloud-Computing
316
3.6.1 Multi-Cloud Computing
316
3.6.2 Hybrid Cloud Computing
318
4 Cloud-Infrastruktur automatisiert ausrollen
321
4.1 AWS CloudFormation
322
4.1.1 Ressourcen
327
4.1.2 Template anwenden
334
4.1.3 Ein- und Ausgabe
342
4.1.4 CloudFormation in der Praxis
349
4.2 AWS CDK
352
4.2.1 CDK installieren und initialisieren
353
4.2.2 CDK-Projekt für den Nginx-Server anpassen
356
4.2.3 CDK Bootstrap
361
4.2.4 CDK Deployment
362
4.2.5 Veränderungen durch CDK Diff prüfen
364
4.2.6 CDK Destroy
365
4.3 Azure Resource Manager
365
4.3.1 ARM-Templates
366
4.3.2 Beispielprojekt
372
4.3.3 Anwendung
373
4.4 Terraform
377
4.4.1 Installieren
380
4.4.2 Templates
380
4.4.3 Beispielprojekt
382
4.4.4 Anwendung
392
5 Cloud-Instanzen konfektionieren
395
5.1 Hashicorp Packer
396
5.1.1 amazon-ebs
398
5.1.2 Packer installieren
399
5.1.3 Beispielprojekt
400
5.1.4 Template
401
5.1.5 provisioner.bash
404
5.1.6 Anwendung
410
5.2 Cloud-Init
413
5.2.1 Beispielprojekt
415
5.2.2 Anwendung
418
5.2.3 Introspektion
419
5.2.4 Troubleshooting
421
6 Cloud-Instanzen mit Ansible konfigurieren
425
6.1 Ansible installieren
429
6.1.1 Ansible-PPA
429
6.1.2 Nach der Installation
430
6.2 ansible
431
6.2.1 ping
432
6.2.2 command
434
6.2.3 setup
435
6.3 Konfiguration
436
6.4 Statisches Inventar
438
6.4.1 Gruppen
440
6.4.2 Variablen
440
6.4.3 Gruppen von Gruppen
441
6.5 Module
442
6.5.1 Recherche nach Modulen
442
6.5.2 Module einsetzen
444
6.5.3 copy
448
6.5.4 get_url
450
6.5.5 template
451
6.5.6 lineinfile
454
6.6 Playbook
457
6.6.1 Plays
457
6.6.2 Tasks
458
6.6.3 ansible-playbook
459
6.6.4 Overhead vermeiden
461
6.6.5 gather_facts
463
6.6.6 register
464
6.6.7 with_items
466
6.6.8 creates
468
6.6.9 when
470
6.7 Rollen
473
6.7.1 ansible-galaxy
473
6.7.2 roles/
474
6.7.3 Rollenstruktur
474
6.7.4 Masterplaybook
476
6.7.5 Anwendungsbeispiel
477
6.8 Dynamisches Inventar
484
6.8.1 ansible-inventory
484
6.8.2 hcloud-python
486
6.8.3 inventory.py
488
6.8.4 Inventar anwenden
491
6.9 Cloud-Module
495
6.9.1 Anwendungsbeispiel
496
6.9.2 Cloud-Module als Ansible-Rolle
501
6.10 Kubernetes-Cluster deployen
502
6.10.1 k8s-preconfig
504
6.10.2 k8-master
508
6.10.3 k8s-worker
510
6.10.4 Anwendung
510
7 Cloud-Instanzen testen
513
7.1 Testinfra
515
7.1.1 Installieren
515
7.1.2 Beispielprojekt
516
7.1.3 Tests aufsetzen
520
7.1.4 Anwendung
521
7.1.5 pytest in vollem Umfang nutzen
524
7.2 Terratest
527
7.2.1 Beispielprojekt
529
7.2.2 Anwendung
534
8 Cloud-Monitoring mit Prometheus
537
8.1 Prometheus-Server
540
8.1.1 Einspielen
541
8.1.2 Starten
541
8.1.3 API-Endpunkte
542
8.1.4 Metriken
544
8.2 node_exporter
546
8.2.1 Datenaufkommen
548
8.2.2 Querying
549
8.2.3 Zeitstempel
552
8.3 Service Discovery
553
8.3.1 Konfiguration
554
8.3.2 Anwendung
555
8.4 PromQL
558
8.4.1 Qualifizierte Abfrage
558
8.4.2 sum()
561
8.4.3 max()
561
8.4.4 rate()
562
8.4.5 avg()
563
8.4.6 Arithmetik
563
8.5 Alarme
565
8.5.1 up()
566
8.5.2 Einrichtung
567
8.5.3 Aktiver Alarm
568
8.5.4 Prozentualer Ausfall
569
8.5.5 Binäre Gauges
569
9 Cloud-Ressourcen mit Boto3 programmieren
571
9.1 Boto3
572
9.1.1 Installation
572
9.1.2 Klassentypen
574
9.1.3 Beispielprojekt
575
9.1.4 Das Skript anwenden
581
9.2 Zugriff auf die Hetzner-Cloud mit hcloud-python
583
9.2.1 Beispielprojekt
584
9.2.2 Das Skript anwenden
588
9.3 Azure-SDK für Python
589
9.3.1 Beispielprojekt
589
9.3.2 Das Skript anwenden
593
9.4 Abschluss
595
Index
597