Handbuch Infrastructure as Code

Handbuch Infrastructure as Code
Автор книги: id книги: 2213426     Оценка: 0.0     Голосов: 0     Отзывы, комментарии: 0 2461,05 руб.     (28,7$) Читать книгу Купить и скачать книгу Электронная книга Жанр: Математика Правообладатель и/или издательство: Bookwire Дата добавления в каталог КнигаЛит: ISBN: 9783960106258 Скачать фрагмент в формате   fb2   fb2.zip Возрастное ограничение: 0+ Оглавление Отрывок из книги

Реклама. ООО «ЛитРес», ИНН: 7719571260.

Описание книги

Cloud-Infrastrukturen erfolgreich automatisieren: Strategien für die Praxis Mithilfe von Patterns und Antipatterns Automatisierung verstehen und erfolgreich umsetzen Pseudocode-Beispiele veranschaulichen die konkrete Umsetzung Diese Auflage beschreibt neben dem Managen von Servern jetzt auch komplexe Container-Plattformen Kief Morris von ThoughtWorks zeigt in diesem Praxisbuch, wie Sie die von DevOps-Teams entwickelte Prinzipien, Praktiken und Patterns effektiv verwenden, um in der Cloud sicher und flexibel Infrastruktur zu managen. Es vermittelt, wie nicht nur Server, sondern auch komplexe Container-Plattformen (Stacks) aufgesetzt werden. Sie erfahren, wie sie mithilfe von Cloud- und Automatisierungstechnologien Änderungen einfach, sicher und schnell vornehmen. Sie lernen, wie Sie nahezu alles als Code definieren und setzen Praktiken aus dem Softwaredesign ein, um ein System aus kleinen, lose gekoppelten Elementen aufzubauen. Zielgruppen sind Mitarbeiterinnen und Mitarbeiter in der Systemadministration, Infrastruktur-Entwicklung, Softwareentwicklung und Architektur.

Оглавление

Kief Morris. Handbuch Infrastructure as Code

Handbuch Infrastructure as Code

Inhalt

Über dieses Buch

Vorwort

Warum ich dieses Buch geschrieben habe

Was in dieser Auflage neu und anders ist

Was kommt als Nächstes?

Was dieses Buch ist und was es nicht ist

Etwas Geschichte zu Infrastructure as Code

Für wen dieses Buch gedacht ist

Prinzipien, Praktiken und Patterns

Warum ich den Begriff »Best Practice« nicht verwende

Die ShopSpinner-Beispiele

In diesem Buch verwendete Konventionen

Danksagung

KAPITEL 1. Was ist Infrastructure as Code?

Aus der Eisenzeit in das Cloud-Zeitalter

Infrastructure as Code

Vorteile von Infrastructure as Code

Infrastructure as Code nutzen, um für Änderungen zu optimieren

Einwand »Wir haben gar nicht so häufig Änderungen, sodass sich Automation nicht lohnt«

Einwand »Wir sollten erst bauen und danach automatisieren«

Einwand »Wir müssen zwischen Geschwindigkeit und Qualität entscheiden«

Die Four Key Metrics

Drei zentrale Praktiken für Infrastructure as Code

Zentrale Praktik: Definieren Sie alles als Code

Zentrale Praktik: Kontinuierliches Testen und die gesamte aktuelle Arbeit ausliefern

Zentrale Praktik: Kleine einfache Elemente bauen, die Sie unabhängig voneinander ändern können

Zusammenfassung

KAPITEL 2. Prinzipien der Infrastruktur im Cloud-Zeitalter

Prinzip: Gehen Sie davon aus, dass Systeme unzuverlässig sind

Prinzip: Alles reproduzierbar machen

Fallstrick: Snowflake-Systeme

Prinzip: Erstellen Sie wegwerfbare Elemente

Der Fall des verschwundenen Dateiservers

Prinzip: Variationen minimieren

Konfigurationsdrift

Die Angstspirale der Automation

Prinzip: Stellen Sie sicher, dass Sie jeden Prozess wiederholen können

Zusammenfassung

KAPITEL 3. Infrastruktur-Plattformen

Die Elemente eines Infrastruktur-Systems

Dynamische Infrastruktur-Plattform

Multicloud

Infrastruktur-Ressourcen

Computing-Ressourcen

Storage-Ressourcen

Networking-Ressourcen

Zero-Trust-Sicherheitsmodell mit SDN

Zusammenfassung

KAPITEL 4. Zentrale Praktik: Definieren Sie alles als Code

