“Wer hat diesen Server erstellt? Was sind seine Einstellungen? Warum unterscheidet er sich vom Staging?” – Fragen, die wir uns zu oft gestellt haben. Terraform von HashiCorp gab uns die Antwort: Infrastruktur beschrieben in Code, versioniert in Git.
Das Problem: Snowflake-Server¶
Jeder Server war eine einzigartige Schneeflocke. Admin A konfigurierte die Firewall auf eine Weise, Admin B auf eine andere. Dokumentation? Veraltet oder nicht existent. Eine Umgebung für einen neuen Kunden zu reproduzieren bedeutete Tage manueller Arbeit.
Terraform-Grundlagen¶
Terraform verwendet die deklarative Sprache HCL. Sie beschreiben was Sie wollen, nicht wie man es erstellt. Terraform ermittelt den aktuellen Zustand, vergleicht ihn mit dem gewünschten Zustand und nimmt die notwendigen Änderungen vor.
resource "aws_instance" "api_server" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.medium"
vpc_security_group_ids = [aws_security_group.api.id]
subnet_id = aws_subnet.private.id
tags = {
Name = "api-server"
Environment = "production"
ManagedBy = "terraform"
}
}
State Management¶
Terraform pflegt den Zustand in einer State-Datei. Im Team brauchen Sie Remote State. Wir verwenden einen S3-Bucket mit DynamoDB-Locking.
Module – DRY-Prinzip¶
Wir haben eine interne Modulbibliothek: VPC, ECS-Cluster, RDS-Instanz, S3-Buckets. Neue Umgebung für einen Kunden: Module zusammensetzen, terraform apply, in 15 Minuten fertig.
Plan vor Apply¶
terraform plan ist Ihr Sicherheitsgurt. Es zeigt genau, was sich ändern wird, was erstellt wird und vor allem was zerstört wird. Wir haben eine Regel: kein Apply ohne Plan-Review.
Was Terraform nicht gut kann¶
- Konfiguration innerhalb von VMs – dafür verwenden wir Ansible
- Drift-Erkennung – erkennt Drift erst beim nächsten Plan
- Komplexe Logik – HCL ist keine Programmiersprache
- Secrets – State-Datei enthält sensible Daten
Infrastructure as Code ist keine Wahl, es ist eine Notwendigkeit¶
Terraform hat die Art verändert, wie wir über Infrastruktur denken. Statt “Wo ist dieser Button in der Konsole” fragen wir “Wo ist diese .tf-Datei in Git”.
Brauchen Sie Hilfe bei der Implementierung?
Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.
Kontaktieren Sie uns