Kernkonzepte von IaC
Bei Infrastructure as Code gibt es einige grundlegende Konzepte und Prinzipien, die das Vorgehen prägen:
Deklarativer vs. imperativer Ansatz
- Deklarativer Ansatz:
Du beschreibst den gewünschten Endzustand deiner Infrastruktur. Das IaC-Tool kümmert sich dann selbstständig darum, wie dieser Zustand erreicht wird.
Beispiel: Du sagst „Ich möchte, dass ein Server mit Apache installiert ist“, ohne anzugeben, wie genau dieser Zustand erreicht wird.Vorteile: Weniger fehleranfällig, einfacher zu warten, idempotent (wiederholbare Ausführung ohne Seiteneffekte).
Typische Tools: Terraform, CloudFormation, Kubernetes YAML. - Imperativer Ansatz:
Du definierst explizit die Schritte, die durchgeführt werden müssen, um einen bestimmten Infrastrukturzustand zu erreichen.
Beispiel: „Installiere Apache“, „Öffne Port 80“, „Starte den Dienst“.Vorteile: Mehr Kontrolle über die Ausführungsschritte.
Typische Tools: Ansible (teilweise), Bash-Skripte.
Mutable vs. Immutable Infrastruktur
Konfigurationsmanagement
Orchestrierung
Orchestrierung bedeutet, mehrere Prozesse und Komponenten der Infrastruktur automatisiert aufeinander abzustimmen:
- Z. B. erstelle erst die Datenbank, dann die Anwendung, dann den Load Balancer.
- Es geht also um Reihenfolgen, Abhängigkeiten und Koordination.
- Besonders wichtig bei komplexen Umgebungen und Microservices.
- Tools: Terraform (in Bezug auf Ressourcenabhängigkeiten), Kubernetes (Pod-Orchestrierung), Docker Compose (Multi-Container-Anwendungen).