Warum Sie Ihre Infrastruktur als Code definieren sollten

Was Sie als Code definieren können

Wählen Sie Werkzeuge mit externalisierter Konfiguration aus

Managen Sie Ihren Code in einer Versionsverwaltung

Programmiersprachen für Infrastruktur

Deklarativen und imperativen Code mischen

Infrastruktur-Scripting

Listing 4-1: Beispiel für prozeduralen Code, der einen Server erstellt

Deklarative Infrastruktur-Sprachen

Listing 4-2: Beispiel für deklarativen Code

Idempotenz

Programmierbare, imperative Infrastruktur-Sprachen

Listing 4-3: Beispiel für Infrastruktur-Code in einer imperativen Sprache

Deklarative und imperative Sprachen für Infrastruktur

Domänenspezifische Infrastruktur-Sprachen

Allgemein nutzbare Sprachen und DSLs für die Infrastruktur

Implementierungs-Prinzipien beim Definieren von Infrastructure as Code

Halten Sie deklarativen und imperativen Code voneinander getrennt

Behandeln Sie Infrastruktur-Code wie echten Code

Code als Dokumentation

Zusammenfassung

KAPITEL 5. Infrastruktur-Stacks als Code bauen

Was ist ein Infrastruktur-Stack?

Stack-Code

Listing 5-1: Projekt-Ordnerstruktur eines Stack-Projekts für ein fiktives Tool

Stack-Instanzen

Server in einem Stack konfigurieren

Listing 5-2: Beispiel für eine Stack-Definition, die ein Tool zur Serverkonfiguration aufruft

Low-Level-Infrastruktur-Sprachen

Listing 5-3: Beispiel für Low-Level-Code für einen Infrastruktur Stack

High-Level-Infrastruktur-Sprachen

Listing 5-4: Beispiel für High-Level-Infrastruktur-Stack-Code

Patterns und Antipatterns für das Strukturieren von Stacks

Antipattern: Monolithic Stack

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Ist mein Stack ein Monolith?

Pattern: Application Group Stack

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Pattern: Service Stack

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Pattern: Micro Stack

Motivation

Konsequenzen

Implementierung

Zugehörige Patterns

Zusammenfassung

KAPITEL 6. Umgebungen mit Stacks bauen

Worum es bei Umgebungen geht

Auslieferungsumgebungen

Mehrere Produktivumgebungen

Umgebungen, Konsistenz und Konfiguration

Patterns zum Bauen von Umgebungen

Antipattern: Multiple-Enviroment Stack

Motivation

Konsequenzen

Zugehörige Patterns

Antipattern: Copy-Paste Environments

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Pattern: Reusable Stack

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Umgebungen mit mehreren Stacks erstellen

Zusammenfassung

KAPITEL 7. Stack-Instanzen konfigurieren

Designprinzip: Sorgen Sie für einfache Parameter

Eindeutige Kennungen durch Stack-Parameter erstellen

Beispiel-Stack-Parameter

Listing 7-1: Beispiel-Projektstruktur für einen Template-Stack, der ein Container-Cluster definiert

Patterns zum Konfigurieren von Stacks

Antipattern: Manual Stack Parameters

Listing 7-2: Beispiel für das manuelle Eingeben von Befehlszeilenparametern

Motivation

Konsequenzen

Implementierung

Zugehörige Patterns

Pattern: Stack Environment Variables

Listing 7-3: Umgebungsvariablen setzen

Listing 7-4: Der Stack-Code nutzt Umgebungsvariablen

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Pattern: Scripted Parameters

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Listing 7-5: Beispiel für ein Skript, das die Parameter für mehrere Umgebungen enthält

Listing 7-6: Beispiel-Projektstruktur mit einem Skript für jede Umgebung

Listing 7-7: In einem Skript einen Schlüssel aus einem Secrets Manager holen

Zugehörige Patterns

Pattern: Stack Configuration Files

Listing 7-8: Beispielprojekt mit einer Parameterdatei für jede Umgebung

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Listing 7-9: Secrets aus einer lokalen Datei lesen

Zugehörige Patterns

Pattern: Wrapper-Stack

Motivation

Konsequenzen

Implementierung

Zugehörige Patterns

Pattern: Pipeline Stack Parameters

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Listing 7-10: Beispiel für eine Pipeline-Stage-Konfiguration

Listing 7-11: Beispiel für eine Pipeline-Stage-Konfiguration mit Umgebungsvariablen

Listing 7-12: Beispiel für Pipeline-Stage mit Secrets

