Terraform · Curriculum
Curriculum
179 lessons across 35 parts. Lessons build on each other; later parts assume familiarity with earlier material.
Part I
Infrastructure as Code Foundations
Why IaC exists; declarative vs imperative provisioning; Terraform in the platform ecosystem; reproducibility, drift, and ownership.
- 01Why Infrastructure as Code ExistsFoundations · foundation · ~14 min
- 02Declarative versus Imperative ProvisioningFoundations · foundation · ~12 min
- 03Terraform in the Infrastructure EcosystemFoundations · foundation · ~12 min
- 04Reproducibility and the BlueprintFoundations · foundation · ~12 min
- 05Drift: The Tax of Manual InfrastructureFoundations · foundation · ~14 min
- 06Infrastructure Ownership and the Configuration RepositoryFoundations · foundation · ~12 min
Part II
Terraform Architecture
The CLI, Core, configuration, state, providers, plugins, and the dependency graph; what each component does and does not do.
- 01The CLI and Core: What Each DoesProduction Terraform · foundation · ~12 min
- 02Provider Plugins: The Bridge to the Real WorldProduction Terraform · foundation · ~12 min
- 03State and the Resource ModelProduction Terraform · foundation · ~14 min
- 04The Dependency Graph and ParallelismProduction Terraform · intermediate · ~14 min
- 05Refresh and Plan: How They InteractProduction Terraform · intermediate · ~12 min
- 06How Apply Executes a PlanProduction Terraform · intermediate · ~14 min
Part III
Installing and Versioning Terraform
Official installation, version pinning, the dependency lockfile, and reproducible control environments.
- 01Choosing an Installation MethodProduction Terraform · foundation · ~10 min
- 02Verifying the InstallationProduction Terraform · foundation · ~10 min
- 03Team-Wide Version RolloutProduction Terraform · foundation · ~10 min
- 04required_version: The FloorProduction Terraform · foundation · ~10 min
- 05The Dependency Lock FileProduction Terraform · intermediate · ~12 min
- 06Terraform Server and Execution EnvironmentsProduction Terraform · intermediate · ~12 min
Part IV
HCL: The Terraform Configuration Language
Blocks, arguments, expressions, types, conditionals, for expressions, functions, and readability of production HCL.
- 01HCL Blocks, Arguments, and the Configuration FileProduction Terraform · foundation · ~12 min
- 02HCL Types and ValuesProduction Terraform · foundation · ~14 min
- 03Expressions and ReferencesProduction Terraform · foundation · ~12 min
- 04Functions for Production CodeProduction Terraform · intermediate · ~14 min
- 05Conditional Expressions and For LoopsProduction Terraform · intermediate · ~14 min
- 06Writing Readable HCLProduction Terraform · intermediate · ~10 min
- 07HCL Style and PatternsProduction Terraform · intermediate · ~10 min
Part V
The Terraform Workflow
fmt, validate, init, plan, apply, destroy, output, console, show, and what each proves (and does not prove).
- 01fmt and validate: The Cheap GatesProduction Terraform · foundation · ~10 min
- 02terraform init: The BootstrapProduction Terraform · foundation · ~12 min
- 03terraform plan in DepthProduction Terraform · intermediate · ~18 min
- 04terraform apply in DepthProduction Terraform · intermediate · ~14 min
- 05terraform destroy: A Production-Dangerous OperationProduction Terraform · intermediate · ~12 min
- 06terraform output and terraform showProduction Terraform · foundation · ~10 min
- 07terraform console: Interactive ExplorationProduction Terraform · intermediate · ~10 min
Part VI
Providers and the Provider Ecosystem
Provider plugin model, sources, versions, aliases, authentication, failures, and the supply chain.
- 01The Provider Plugin ModelProduction Terraform · foundation · ~12 min
- 02Provider Sources and RegistriesProduction Terraform · foundation · ~12 min
- 03Provider Versioning and the Dependency LockProduction Terraform · intermediate · ~14 min
- 04Provider Aliases for Multi-Region and Multi-AccountProduction Terraform · intermediate · ~12 min
- 05Provider Authentication in ProductionProduction Terraform · intermediate · ~14 min
- 06Provider Failures and RecoveryProduction Terraform · intermediate · ~10 min
Part VII
Resources, Data Sources, and count/for_each
Managed resources, CRUD lifecycle, attributes, computed values, replacement, data sources, and resource identity for multiple instances.
- 01CRUD and the Resource LifecycleProduction Terraform · foundation · ~12 min
- 02Resource Attributes and Computed ValuesProduction Terraform · foundation · ~12 min
- 03Resource Replacement and In-Place UpdatesProduction Terraform · intermediate · ~14 min
- 04Data Sources: Reading Without ManagingProduction Terraform · intermediate · ~12 min
- 05count: Index-Based Resource InstancesProduction Terraform · intermediate · ~12 min
- 06for_each: Stable Key-Based Resource InstancesProduction Terraform · intermediate · ~12 min
- 07Dynamic Blocks for Conditional ConfigurationProduction Terraform · intermediate · ~10 min
Part VIII
Dependencies and the Resource Graph
Implicit dependencies, explicit depends_on, the dependency graph, parallelism, and ordering.
- 01Implicit Dependencies Through ReferencesDependencies · foundation · ~14 min
- 02Explicit Dependencies with depends_onDependencies · intermediate · ~14 min
- 03The Dependency GraphDependencies · intermediate · ~14 min
- 04Dependency Cycles: Detection and ResolutionDependencies · intermediate · ~16 min
- 05Parallelism and -parallelismDependencies · intermediate · ~14 min
- 06Resource Ordering and Implicit ChainsDependencies · intermediate · ~14 min
Part IX
State: The Core Production Concept
Why state exists, what it contains, how it maps resource addresses to real infrastructure, and why it is the trust boundary.
- 01Why State ExistsProduction Terraform · foundation · ~12 min
- 02State File StructureProduction Terraform · foundation · ~12 min
- 03Resource Addresses and Real-World MappingProduction Terraform · intermediate · ~12 min
- 04Configuration, State, and Reality: The ThreeProduction Terraform · foundation · ~10 min
- 05Common State MistakesProduction Terraform · intermediate · ~12 min
- 06Exploring the State SafelyProduction Terraform · foundation · ~10 min
Part X
State Operations: Read, Move, Remove, Import
Local state, remote state, state list/show/pull, state mv, state rm, import, moved blocks, and the production risks of each.
- 01Read-Only Operations: list, show, pullProduction Terraform · foundation · ~10 min
- 02state mv: Renaming Without RecreationProduction Terraform · intermediate · ~12 min
- 03state rm: Removing From State, Not From RealityProduction Terraform · intermediate · ~12 min
- 04Import: Adopting Existing InfrastructureProduction Terraform · intermediate · ~14 min
- 05replace-provider: Switching Provider NamespacesProduction Terraform · advanced · ~10 min
- 06moved Blocks: Declarative RefactoringProduction Terraform · intermediate · ~12 min
Part XI
State Security and Lifecycle
Sensitive data in state, encryption-at-rest, lifecycle.prevent_destroy, lifecycle.replace_triggered_by, and lifecycle.precondition.
- 01State Security ThreatsProduction Terraform · foundation · ~12 min
- 02Sensitive Values in State and VariablesProduction Terraform · intermediate · ~12 min
- 03Encryption at Rest for StateProduction Terraform · intermediate · ~12 min
- 04Backend Access ControlProduction Terraform · intermediate · ~12 min
- 05State Security in the Production PipelineProduction Terraform · intermediate · ~10 min
- 06A State Security IncidentProduction Terraform · intermediate · ~12 min
Part XII
State Recovery and Backup
State versioning, backups, recovery procedures, and the production control for state loss.
- 01State Backups: The Production ControlProduction Terraform · foundation · ~10 min
- 02State Versioning and RetentionProduction Terraform · intermediate · ~12 min
- 03Restoring State from BackupProduction Terraform · intermediate · ~12 min
- 04Defence in Depth: Multiple Backup LayersProduction Terraform · intermediate · ~10 min
- 05RPO and RTO for Terraform StateProduction Terraform · intermediate · ~10 min
- 06Testing the Recovery ProcedureProduction Terraform · intermediate · ~10 min
Part XIII
Variables, Outputs, and Locals
Variable types, validation, sensitive values, precedence, outputs, locals, and how to design a clean interface.
- 01Variable Types and ValidationProduction Terraform · foundation · ~12 min
- 02Variable Input PrecedenceProduction Terraform · intermediate · ~12 min
- 03Sensitive Values and the Production InterfaceProduction Terraform · intermediate · ~12 min
- 04Outputs: The Configuration InterfaceProduction Terraform · intermediate · ~12 min
- 05Locals: Internal VariablesProduction Terraform · intermediate · ~10 min
- 06Expressions for Production ConfigurationsProduction Terraform · intermediate · ~12 min
Part XIV
Modules: Reusable Building Blocks
Module structure, interfaces, sources, versioning, and the production rules of module design.
- 01Why ModulesProduction Terraform · foundation · ~12 min
- 02Module Structure and ConventionsProduction Terraform · foundation · ~14 min
- 03Designing a Module InterfaceProduction Terraform · intermediate · ~16 min
- 04Module Sources and VersioningProduction Terraform · intermediate · ~14 min
- 05Testing Modules with terraform testProduction Terraform · intermediate · ~16 min
- 06Module Abstraction: Avoiding the God ModuleProduction Terraform · intermediate · ~14 min
- 07Module Releases and UpgradesProduction Terraform · intermediate · ~14 min
Part XV
Environment Architecture and State Boundaries
How to design multi-environment estates; state boundaries as the unit of failure; workspaces, directories, and accounts.
- 01Why Multiple EnvironmentsProduction Terraform · foundation · ~10 min
- 02Patterns for Multi-Environment EstatesProduction Terraform · intermediate · ~14 min
- 03Environment Directories with Separate BackendsProduction Terraform · intermediate · ~12 min
- 04Multi-Account and Multi-Project ProductionProduction Terraform · intermediate · ~12 min
- 05State Boundaries as the Unit of FailureProduction Terraform · intermediate · ~14 min
- 06Blast Radius in Multi-Environment EstatesProduction Terraform · intermediate · ~12 min
- 07Terraform Workspaces: When and When NotProduction Terraform · intermediate · ~12 min
Part XVI
Plan Review and Saved Plans
How to read a plan, what the symbols mean, saved plans, and the production review workflow.
- 01Plan Symbols: Create, Update, Destroy, ReplaceProduction Terraform · foundation · ~14 min
- 02Reading the Plan: A Disciplined WalkProduction Terraform · intermediate · ~14 min
- 03Saved Plans and the ContractProduction Terraform · intermediate · ~14 min
- 04The Production Plan ReviewProduction Terraform · intermediate · ~14 min
- 05Spotting Risky Network ChangesProduction Terraform · advanced · ~14 min
- 06Spotting State and Identity ChangesProduction Terraform · advanced · ~14 min
Part XVII
Drift Detection and Reconciliation
How drift appears, how to detect it continuously, and the production rules for reconciling it.
- 01Drift: Configuration, State, and RealityProduction Terraform · foundation · ~10 min
- 02Detecting Drift with Refresh-Only PlansProduction Terraform · intermediate · ~12 min
- 03Intentional Drift: When the Real World Is RightProduction Terraform · intermediate · ~12 min
- 04Emergency Manual Changes and ReconciliationProduction Terraform · intermediate · ~12 min
- 05Continuous Drift Detection in ProductionProduction Terraform · intermediate · ~14 min
- 06Investigating Drift: The Production ControlProduction Terraform · intermediate · ~12 min
Part XVIII
Troubleshooting and Recovery
State corruption, plan failures, provider failures, partial apply, and the production control for each.
- 01The Troubleshooting MethodologyProduction Terraform · intermediate · ~12 min
- 02Troubleshooting State IssuesProduction Terraform · intermediate · ~12 min
- 03Troubleshooting Configuration ErrorsProduction Terraform · intermediate · ~12 min
- 04Troubleshooting Apply FailuresProduction Terraform · intermediate · ~14 min
- 05Terraform Logging and DebuggingProduction Terraform · intermediate · ~12 min
- 06The 3 AM Test: Production Under PressureProduction Terraform · advanced · ~14 min
Part XIX
Security: Credentials, Secrets, and Audit
Production credential patterns, secrets management, IAM, least privilege, and audit.
- 01Production Credential PatternsProduction Terraform · intermediate · ~14 min
- 02Secrets Management for TerraformProduction Terraform · intermediate · ~13 min
- 03Least Privilege for the Terraform Execution RoleProduction Terraform · intermediate · ~14 min
- 04IAM and Resource Policies in TerraformProduction Terraform · intermediate · ~13 min
- 05Auditing Terraform ActionsProduction Terraform · intermediate · ~13 min
- 06Rotating Credentials in ProductionProduction Terraform · intermediate · ~12 min
Part XX
Supply Chain: Providers and Modules
Provider provenance, dependency lock file, module sources, version pinning, and supply-chain risk.
- 01Provider Provenance and VerificationProduction Terraform · intermediate · ~14 min
- 02Module Supply ChainProduction Terraform · intermediate · ~14 min
- 03Evaluating Third-Party ModulesProduction Terraform · intermediate · ~14 min
- 04Third-Party Module RisksProduction Terraform · intermediate · ~14 min
- 05CI/CD Dependencies and Supply ChainProduction Terraform · intermediate · ~14 min
- 06A Supply Chain IncidentProduction Terraform · advanced · ~16 min
Part XXI
Testing, Linting, and Static Analysis
terraform test, fmt, validate, lint, security scanning, and the layered validation model.
- 01The Layered Testing ModelProduction Terraform · intermediate · ~12 min
- 02terraform test in DepthProduction Terraform · intermediate · ~14 min
- 03Mock Providers for Unit TestsProduction Terraform · advanced · ~14 min
- 04Format and Validate ChecksProduction Terraform · foundation · ~10 min
- 05Linting with tflintProduction Terraform · intermediate · ~12 min
- 06Static Security AnalysisProduction Terraform · intermediate · ~12 min
Part XXII
CI/CD for Production Terraform
Production pipeline design, plan artifacts, gated deploys, CI/CD credentials, and observability.
- 01The Production Pipeline DesignCI/CD pipeline · intermediate · ~18 min
- 02CI/CD Credentials for TerraformCI/CD credentials · intermediate · ~16 min
- 03Controlled Apply: Saved Plans, Approvals, and ConcurrencyCI/CD apply · intermediate · ~18 min
- 04Plan Artifacts as the Audit TrailCI/CD plan artifact · intermediate · ~12 min
- 05Multi-Environment CI/CDCI/CD environments · intermediate · ~16 min
- 06CI/CD Observability and FailuresCI/CD observability · intermediate · ~14 min
Part XXIII
Policy as Code
Production guardrails: OPA, Sentinel, Conftest, and policy enforcement patterns.
- 01Production Guardrails as CodeProduction Terraform · intermediate · ~14 min
- 02Policy Tools: Sentinel, OPA, Trivy, Checkov, tfsecProduction Terraform · intermediate · ~16 min
- 03Writing Effective Policy RulesProduction Terraform · intermediate · ~14 min
- 04Required Tags and Resource NamingProduction Terraform · intermediate · ~12 min
- 05Encryption-at-Rest and Encryption-in-Transit PoliciesProduction Terraform · intermediate · ~12 min
- 06Network Exposure PoliciesProduction Terraform · intermediate · ~14 min
Part XXIV
Upgrading Terraform, Providers, and Modules
Terraform Core upgrades, provider upgrades, module upgrades, and the production control for each.
- 01Upgrading Terraform CoreProduction Terraform · intermediate · ~14 min
- 02Upgrading Providers SafelyProduction Terraform · intermediate · ~14 min
- 03Upgrading Internal Modules SafelyProduction Terraform · intermediate · ~12 min
- 04Testing Upgrades Before ProductionProduction Terraform · intermediate · ~12 min
- 05Rollback Plans for UpgradesProduction Terraform · intermediate · ~10 min
- 06Emergency Upgrades in ProductionProduction Terraform · advanced · ~12 min
Part XXV
Migrations and Backend Changes
Backend migration, state migration, and importing existing infrastructure.
- 01Backend Migration Done RightProduction Terraform · intermediate · ~14 min
- 02State Migrations and RefactoringProduction Terraform · intermediate · ~12 min
- 03Importing Existing InfrastructureProduction Terraform · intermediate · ~14 min
- 04Migration Strategy for 300+ ResourcesProduction Terraform · advanced · ~14 min
- 05Verifying the MigrationProduction Terraform · intermediate · ~12 min
- 06Rollback from a Failed MigrationProduction Terraform · advanced · ~12 min
Part XXVI
Cloud and Platform Operations
Provider-neutral patterns for cloud, on-prem, and multi-cloud; Terraform + Ansible + Proxmox integration.
- 01Provider-Neutral PatternsProduction Terraform · intermediate · ~14 min
- 02Terraform on AWSProduction Terraform · intermediate · ~18 min
- 03Terraform on AzureProduction Terraform · intermediate · ~18 min
- 04Terraform with ProxmoxProduction Terraform · intermediate · ~18 min
- 05Terraform + Ansible: The Hand-OffProduction Terraform · intermediate · ~14 min
- 06Terraform On-PremisesProduction Terraform · intermediate · ~16 min
Part XXVII
Enterprise Scale: Multi-Team, Multi-Account
Multi-team, multi-account, multi-region; repositories, modules, and ownership at scale.
- 01Multi-Team Terraform OperationsProduction Terraform · advanced · ~14 min
- 02Multi-Account State BoundariesProduction Terraform · advanced · ~14 min
- 03Multi-Region ArchitectureProduction Terraform · advanced · ~14 min
- 04Monorepo vs PolyrepoProduction Terraform · advanced · ~12 min
- 05The Repository ArchitectureProduction Terraform · advanced · ~12 min
- 06Enterprise Module EcosystemProduction Terraform · advanced · ~14 min
Part XXVIII
Disaster Recovery and Resilience
Backup, RPO/RTO, state DR, and the production control for asset recovery.
- 01RPO and RTO for TerraformProduction Terraform · intermediate · ~12 min
- 02State Backend Disaster RecoveryProduction Terraform · advanced · ~14 min
- 03Terraform Execution Environment RecoveryProduction Terraform · advanced · ~12 min
- 04Periodic DR TestingProduction Terraform · advanced · ~12 min
- 05Cross-Region State ReplicationProduction Terraform · advanced · ~14 min
- 06Restoring the Production EstateProduction Terraform · advanced · ~14 min
Part XXIX
Incident Response: The 3 AM Test
Troubleshooting during incidents, break-glass changes, and the production control for partial failures.
- 01Preparing for the 3 AM TestProduction Terraform · intermediate · ~14 min
- 02Detecting a Production IncidentProduction Terraform · intermediate · ~12 min
- 03Responding to a Production IncidentProduction Terraform · advanced · ~16 min
- 04Break-Glass ProcedureProduction Terraform · advanced · ~14 min
- 05Post-Incident ReviewProduction Terraform · intermediate · ~13 min
- 06Preventive Measures from IncidentsProduction Terraform · intermediate · ~12 min
Part Labs
Hands-On Labs
Lab exercises across the course.
No lessons published in this part yet. The full curriculum is planned in docs/courses/terraform/curriculum.md on GitHub.
Part Runbooks
Operational Runbooks
Runbooks for production operations.
Part Checklists
Production Checklists
Checklists for production readiness.
Part Breakfix
Break/Fix Scenarios
Diagnostic and recovery exercises.
Part XXX
Capstone: A Production Terraform Estate
A multi-stage capstone that exercises every concept in the course, with failure injection and recovery.
No lessons published in this part yet. The full curriculum is planned in docs/courses/terraform/curriculum.md on GitHub.
Part XXXI
Final Assessment
The final practical assessment: diagnose a deliberately flawed production Terraform estate, rank the findings by blast radius, and state the remediation and its validation for each.
No lessons published in this part yet. The full curriculum is planned in docs/courses/terraform/curriculum.md on GitHub.