Terraform van een lone-wolf-script naar team-tool met versioning, modules, state-management en policy-checks. Wat een productie-klare Terraform-setup inhoudt.
Remote state en locking
Lokale state-files zijn voor demo. Productie-state in Azure Storage Account, S3 bucket of Terraform Cloud, met state locking via Cosmos DB / DynamoDB / Terraform Cloud-native. Per environment apart workspace.
Module-structuur
Een lap-monolithische main.tf is geen team-tool. Hergebruikbare modules per resource-type (network, compute, database). Module-registry intern of public (Terraform Registry). Versioning per module zodat updates gefaseerd doorgevoerd kunnen worden.
CI/CD-pipeline
Per branch: terraform fmt, terraform validate, tflint, tfsec voor security-checks. Plan op pull-request, apply op merge naar main. Approval-gate voor prod-environment. Tools: GitHub Actions, Azure Pipelines, GitLab CI.
Policy-as-code
OPA (Open Policy Agent) of Sentinel (Terraform Cloud) voor policy-checks vóór apply. Voorbeeld: VM met public IP wordt niet gedeployed; encryption-at-rest verplicht. Compliance afdwingen voordat resources bestaan.
Verwant: Freelance Cloud consultant, CI/CD implementatie.