Zugehörige Patterns

Pattern: Stack Parameter Registry

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Listing 7-13: Beispiel für Einträge in der Konfigurations-Registry

Zugehörige Patterns

Konfigurations-Registry

Eine Konfigurations-Registry implementieren

Registries von Infrastruktur-Automatisierungs-Tools

Allgemein einsetzbare Produkte für eine Konfigurations-Registry

Plattform-Registry-Services

Selbst gebaute Konfigurations-Registries

Eine oder mehrere Konfigurations-Registries

Secrets als Parameter nutzen

Secrets verschlüsseln

Secretlose Autorisierung

Secrets zur Laufzeit injizieren

Wegwerf-Secrets

Zusammenfassung

KAPITEL 8. Zentrale Praktik: Kontinuierlich testen und ausliefern

Warum Infrastruktur-Code kontinuierlich testen?

Was kontinuierliches Testen bedeutet

Sofortiges Testen und abschließendes Testen

Was sollten wir bei der Infrastruktur testen?

Herausforderungen beim Testen von Infrastruktur-Code

Herausforderung: Tests für deklarativen Code haben häufig nur einen geringen Wert

Variablen deklarativen Code testen

Kombinationen deklarativen Codes testen

Herausforderung: Das Testen von Infrastruktur-Code ist langsam

Herausforderung: Abhängigkeiten verkomplizieren die Test-Infrastruktur

Progressives Testen

Testpyramide

Schweizer-Käse-Testmodell

Infrastruktur-Delivery-Pipelines

Pipeline-Stages

Scope von Komponenten, die in einer Stage getestet werden

Scope von Abhängigkeiten für eine Stage

Plattformelemente, die für eine Stage erforderlich sind

Software und Services für die Delivery-Pipeline

Testen in der Produktivumgebung

Was Sie außerhalb der Produktivumgebung nicht nachbauen können

Die Risiken beim Testen in der Produktivumgebung managen

Zusammenfassung

KAPITEL 9. Infrastruktur-Stacks testen

Beispiel-Infrastruktur

Der Beispiel-Stack

Listing 9-1: Stack-Projekt für die Kundenanwendung von ShopSpinner

Listing 9-2: Teil des Inhalts von appserver_vm.infra

Pipeline für den Beispiel-Stack

Offline-Test-Stages für Stacks

Syntax-Checks

Statische Offline-Code-Analyse

Statische Code-Analyse per API

Testen mit einer Mock-API

Online-Test-Stages für Stacks

Preview: Prüfen, welche Änderungen vorgenommen werden

Verifikation: Aussagen über Infrastruktur-Ressourcen treffen

Ergebnisse: Prüfen, dass die Infrastruktur korrekt arbeitet

Test-Fixtures für den Umgang mit Abhängigkeiten verwenden

Test-Doubles für Upstream-Abhängigkeiten

Test-Fixtures für Downstream-Abhängigkeiten

Komponenten refaktorieren, um sie isolieren zu können

Lebenszyklus-Patterns für Testinstanzen von Stacks

Pattern: Persistent Test Stack

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Pattern: Ephemeral Test Stack

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Antipattern: Dual Persistent and Ephemeral Stack Stages

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Pattern: Periodic Stack Rebuild

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Pattern: Continuous Stack Reset

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Test-Orchestrierung

Unterstützen Sie lokales Testen

Vermeiden Sie eine enge Kopplung mit Pipeline-Tools

Tools zur Test-Orchestrierung

Zusammenfassung

KAPITEL 10. Anwendungs-Laufzeitumgebungen

Cloud-native und anwendungsgesteuerte Infrastruktur

Ziele für eine Anwendungs-Laufzeitumgebung

Deploybare Teile einer Anwendung

Deployment-Pakete

Anwendungen auf Server deployen

Anwendungen als Container verpacken

Anwendungen auf Server-Cluster deployen

Anwendungen auf Anwendungs-Cluster deployen

Pakete zum Deployen von Anwendungen auf Cluster

Listing 10-1: Beispiel für ein Deployment-Manifest eines Anwendungs-Clusters

FaaS-Serverless-Anwendungen deployen

Anwendungsdaten

Datenschemata und -strukturen

Cloud-native Storage-Infrastruktur für Anwendungen

Listing 10-2: Beispiel für ein Anwendungs-Deployment-Manifest mit Daten-Storage

Anwendungs-Connectivity

Service Discovery

Zusammenfassung

KAPITEL 11. Server als Code bauen

