Infrastructure as Code (IaC): Definition, Tools, Beispiele
Infrastructure as Code (IaC) managed Infrastruktur via versioned declarative Code — Terraform, Pulumi, CDK, Ansible. Ersetzt manuelle Cloud-Console-Clicks.
Was ist Infrastructure as Code (IaC)?
Infrastructure as Code (IaC) ist die Praxis, Infrastruktur (Server, Networks, Datenbanken, Load-Balancer, DNS, IAM-Policies) durch Code statt manuelle Console-Clicks oder One-off-Scripts zu managen. Der Code lebt in Version-Control, wird in Pull-Requests reviewed und via CI/CD applied.
IaC ist fundamental für jedes non-trivial Cloud-Deployment.
Warum IaC?
- Reproduzierbarkeit.
- Version-Control.
- Disaster-Recovery.
- Documentation by Default.
- Auditability.
- Testing.
- Collaboration.
- Modularität.
IaC-Tools-Vergleich
| Tool | Typ | Sprache | Am besten für |
|---|---|---|---|
| Terraform / OpenTofu | Declarative | HCL | Multi-Cloud |
| AWS CloudFormation | Declarative | YAML/JSON | AWS-only |
| AWS CDK | Imperative | TS, Python, Java | AWS, programmer-friendly |
| Pulumi | Imperative | TS, Python, Go | Multi-Cloud |
| Azure Bicep | Declarative | Bicep DSL | Azure-only |
| Ansible | Imperative | YAML | Config-Management + IaC |
| Kubernetes Manifests / Helm | Declarative | YAML | K8s App-Deployment |
| Crossplane | Declarative | YAML | K8s-native Cloud-Control |
Declarative vs Imperative IaC
| Aspekt | Declarative | Imperative |
|---|---|---|
| Du beschreibst | Desired End-State | Steps |
| Tool figurt aus | Wie hinzukommen | Was du geschrieben hast |
| Idempotency | Built-in | Du managst |
| Logic / Loops | Limited | Full Language |
Terraform-Beispiel
provider "aws" {
region = "eu-west-1"
}
resource "aws_s3_bucket" "website" {
bucket = "my-marketing-site"
}terraform init
terraform plan
terraform applyIaC-Workflow
- Infrastructure-Code in Repo schreiben
- PR mit Change öffnen
- CI läuft
terraform plan - Reviewer checkt Plan
- Merge → CI läuft
terraform apply - State in Remote-Backend
IaC Best Practices
- Remote State mit Locking.
- Modularisieren.
- Environments separieren.
- Plan vor Apply.
- Tool + Provider-Versions pinnen.
- Keine Secrets committen.
- Workspaces für Multi-Region.
- Drift-Detection.
- Policy-as-Code.
- Alles taggen.
Häufige IaC-Fallstricke
- Manuelle Changes driften State.
- State-File in Git.
- Kein State-Locking.
- Mega-Monolith-State.
- Hardcoded Values.
- Insufficient Testing.
- Ignored Deprecation-Warnings.
- Destroy-Plan vergessen.
FAQ: Infrastructure as Code
Terraform oder CloudFormation?
Terraform für Multi-Cloud. CloudFormation für AWS-only.
Unterschied zwischen IaC und Configuration-Management?
IaC provisioned Infrastruktur. Config-Management konfiguriert OS/Apps.
Sollte ich Modules nutzen?
Ja für alles wiederverwendbare.
Wo speichere ich Terraform-State?
Remote-Backend mit Locking: S3 + DynamoDB.
Wie handhabe ich Secrets in IaC?
Aus externen Stores referenzieren.
Was ist Drift?
Wenn echte Infrastruktur sich vom deklarierten Code unterscheidet.
Kann ich IaC für Kubernetes nutzen?
Ja.
IaC-deployed Apps mit LoadFocus testen
Nach IaC-Provisioning verifiziert LoadFocus, dass real-Traffic gehandhabt wird. Registrieren bei loadfocus.com/signup.
Verwandte LoadFocus-Tools
Setze dieses Konzept mit LoadFocus in die Praxis um — derselben Plattform, die alles antreibt, was du gerade gelesen hast.