Infrastructure as Code (IaC)
Infrastructure as Code automatisiert die Bereitstellung und Verwaltung von IT-Infrastrukturen.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypTechnisch
- OrganisationsreifeReif
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Fehler im Code können zu Ausfallzeiten führen.
- Unsachgemäße Nutzung kann Sicherheitsrisiken erzeugen.
- Komplexität kann zu einem Wissensschatz führen.
- Verwende ein Versionskontrollsystem.
- Dokumentiere Änderungen gründlich.
- Führe regelmäßige Reviews durch.
I/O & Ressourcen
- Infrastruktur-Skripte
- Cloud-Anmeldeinformationen
- Versionsverwaltungssystem
- Provisionierte Infrastructure-Ressourcen
- Bereitstellungsberichte
- Änderungsprotokolle
Beschreibung
Infrastructure as Code (IaC) ist ein Ansatz, der es ermöglicht, Infrastruktur durch Code zu definieren und zu provisionieren. Dies verbessert die Effizienz, senkt die Fehleranfälligkeit und erleichtert die Nachverfolgbarkeit von Änderungen.
✔Vorteile
- Reduzierte Bereitstellungszeit für Infrastruktur.
- Erhöhte Konsistenz in der Infrastruktur.
- Bessere Nachverfolgbarkeit von Änderungen.
✖Limitationen
- Benötigt Fachwissen in der Skripterstellung.
- Kann bei großen Umgebungen komplex sein.
- Wartung der Skripte ist erforderlich.
Trade-offs
Metriken
- Bereitstellungszeit
Die Zeit, die benötigt wird, um Infrastruktur bereitzustellen.
- Fehlerquote
Anzahl der Fehler während der Bereitstellung.
- Kosten pro Bereitstellung
Die Kosten, die mit der Bereitstellung von Infrastruktur verbunden sind.
Beispiele & Implementierungen
AWS CloudFormation Beispiel
Ein Beispiel für die Verwendung von AWS CloudFormation zur automatisierten Bereitstellung von EC2-Instanzen.
Terraform Beispiel
Ein Beispiel, wie Terraform eingesetzt werden kann, um Infrastruktur in verschiedenen Clouds zu verwalten.
Ansible Beispiel
Ein Beispiel für die Verwendung von Ansible für die Konfiguration von Serverressourcen.
Implementierungsschritte
Definiere die Infrastruktur in Code.
Automatisiere die Bereitstellung mit IaC-Tools.
Teste und validiere die Infrastruktur.
⚠️ Technische Schulden & Engpässe
Tech Debt
- Veraltete Skripte ohne Wartung.
- Mangelnde Modularität der Skripte.
- Unzureichende Kommentierung des Codes.
Bekannte Engpässe
Beispiele für Missbrauch
- Falsche Konfiguration der Cloud-Ressourcen.
- Unzureichende Tests von Skripten vor der Bereitstellung.
- Ignorieren von Sicherheitsprotokollen.
Typische Fallen
- Zu viel Komplexität schaffen.
- Häufige Änderungen ohne Tests.
- Mangelndes Verständnis des Codes.
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Compliance-Standards müssen eingehalten werden.
- • Technologische Rahmenbedingungen müssen berücksichtigt werden.
- • Ressourcen müssen gesichert sein.