Was gibt es auf einem Server

Woher Dinge kommen

Server-Konfigurationscode

Code-Module für die Serverkonfiguration

Code-Module für die Serverkonfiguration designen

Server-Code versionieren und weitergeben

Serverrollen

Server-Code testen

Server-Code progressiv testen

Was Sie bei Server-Code testen

Wie Sie Server-Code testen

Eine neue Server-Instanz erstellen

Eine neue Server-Instanz per Hand erstellen

Einen Server mit einem Skript erstellen

Einen Server mit einem Stack-Management-Tool erstellen

Listing 11-1: Stack-Code, der einen Server definiert

Die Plattform für das automatische Erstellen von Servern konfigurieren

Listing 11-2: Stack-Code zum automatischen Skalieren

Einen Server mit einem Network-Provisioning-Tool erstellen

Server vorbereiten

Hot-Cloning eines Servers

Einen Server-Snapshot verwenden

Ein sauberes Server-Image erstellen

Eine neue Server-Instanz konfigurieren

Eine Server-Instanz ausbacken

Server-Images backen

Backen und Ausbacken kombinieren

Serverkonfiguration beim Erstellen eines Servers anwenden

Listing 11-3: Stack-Code führt mein fiktives Server-Konfigurationstool aus

Zusammenfassung

KAPITEL 12. Änderungen an Servern managen

Patterns zum Changemanagement: Wann Änderungen angewendet werden

Antipattern: Apply on Change

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Pattern: Continuous Configuration Synchronization

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Pattern: Immutable Server

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Wie Sie Serverkonfigurationscode anwenden

Pattern: Push Server Configuration

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Pattern: Pull Server Configuration

Motivation

Anwendbarkeit

Implementierung

Listing 12-1: Beispiel-Stack-Code, der ein Setup-Skript startet

Zugehörige Patterns

Dezentralisierte Konfiguration

Andere Ereignisse im Lebenszyklus eines Servers

Eine Server-Instanz stoppen und erneut starten

Eine Server-Instanz ersetzen

Einen ausgefallenen Server wiederherstellen

Zusammenfassung

KAPITEL 13. Server-Images als Code

Ein Server-Image bauen

Warum ein Server-Image bauen?

Wie Sie ein Server-Image bauen

Tools zum Bauen von Server-Images

Online Image Building

Listing 13-1: Beispielcode für den Image Builder zum Booten eines Original-Image

Infrastruktur für die Builder-Instanz

Listing 13-2: Dynamisch zugewiesene Infrastruktur-Ressourcen

Die Builder-Instanz konfigurieren

Listing 13-3: Die Server-Instanz mit dem Servermaker-Tool konfigurieren

Ein Server-Image mit einfachen Skripten bauen

Listing 13-4: Beispiel-Image-Builder, der Shell-Skripte nutzt

Offline Image Building

Ursprungsinhalte für ein Server-Image

Aus einem Stock-Server-Image bauen

Ein Server-Image von Grund auf bauen

Herkunft eines Server-Image und seiner Inhalte

Ein Server-Image ändern

Ein frisches Image aufwärmen oder backen

Ein Server-Image versionieren

Server-Instanzen aktualisieren, wenn sich ein Image ändert

Ein Server-Image in mehreren Teams verwenden

Umgang mit größeren Änderungen an einem Image

Eine Pipeline zum Testen und Ausliefern eines Server-Image verwenden

Build-Stage für ein Server-Image

Test-Stage für ein Server-Image

Delivery-Stages für ein Server-Image

Mehrere Server-Images verwenden

Server-Images für unterschiedliche Infrastruktur-Plattformen

Server-Images für unterschiedliche Betriebssysteme

Server-Images für unterschiedliche Hardware-Architekturen

Server-Images für unterschiedliche Rollen

Server-Images in Schichten erstellen

Code für mehrere Server-Images verwenden

Zusammenfassung

KAPITEL 14. Cluster als Code bauen

Container als Code

Lösungen für Anwendungs-Cluster

Cluster as a Service

Packaged Cluster Distribution

Stack-Topologien für Anwendungs-Cluster

Monolithischer Stack, der Cluster as a Service nutzt

Listing 14-1: Stack-Code, der alles für ein Cluster definiert

Monolithischer Stack für eine Packaged-Cluster-Lösung

Listing 14-2: Code zum Bauen eines Cluster-Management-Servers

Pipeline für einen monolithischen Anwendungs-Cluster-Stack

Beispiel für mehrere Stacks in einem Cluster

