The map
- Not started
- In progress
- Done
- Builds on
- 01The modelDeclare, plan, apply0/4
- 02StateWhat Terraform remembers0/3
- 03Changing things safelyLifecycle, drift, refactoring0/3
- 04At scaleModules, environments, tests, the fork0/4
- 05Next: system designSame ideas, at service scale
- Idempotency keysLibrary ↗Applying the same configuration twice should change nothing the second time. The pattern explains why convergent, repeatable operations are what make automation safe.
- Distributed locksLibrary ↗State locking stops two applies from writing the same state at once. This is the general problem, including what happens when a lock holder dies.
- Strangler figLibrary ↗Bringing hand-made infrastructure under Terraform is done piece by piece with import blocks. The strangler fig pattern is the same incremental idea for whole systems.
Written for Terraform 1.x (the current release is 1.16) and OpenTofu 1.x (currently 1.13). Features are marked with the version that introduced them where it matters: import and check blocks (1.5), terraform test (1.6), removed blocks and test mocks (1.7), ephemeral resources (1.10), write-only arguments (1.11) and S3 native state locking. Every example that was run uses only the random and local providers and the built-in terraform_data resource, so no cloud account is involved; the few AWS-flavoured snippets (backends, cloud resources) are illustrative and were not applied. The plan and test output shown comes from real runs: most with Terraform 1.5.7 (the last MPL-licensed release), and the terraform test, module, removed and replace_triggered_by examples with Terraform 1.16.6, both on macOS arm64 with hashicorp/random 3.9.1 and hashicorp/local 2.9.1.
Where this path leads
- AWS fundamentals: the building blocks and how they fail →The handful of AWS building blocks most systems are made of (Regions and zones, IAM, VPC networking, compute, storage, databases, load balancers, queues and events, monitoring), what each one promises, what it costs, and the specific ways each one fails when you lean on it.
- Kubernetes: how the cluster keeps your app running →How Kubernetes turns a few YAML objects into a running, self-healing service: the control loops behind it, how pods are placed, rolled out and reached, how probes and resource settings keep them healthy (or take them down), and how state, security and operators fit in.