DevOps
Eine Kultur und Praxis, die Softwareentwicklung (Dev) und IT-Betrieb (Ops) vereint, um Software schneller, zuverlässiger und automatisierter zu liefern.
Das Prinzip, IT-Infrastruktur (Server, Netzwerke, Datenbanken) nicht manuell zu konfigurieren, sondern als versionierten Code zu definieren und automatisch bereitzustellen.
Früher wurden Server manuell konfiguriert: SSH rein, Pakete installieren, Konfigurationsdateien bearbeiten. Das Problem: Niemand weiß genau, was auf dem Server läuft, Änderungen sind nicht nachvollziehbar, und eine neue Umgebung aufzubauen dauert Stunden.
Infrastructure as Code dreht das um: Die gesamte Infrastruktur wird in Textdateien beschrieben. Ein terraform apply oder ansible-playbook baut dann alles automatisch auf. Die Konfigurationsdateien liegen in Git – jede Änderung ist dokumentiert, überprüfbar und rückgängig machbar.
Vorteile auf einen Blick:
| Manuell | Infrastructure as Code |
|---|---|
| Undokumentiert | Versioniert in Git |
| Nicht reproduzierbar | Identisch wiederholbar |
| Fehleranfällig | Automatisiert und testbar |
| Langsam | Minuten statt Stunden |
resource "aws_instance" "inference_server" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "g4dn.xlarge" # GPU-Instanz für KI-Inferenz
tags = {
Name = "llm-inference"
Environment = "production"
}
}
import * as aws from "@pulumi/aws";
const server = new aws.ec2.Instance("inference-server", {
ami: "ami-0c55b159cbfafe1f0",
instanceType: "g4dn.xlarge",
tags: { Name: "llm-inference" },
});
Code-Änderung → Pull Request → Review → Merge → CI/CD → terraform apply
Jede Infrastrukturänderung durchläuft denselben Review-Prozess wie Anwendungscode.
IaC ist wie ein Kochrezept statt mündlicher Überlieferung: Statt jemandem zu erklären, wie man ein Gericht kocht, schreibst du das Rezept auf. Jeder kann es reproduzieren, du kannst es versionieren, und wenn etwas schiefläuft, weißt du genau, was geändert wurde.
Infrastruktur wird in Konfigurationsdateien beschrieben, nicht manuell geklickt
Versionierbar in Git – Änderungen sind nachvollziehbar und rückgängig machbar
Ermöglicht identische Umgebungen für Dev, Staging und Production
Reproduzierbare Umgebungen
Dev, Staging und Production sind identisch konfiguriert – 'works on my machine' gehört der Vergangenheit an
Disaster Recovery
Nach einem Ausfall kann die gesamte Infrastruktur in Minuten aus dem Code neu aufgebaut werden
KI-Infrastruktur
GPU-Cluster, Vektordatenbanken und Inference-Endpoints automatisch provisionieren und skalieren
Deklarativ (Terraform, CloudFormation): Du beschreibst den gewünschten Endzustand – das Tool entscheidet, wie es dorthin kommt. Imperativ (Ansible, Skripte): Du beschreibst die Schritte, die ausgeführt werden sollen. Deklarativ ist meist wartbarer, imperativ flexibler.
Terraform speichert den aktuellen Zustand der Infrastruktur in einer State-Datei (terraform.tfstate). Beim nächsten Apply vergleicht Terraform den gewünschten Zustand (Code) mit dem aktuellen Zustand (State) und führt nur die notwendigen Änderungen durch.
Nein. IaC funktioniert für Cloud (AWS, GCP, Azure), On-Premises-Server, Netzwerkgeräte und sogar für die Konfiguration von Anwendungen. Ansible zum Beispiel kann beliebige Server konfigurieren, unabhängig vom Hosting.