Listing 14-3: Stack-Code, der den Server-Pool mit Host-Knoten definiert

Strategien zur gemeinsamen Verwendung von Anwendungs-Clustern

Ein großes Cluster für alles

Getrennte Cluster für Auslieferungs-Stages

Cluster für die Governance

Cluster für Teams

Service Mesh

Infrastruktur für FaaS Serverless

Zusammenfassung

KAPITEL 15. Zentrale Praktik: Kleine, einfache Elemente

Für Modularität designen

Eigenschaften gut designter Komponenten

Regeln für das Designen von Komponenten

Wiederholungen vermeiden

Regel des Zusammenbaus

Single-Responsibility-Prinzip

Komponenten entlang von Domänenkonzepten entwerfen, nicht entlang technischer Konzepte

Das Gesetz von Demeter

Keine zirkulären Abhängigkeiten

Design-Entscheidungen durch Testen

Infrastruktur modularisieren

Stack-Komponenten versus Stacks als Komponenten

Einen Server in einem Stack verwenden

Shared-Nothing-Infrastruktur

Grenzen zwischen Komponenten ziehen

Grenzen mit natürlichen Änderungsmustern abstimmen

Grenzen mit Komponenten-Lebenszyklen abstimmen

Grenzen mit Organisationsstrukturen abstimmen

Grenzen schaffen, die Resilienz fördern

Grenzen schaffen, die Skalierbarkeit ermöglichen

Vertikales Gruppieren dem horizontalen Gruppieren vorziehen

Grenzen auf Sicherheits- und Governance-Aspekte abstimmen

Zusammenfassung

KAPITEL 16. Stacks aus Komponenten bauen

Infrastruktur-Sprachen für Stack-Komponenten

Deklarativen Code mit Modulen wiederverwenden

Stack-Elemente dynamisch mit Bibliotheken erstellen

Patterns für Stack-Komponenten

Pattern: Facade Module

Listing 16-1: Beispielcode für den Einsatz eines Facade-Moduls

Listing 16-2: Code für das Beispiel-Facade-Modul

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Antipattern: Obfuscation Module

Listing 16-3: Beispielcode für den Einsatz eines Obfuscation-Moduls

Listing 16-4: Code für das Beispiel-Obfuscation-Modul

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Antipattern: Unshared Module

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Pattern: Bundle Module

Listing 16-5: Modul-Code für einen Anwendungsserver

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Antipattern: Spaghetti Module

Listing 16-6: Beispiel für ein Spaghetti-Modul

Motivation

Konsequenzen

Implementierung

Listing 16-7: Beispiel für den Einsatz mehrerer Module statt eines einzelnen Spaghetti-Moduls

Zugehörige Patterns

Pattern: Infrastructure Domain Entity

Motivation

Anwendbarkeit

Implementierung

Zugehörige Patterns

Eine Abstraktionsschicht bauen

Zusammenfassung

KAPITEL 17. Stacks als Komponenten einsetzen

Abhängigkeiten zwischen Stacks erkennen

Pattern: Resource Matching

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Pattern: Stack Data Lookup

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Listing 17-1: Eine Ressourcen-ID mit einem Stack-Tool über die Datenstruktur der Stack-Instanz finden

Zugehörige Patterns

Pattern: Integration Registry Lookup

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Dependency Injection

Probleme beim Vermischen von Abhängigkeits- und Definitionscode

Abhängigkeiten vom Finde-Mechanismus entkoppeln

Zusammenfassung

KAPITEL 18. Infrastruktur-Code organisieren

Projekte und Repositories organisieren

Ein Repository oder viele?

Ein Repository für alles

Monorepo – ein Repository, ein Build

Ein Repository, mehrere Builds

Ein eigenes Repository für jedes Projekt (Microrepo)

Mehrere Repositories mit mehreren Projekten

Unterschiedliche Arten von Code organisieren

Projektsupport-Dateien

Listing 18-1: Beispiel-Ordnerlayout für ein Projekt

Projektübergreifende Tests

Integrationstests in einem Projekt halten

Dedizierte Projekte für Integrationstests

Code anhand des Domänenkonzepts organisieren

Listing 18-2: Quelldateien nach Technologie organisiert

Dateien mit Konfigurationswerten organisieren

Infrastruktur- und Anwendungscode managen

Infrastruktur und Anwendungen ausliefern

Anwendungen mit Infrastruktur testen

Infrastruktur vor der Integration testen

Infrastruktur-Code zum Deployen von Anwendungen nutzen

