Ansible spravuje konfiguraci serverů. Ale kdo vytvoří ty servery? V cloudu klikáte v konzoli — a za měsíc nevíte, co jste vytvořili a proč. Terraform definuje cloudovou infrastrukturu jako kód — deklarativně, verzovaně, reprodukovatelně.
Deklarativní přístup¶
Popíšete desired state — Terraform zjistí, co existuje (state file), porovná s konfigurací a provede potřebné změny. Plan → Apply workflow.
resource "aws_instance" "web" {
ami = "ami-0c55b159cbfafe1f0"
instance_type = "t2.micro"
key_name = "deploy-key"
tags = {
Name = "web-server"
Environment = "production"
}
}
resource "aws_security_group" "web" {
ingress {
from_port = 80
to_port = 80
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
}
Multi-provider¶
Terraform podporuje AWS, Azure, GCP, DigitalOcean, VMware a desítky dalších providerů. Stejný workflow pro všechny cloudy. Možnost multi-cloud bez vendor lock-in.
State management¶
State file uchovává mapování mezi konfigurací a reálnými resources. Remote state (S3, Consul) pro sdílení v týmu. State locking pro prevenci konfliktů při paralelním apply.
Terraform vs. CloudFormation¶
CloudFormation je AWS-only. Terraform je multi-provider. CF je YAML/JSON, Terraform HCL (čitelnější). CF má lepší integraci s AWS (drift detection), Terraform má větší flexibilitu.
Terraform je základ cloud operací¶
Infrastruktura v gitu, plan before apply, multi-cloud. Terraform je nejlepší nástroj pro provisioning cloudových resources.