Series · Cloud
12 parts in this series, in reading order.
A structured self-study path for Terraform — theory, hands-on labs, and a real project, from initial setup through production-grade infrastructure.
Install Terraform with tfenv, understand the Terraform vs OpenTofu split, and set up a safe, free practice environment using LocalStack.
HCL syntax, providers and aliases, resource vs data source, resource lifecycle, and the core init → plan → apply → destroy workflow.
A deep dive into the state file, S3 remote backend with locking, importing existing resources, and handling drift safely.
Input variables, validation, sensitive values, outputs, and locals — the building blocks for flexible, reusable Terraform code.
Expressions, ~150 built-in functions, data sources, and how Terraform's dependency graph works.
Master count vs for_each (and the index-shift trap), for expressions, dynamic blocks, and conditional resource creation.
Build reusable modules the right way: clean input/output interfaces, versioning, registry usage, and composition patterns.
Managing dev/staging/prod: workspaces vs directory-per-env, partial backend config, and when to reach for Terragrunt.
terraform test, tflint, checkov, policy-as-code, and a proper plan-on-PR / apply-on-merge pipeline with OIDC.
Managing secrets the right way, least-privilege infrastructure, and refactoring running production code safely using moved/import/removed blocks.
Everything from modules 00-09 applied to a real project: a 3-tier web infrastructure, multi-environment, reusable modules, CI/CD-ready.