Zusammenfassung

KAPITEL 19. Infrastruktur-Code ausliefern

Auslieferungsprozess von Infrastruktur-Code

Ein Infrastruktur-Projekt bauen

Infrastruktur-Code als Artefakt verpacken

Infrastruktur-Code mit einem Repository ausliefern

Spezialisiertes Artefakt-Repository

Tool-spezifisches Repository

Repository in universell nutzbarem Datei-Storage

Code aus einem Quellcode-Repository ausliefern

Projekte integrieren

Pattern: Build-Time Project Integration

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Pattern: Delivery-Time Project Integration

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Pattern: Apply-Time Project Integration

Motivation

Anwendbarkeit

Konsequenzen

Implementierung

Zugehörige Patterns

Infrastruktur-Tools durch Skripte verpacken

Konfigurationswerte zusammenführen

Wrapper-Skripte vereinfachen

Zusammenfassung

KAPITEL 20. Team-Workflows

Die Menschen

Wer schreibt Infrastruktur-Code?

Mit Value Stream Mapping die Workflows verbessern

Code auf Infrastruktur anwenden

Code von Ihrem lokalen Rechner aus anwenden

Code von einem zentralisierten Service anwenden lassen

Private Infrastruktur-Instanzen

Quellcode-Branches in Workflows

Konfigurationsdrift verhindern

Automatisierungs-Verzögerung minimieren

Ad-hoc-Anwendung vermeiden

Code kontinuierlich anwenden

Immutable Infrastruktur

GitOps

Governance in einem Pipeline-basierten Workflow

Zuständigkeiten neu ordnen

Shift Left

Ein Beispielprozess für Infrastructure as Code mit Governance

Zusammenfassung

KAPITEL 21. Infrastruktur sicher ändern

Reduzieren Sie den Umfang von Änderungen

Kleine Änderungen

Refaktorieren – ein Beispiel

Unvollständige Änderungen in die Produktivumgebung übernehmen

Parallele Instanzen

Abwärtskompatible Transformationen

Feature Toggles

Live-Infrastruktur ändern

Infrastruktur-Chirurgie

Expand and Contract

Zero-Downtime-Änderungen

Blue-Green-Änderungen

Kontinuität

Kontinuität durch das Verhindern von Fehlern

Kontinuität durch schnelles Wiederherstellen

Kontinuierliches Disaster Recovery

Chaos Engineering

Für Ausfälle planen

Datenkontinuität in einem sich ändernden System

Sperren

Aufteilen

Replizieren

Neu laden

Ansätze zur Datenkontinuität mischen

Zusammenfassung

Fußnoten. Vorwort

Kapitel 1: Was ist Infrastructure as Code?

Kapitel 2: Prinzipien der Infrastruktur im Cloud-Zeitalter

Kapitel 3: Infrastruktur-Plattformen

Kapitel 4: Zentrale Praktik: Definieren Sie alles als Code

Kapitel 5: Infrastruktur-Stacks als Code bauen

Kapitel 6: Umgebungen mit Stacks bauen

Kapitel 7: Stack-Instanzen konfigurieren

Kapitel 8: Zentrale Praktik: Kontinuierlich testen und ausliefern

Kapitel 9: Infrastruktur-Stacks testen

Kapitel 10: Anwendungs-Laufzeitumgebungen

Kapitel 11: Server als Code bauen

Kapitel 12: Änderungen an Servern managen

Kapitel 13: Server-Images als Code

Kapitel 14: Cluster als Code bauen

Kapitel 15: Zentrale Praktik: Kleine, einfache Elemente

Kapitel 16: Stacks aus Komponenten bauen

Kapitel 17: Stacks als Komponenten einsetzen

Kapitel 18: Infrastruktur-Code organisieren

Kapitel 19: Infrastruktur-Code ausliefern

Kapitel 20: Team-Workflows

Kapitel 21: Infrastruktur sicher ändern

Index

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

Über den Autor

Kolophon

Отрывок из книги

Prinzipien, Praktiken und Patterns für eine cloudbasierte IT-Infrastruktur

Kief Morris

.....

Einen Server mit einem Skript erstellen

Einen Server mit einem Stack-Management-Tool erstellen

.....

Добавление нового отзыва

Комментарий Поле, отмеченное звёздочкой  — обязательно к заполнению

Отзывы и комментарии читателей

Нет рецензий. Будьте первым, кто напишет рецензию на книгу Handbuch Infrastructure as Code
Подняться наверх