GitOps (eBook)
373 Seiten
dpunkt (Verlag)
978-3-98890-012-8 (ISBN)
GitOps ist die aktuell vielversprechendste Methodik, um Continuous Deployment auf Cloud-native Art und Weise umzusetzen. Im Gegensatz zu punktuell getriggerten Deployments werden deklarative Beschreibungen der Softwaresysteme genutzt, um diese kontinuierlich im Hintergrund anzuwenden.
Mit diesem Buch kannst du schnell und einfach in GitOps einsteigen und erfährst seine Vorteile für den Entwicklungsalltag. Nicht nur vergleichen wir hierfür die Tools Argo CD und Flux, sondern zeigen auch konkrete Implementierungen von GitOps mit und ohne Kubernetes, die du anhand öffentlicher Repositories direkt nachstellen kannst.
Überdies gehen wir ausführlich auf fortgeschrittene Themen wie Secrets Management, Repo-Strukturen, Asynchronität und Alerting ein, um dich für den Ein- bzw. Umstieg optimal vorzubereiten.
Baris Cubukcuoglu ist Cloud Solution Engineer bei mimacom und verfügt über mehr als 10 Jahre Erfahrung in der Entwicklung und Architektur von Anwendungen. Seine Passion ist es, Dinge umzusetzen, die einen Mehrwert schaffen. Dabei berät und unterstützt er Kunden bei Cloud- und Infrastruktur-Technologien, Kubernetes sowie bei der automatisierten Auslieferung von Software mit CI/CD.
Josia Scheytt hat seine Leidenschaft zum Automatisieren schon gelebt, bevor er von DevOps und CI/CD hörte. Mit jahrelanger Erfahrung in verschiedenen Public-Cloud-Anbietern und CI/CD-Systemen arbeitet er als Cloud Automation Engineer bei mimacom und schult Kunden beim praktischen Einstieg in Kubernetes. Johannes Schnatterer war bereits jahrelang in der Softwareentwicklung tätig bevor sein Fokus mit dem Aufkommen der Containertechnologie in Richtung Infra-Themen
Johannes Schnatterer war bereits jahrelang in der Softwareentwicklung tätig bevor sein Fokus mit dem Aufkommen der Containertechnologie in Richtung Infra-Themen zu wandern begann. Als Technical Lead der Infra- und Consulting Teams bei Cloudogus entwickelt und betreibt er eine Internal Developer Platform auf Basis von Kubernetes und GitOps und gibt dabei gelerntes als Consultant, Trainer und Autor weiter.
Vorwort 5
Inhaltsverzeichnis 9
Teil I Grundlagen 15
Was ist GitOps? 17
CIOps vs. GitOps 18
Der Weg zu GitOps 23
Traditionelle Silos 23
DevOps 24
Infrastructure as Code 25
Kubernetes 28
OpenGitOps 28
Die vier Prinzipien 30
Prinzip 1: Deklarativ 30
Prinzip 2: Versioniert und unveränderlich 32
Prinzip 3: Automatisch bezogen 34
Prinzip 4: Kontinuierlich angeglichen 34
Fragen und Missverständnisse 37
Welchen Unterschied macht GitOps? 39
Indizien aus den DORA-Studien 39
Der Unterschied im Alltag: Geschichten einesEntwicklungsteams 42
Szenario 43
Repositories 43
Deployment-Fluss 45
Vergleichsszenario „Mit GitOps“ 45
Kontinuierlich nach Dev deployen 48
Ressourcen aufräumen 49
Grenzfälle in CI vermeiden 50
Ressourcen wiederherstellen 53
Konfigurationsänderungen ausrollen 55
Incidents navigieren 57
Zielsysteme besser absichern 59
Wie fange ich mit GitOps an? 61
Agile Empfehlung: zügiger Durchstich 61
Fragen zur Orientierung 63
Eine Beispielimplementierung mit Argo CD 65
Zielsetzung 65
Voraussetzungen 68
Schritt 1: Einen Cluster starten 68
Schritt 2: Argo CD installieren 68
Ressourcentypen von Argo CD verstehen 70
Schritt 3: Eine eigene Application erzeugen 75
Schritt 4: Eine Änderung deployen 78
Fazit 79
Teil II Praxis 81
Argo CD oder Flux auswählen 83
Zahlen und Fakten 83
Bootstrapping 85
Linking 86
CLI und GUI 87
Komponenten und Ressourcenbedarf 89
Authentifizierung und Autorisierung 93
Templating 93
Configuration Management 94
Monitoring und Alerting 96
Ökosystem 99
Mandantentrennung 102
Multi-Cluster-Management 104
OCI statt Git 104
Hochverfügbarkeit und Lastverteilung 107
Reifegrad 107
Kommerzielle Angebote 108
Fazit und Tipps zur Entscheidungsfindung 109
Secrets sicher verwalten 111
Secrets lagern und verwalten 112
Secrets verschlüsselt im Repo speichern 112
Secrets extern verwalten 116
Secrets konsumieren 121
Secrets als native Kubernetes-Secrets konsumieren 122
Secrets über Sidecar-Container injizieren 125
Secrets über ein CSI-Volume konsumieren 127
Wir erweitern die Beispielimplementierung 129
Ziele 130
Datenfluss von HashiCorp Vault über ESO in denCluster 131
Schritt 1: Das Config-Repo bootstrappen 133
Schritt 2: Anwendungen in neuen Namespacedeployen 134
Schritt 3: ESO mit HashiCorp Vault verbinden 138
Schritt 4: Beispiel-Secret erstellen 140
Schritt 5: Das Secret integrieren 143
Schritt 6: Das Secret ändern 144
Fazit 145
Repositories und Ordner strukturieren 147
Design des GitOps-Prozesses 147
Kategorien von GitOps-Patterns 150
Operator Deployment Patterns 151
Instance per Cluster 152
Hub and Spoke 152
Instance per Namespace 153
Repository Patterns 153
Monorepo 154
Repo per Team 154
Repo per Application 155
Repo per Environment 163
Promotion Patterns 164
Branch oder Folder per Environment 165
Preview Environments 171
Global Environments oder Environment perApplication 173
Configuration Management 174
Config Update 177
Verdrahtungs-Patterns 182
Bootstrapping 182
Linking 182
Beispiele für Config-Repos 183
Beispiel 1: Argo CD Autopilot 184
Beispiel 2: GitOps Playground 189
Beispiel 3: Flux Monorepo 194
Beispiel 4: Flux Repo per Team 197
Beispiel 5: The Path to GitOps 199
Beispiel 6: Environment-Varianten 201
Mandantentrennung 203
Rolle der GitOps-Operatoren 203
Rolle der Repo-Struktur 204
Rolle der Cluster 205
Teams und Environments trennen 206
Fazit 208
Asynchron deployen 211
Deployment-Flüsse 211
Schritte 211
Kombinationen von Zuständigkeiten 213
Deployment-Fluss 1: CIOps 214
Deployment-Fluss 2: Schmal-GitOps 215
Deployment-Fluss 3: CI-Klammer 216
Deployment-Fluss 4: Übergabe 217
Deployment-Fluss 5: GitOps-geführt 218
Rollout durch den GitOps-Operator 219
Rollout-Schritte im GitOps-Operator 219
Timing und Koordination der Rollout-Schritte 222
Intervalle der Rollout-Schritte 225
Rollout im GitOps-Operator aktiv triggern 226
Config Update 229
Argo CD Image Updater 230
Flux Image Automation 230
Dependency-Bot 231
Prüfen 232
Prüfen via CI-Server 232
Prüfen via GitOps-Operator 233
Progressive Delivery 235
CI-Server mit GitOps verwalten 238
Fazit 240
Alerting integrieren 243
Gesundheitszustand feststellen 244
Kubernetes-nativ mit kstatus 244
Helm-Hooks 249
Flux 249
Argo CD 252
Benachrichtigungen verschicken 253
Flux 254
Argo CD 256
Ganzheitliche Herangehensweise 259
Imperativ eingreifen 261
Eindeutig ausgeschlossene Aktionen 261
Risiken und Chancen 262
Einen Debug-Pod starten 264
Ein Backup wiederherstellen 265
Ein Deployment neu starten 269
Ressourcen neu erzeugen 270
Ein Deployment skalieren 272
Fazit 274
Teil III Weiterführendes 275
Mehrere Cluster verwalten 277
Single-Cluster vs. Multi-Cluster 278
Cluster API 279
Konzept von Cluster API 280
Definition der Cluster API-Ressourcen 280
Installation des Management-Clusters 283
Provider konfigurieren und temporärenManagement-Cluster bauen 284
Worker Cluster anlegen 286
Installation des Cluster API Operators 289
Deklarative Installation des Management-Clusters 290
Verwaltung von Workload-Clustern mit Argo CD 298
Fazit 303
Infrastruktur verwalten 305
Terraform 306
Ein kurzes Tutorial zum Einstieg 306
Grundbausteine von Terraform 309
Terraform vs. OpenTofu 312
Terraform und GitOps 313
Eine EC2-Instanz verwalten mit TF-Controller undFlamingo 315
Pulumi 323
Grundbausteine von Pulumi 324
Eine EC2-Instanz verwalten mit Pulumi Kubernetes Operator 328
Crossplane 335
Grundbausteine von Crossplane 335
Eine EC2-Instanz verwalten mit Crossplane 337
GitOps außerhalb von Kubernetes 347
Aus den GitOps-Prinzipien folgende Verantwortlichkeiten 348
Infrastructure-as-Code-Formate 349
Weitere GitOps-Operatoren 351
Features von GitOps-Operatoren 352
Einen eigenen GitOps-Operator bauen 354
Eigene GitOps-Operatoren aus der Praxis 355
Docker Swarm und Ansible 355
Helmfile 362
Lektionen 364
Teil IV Anhang 365
Nachwort 367
Index 371
Erscheint lt. Verlag | 30.4.2024 |
---|---|
Zusatzinfo | Illustrationen |
Verlagsort | Heidelberg |
Sprache | deutsch |
Themenwelt | Informatik ► Software Entwicklung ► Agile Software Entwicklung |
Schlagworte | Continous Delivery • Deployment • DevOps • FluX • Repositories • Softwareentwicklung |
ISBN-10 | 3-98890-012-5 / 3988900125 |
ISBN-13 | 978-3-98890-012-8 / 9783988900128 |
Haben Sie eine Frage zum Produkt? |
Größe: 14,5 MB
DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasserzeichen und ist damit für Sie personalisiert. Bei einer missbräuchlichen Weitergabe des eBooks an Dritte ist eine Rückverfolgung an die Quelle möglich.
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich