Skip to main content
RunBook Academy

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.

6 lessons
  1. 01Why Infrastructure as Code ExistsFoundations · foundation · ~14 min
  2. 02Declarative versus Imperative ProvisioningFoundations · foundation · ~12 min
  3. 03Terraform in the Infrastructure EcosystemFoundations · foundation · ~12 min
  4. 04Reproducibility and the BlueprintFoundations · foundation · ~12 min
  5. 05Drift: The Tax of Manual InfrastructureFoundations · foundation · ~14 min
  6. 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.

6 lessons
  1. 01The CLI and Core: What Each DoesProduction Terraform · foundation · ~12 min
  2. 02Provider Plugins: The Bridge to the Real WorldProduction Terraform · foundation · ~12 min
  3. 03State and the Resource ModelProduction Terraform · foundation · ~14 min
  4. 04The Dependency Graph and ParallelismProduction Terraform · intermediate · ~14 min
  5. 05Refresh and Plan: How They InteractProduction Terraform · intermediate · ~12 min
  6. 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.

6 lessons
  1. 01Choosing an Installation MethodProduction Terraform · foundation · ~10 min
  2. 02Verifying the InstallationProduction Terraform · foundation · ~10 min
  3. 03Team-Wide Version RolloutProduction Terraform · foundation · ~10 min
  4. 04required_version: The FloorProduction Terraform · foundation · ~10 min
  5. 05The Dependency Lock FileProduction Terraform · intermediate · ~12 min
  6. 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.

7 lessons
  1. 01HCL Blocks, Arguments, and the Configuration FileProduction Terraform · foundation · ~12 min
  2. 02HCL Types and ValuesProduction Terraform · foundation · ~14 min
  3. 03Expressions and ReferencesProduction Terraform · foundation · ~12 min
  4. 04Functions for Production CodeProduction Terraform · intermediate · ~14 min
  5. 05Conditional Expressions and For LoopsProduction Terraform · intermediate · ~14 min
  6. 06Writing Readable HCLProduction Terraform · intermediate · ~10 min
  7. 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).

7 lessons
  1. 01fmt and validate: The Cheap GatesProduction Terraform · foundation · ~10 min
  2. 02terraform init: The BootstrapProduction Terraform · foundation · ~12 min
  3. 03terraform plan in DepthProduction Terraform · intermediate · ~18 min
  4. 04terraform apply in DepthProduction Terraform · intermediate · ~14 min
  5. 05terraform destroy: A Production-Dangerous OperationProduction Terraform · intermediate · ~12 min
  6. 06terraform output and terraform showProduction Terraform · foundation · ~10 min
  7. 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.

6 lessons
  1. 01The Provider Plugin ModelProduction Terraform · foundation · ~12 min
  2. 02Provider Sources and RegistriesProduction Terraform · foundation · ~12 min
  3. 03Provider Versioning and the Dependency LockProduction Terraform · intermediate · ~14 min
  4. 04Provider Aliases for Multi-Region and Multi-AccountProduction Terraform · intermediate · ~12 min
  5. 05Provider Authentication in ProductionProduction Terraform · intermediate · ~14 min
  6. 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.

7 lessons
  1. 01CRUD and the Resource LifecycleProduction Terraform · foundation · ~12 min
  2. 02Resource Attributes and Computed ValuesProduction Terraform · foundation · ~12 min
  3. 03Resource Replacement and In-Place UpdatesProduction Terraform · intermediate · ~14 min
  4. 04Data Sources: Reading Without ManagingProduction Terraform · intermediate · ~12 min
  5. 05count: Index-Based Resource InstancesProduction Terraform · intermediate · ~12 min
  6. 06for_each: Stable Key-Based Resource InstancesProduction Terraform · intermediate · ~12 min
  7. 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.

6 lessons
  1. 01Implicit Dependencies Through ReferencesDependencies · foundation · ~14 min
  2. 02Explicit Dependencies with depends_onDependencies · intermediate · ~14 min
  3. 03The Dependency GraphDependencies · intermediate · ~14 min
  4. 04Dependency Cycles: Detection and ResolutionDependencies · intermediate · ~16 min
  5. 05Parallelism and -parallelismDependencies · intermediate · ~14 min
  6. 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.

6 lessons
  1. 01Why State ExistsProduction Terraform · foundation · ~12 min
  2. 02State File StructureProduction Terraform · foundation · ~12 min
  3. 03Resource Addresses and Real-World MappingProduction Terraform · intermediate · ~12 min
  4. 04Configuration, State, and Reality: The ThreeProduction Terraform · foundation · ~10 min
  5. 05Common State MistakesProduction Terraform · intermediate · ~12 min
  6. 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.

6 lessons
  1. 01Read-Only Operations: list, show, pullProduction Terraform · foundation · ~10 min
  2. 02state mv: Renaming Without RecreationProduction Terraform · intermediate · ~12 min
  3. 03state rm: Removing From State, Not From RealityProduction Terraform · intermediate · ~12 min
  4. 04Import: Adopting Existing InfrastructureProduction Terraform · intermediate · ~14 min
  5. 05replace-provider: Switching Provider NamespacesProduction Terraform · advanced · ~10 min
  6. 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.

6 lessons
  1. 01State Security ThreatsProduction Terraform · foundation · ~12 min
  2. 02Sensitive Values in State and VariablesProduction Terraform · intermediate · ~12 min
  3. 03Encryption at Rest for StateProduction Terraform · intermediate · ~12 min
  4. 04Backend Access ControlProduction Terraform · intermediate · ~12 min
  5. 05State Security in the Production PipelineProduction Terraform · intermediate · ~10 min
  6. 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.

6 lessons
  1. 01State Backups: The Production ControlProduction Terraform · foundation · ~10 min
  2. 02State Versioning and RetentionProduction Terraform · intermediate · ~12 min
  3. 03Restoring State from BackupProduction Terraform · intermediate · ~12 min
  4. 04Defence in Depth: Multiple Backup LayersProduction Terraform · intermediate · ~10 min
  5. 05RPO and RTO for Terraform StateProduction Terraform · intermediate · ~10 min
  6. 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.

6 lessons
  1. 01Variable Types and ValidationProduction Terraform · foundation · ~12 min
  2. 02Variable Input PrecedenceProduction Terraform · intermediate · ~12 min
  3. 03Sensitive Values and the Production InterfaceProduction Terraform · intermediate · ~12 min
  4. 04Outputs: The Configuration InterfaceProduction Terraform · intermediate · ~12 min
  5. 05Locals: Internal VariablesProduction Terraform · intermediate · ~10 min
  6. 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.

7 lessons
  1. 01Why ModulesProduction Terraform · foundation · ~12 min
  2. 02Module Structure and ConventionsProduction Terraform · foundation · ~14 min
  3. 03Designing a Module InterfaceProduction Terraform · intermediate · ~16 min
  4. 04Module Sources and VersioningProduction Terraform · intermediate · ~14 min
  5. 05Testing Modules with terraform testProduction Terraform · intermediate · ~16 min
  6. 06Module Abstraction: Avoiding the God ModuleProduction Terraform · intermediate · ~14 min
  7. 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.

7 lessons
  1. 01Why Multiple EnvironmentsProduction Terraform · foundation · ~10 min
  2. 02Patterns for Multi-Environment EstatesProduction Terraform · intermediate · ~14 min
  3. 03Environment Directories with Separate BackendsProduction Terraform · intermediate · ~12 min
  4. 04Multi-Account and Multi-Project ProductionProduction Terraform · intermediate · ~12 min
  5. 05State Boundaries as the Unit of FailureProduction Terraform · intermediate · ~14 min
  6. 06Blast Radius in Multi-Environment EstatesProduction Terraform · intermediate · ~12 min
  7. 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.

6 lessons
  1. 01Plan Symbols: Create, Update, Destroy, ReplaceProduction Terraform · foundation · ~14 min
  2. 02Reading the Plan: A Disciplined WalkProduction Terraform · intermediate · ~14 min
  3. 03Saved Plans and the ContractProduction Terraform · intermediate · ~14 min
  4. 04The Production Plan ReviewProduction Terraform · intermediate · ~14 min
  5. 05Spotting Risky Network ChangesProduction Terraform · advanced · ~14 min
  6. 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.

6 lessons
  1. 01Drift: Configuration, State, and RealityProduction Terraform · foundation · ~10 min
  2. 02Detecting Drift with Refresh-Only PlansProduction Terraform · intermediate · ~12 min
  3. 03Intentional Drift: When the Real World Is RightProduction Terraform · intermediate · ~12 min
  4. 04Emergency Manual Changes and ReconciliationProduction Terraform · intermediate · ~12 min
  5. 05Continuous Drift Detection in ProductionProduction Terraform · intermediate · ~14 min
  6. 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.

6 lessons
  1. 01The Troubleshooting MethodologyProduction Terraform · intermediate · ~12 min
  2. 02Troubleshooting State IssuesProduction Terraform · intermediate · ~12 min
  3. 03Troubleshooting Configuration ErrorsProduction Terraform · intermediate · ~12 min
  4. 04Troubleshooting Apply FailuresProduction Terraform · intermediate · ~14 min
  5. 05Terraform Logging and DebuggingProduction Terraform · intermediate · ~12 min
  6. 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.

6 lessons
  1. 01Production Credential PatternsProduction Terraform · intermediate · ~14 min
  2. 02Secrets Management for TerraformProduction Terraform · intermediate · ~13 min
  3. 03Least Privilege for the Terraform Execution RoleProduction Terraform · intermediate · ~14 min
  4. 04IAM and Resource Policies in TerraformProduction Terraform · intermediate · ~13 min
  5. 05Auditing Terraform ActionsProduction Terraform · intermediate · ~13 min
  6. 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.

6 lessons
  1. 01Provider Provenance and VerificationProduction Terraform · intermediate · ~14 min
  2. 02Module Supply ChainProduction Terraform · intermediate · ~14 min
  3. 03Evaluating Third-Party ModulesProduction Terraform · intermediate · ~14 min
  4. 04Third-Party Module RisksProduction Terraform · intermediate · ~14 min
  5. 05CI/CD Dependencies and Supply ChainProduction Terraform · intermediate · ~14 min
  6. 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.

6 lessons
  1. 01The Layered Testing ModelProduction Terraform · intermediate · ~12 min
  2. 02terraform test in DepthProduction Terraform · intermediate · ~14 min
  3. 03Mock Providers for Unit TestsProduction Terraform · advanced · ~14 min
  4. 04Format and Validate ChecksProduction Terraform · foundation · ~10 min
  5. 05Linting with tflintProduction Terraform · intermediate · ~12 min
  6. 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.

6 lessons
  1. 01The Production Pipeline DesignCI/CD pipeline · intermediate · ~18 min
  2. 02CI/CD Credentials for TerraformCI/CD credentials · intermediate · ~16 min
  3. 03Controlled Apply: Saved Plans, Approvals, and ConcurrencyCI/CD apply · intermediate · ~18 min
  4. 04Plan Artifacts as the Audit TrailCI/CD plan artifact · intermediate · ~12 min
  5. 05Multi-Environment CI/CDCI/CD environments · intermediate · ~16 min
  6. 06CI/CD Observability and FailuresCI/CD observability · intermediate · ~14 min

Part XXIII

Policy as Code

Production guardrails: OPA, Sentinel, Conftest, and policy enforcement patterns.

6 lessons
  1. 01Production Guardrails as CodeProduction Terraform · intermediate · ~14 min
  2. 02Policy Tools: Sentinel, OPA, Trivy, Checkov, tfsecProduction Terraform · intermediate · ~16 min
  3. 03Writing Effective Policy RulesProduction Terraform · intermediate · ~14 min
  4. 04Required Tags and Resource NamingProduction Terraform · intermediate · ~12 min
  5. 05Encryption-at-Rest and Encryption-in-Transit PoliciesProduction Terraform · intermediate · ~12 min
  6. 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.

6 lessons
  1. 01Upgrading Terraform CoreProduction Terraform · intermediate · ~14 min
  2. 02Upgrading Providers SafelyProduction Terraform · intermediate · ~14 min
  3. 03Upgrading Internal Modules SafelyProduction Terraform · intermediate · ~12 min
  4. 04Testing Upgrades Before ProductionProduction Terraform · intermediate · ~12 min
  5. 05Rollback Plans for UpgradesProduction Terraform · intermediate · ~10 min
  6. 06Emergency Upgrades in ProductionProduction Terraform · advanced · ~12 min

Part XXV

Migrations and Backend Changes

Backend migration, state migration, and importing existing infrastructure.

6 lessons
  1. 01Backend Migration Done RightProduction Terraform · intermediate · ~14 min
  2. 02State Migrations and RefactoringProduction Terraform · intermediate · ~12 min
  3. 03Importing Existing InfrastructureProduction Terraform · intermediate · ~14 min
  4. 04Migration Strategy for 300+ ResourcesProduction Terraform · advanced · ~14 min
  5. 05Verifying the MigrationProduction Terraform · intermediate · ~12 min
  6. 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.

6 lessons
  1. 01Provider-Neutral PatternsProduction Terraform · intermediate · ~14 min
  2. 02Terraform on AWSProduction Terraform · intermediate · ~18 min
  3. 03Terraform on AzureProduction Terraform · intermediate · ~18 min
  4. 04Terraform with ProxmoxProduction Terraform · intermediate · ~18 min
  5. 05Terraform + Ansible: The Hand-OffProduction Terraform · intermediate · ~14 min
  6. 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.

6 lessons
  1. 01Multi-Team Terraform OperationsProduction Terraform · advanced · ~14 min
  2. 02Multi-Account State BoundariesProduction Terraform · advanced · ~14 min
  3. 03Multi-Region ArchitectureProduction Terraform · advanced · ~14 min
  4. 04Monorepo vs PolyrepoProduction Terraform · advanced · ~12 min
  5. 05The Repository ArchitectureProduction Terraform · advanced · ~12 min
  6. 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.

6 lessons
  1. 01RPO and RTO for TerraformProduction Terraform · intermediate · ~12 min
  2. 02State Backend Disaster RecoveryProduction Terraform · advanced · ~14 min
  3. 03Terraform Execution Environment RecoveryProduction Terraform · advanced · ~12 min
  4. 04Periodic DR TestingProduction Terraform · advanced · ~12 min
  5. 05Cross-Region State ReplicationProduction Terraform · advanced · ~14 min
  6. 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.

6 lessons
  1. 01Preparing for the 3 AM TestProduction Terraform · intermediate · ~14 min
  2. 02Detecting a Production IncidentProduction Terraform · intermediate · ~12 min
  3. 03Responding to a Production IncidentProduction Terraform · advanced · ~16 min
  4. 04Break-Glass ProcedureProduction Terraform · advanced · ~14 min
  5. 05Post-Incident ReviewProduction Terraform · intermediate · ~13 min
  6. 06Preventive Measures from IncidentsProduction Terraform · intermediate · ~12 min

Part Labs

Hands-On Labs

Lab exercises across the course.

0 lessons

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.

0 lessons

Part Checklists

Production Checklists

Checklists for production readiness.

0 lessons

Part Breakfix

Break/Fix Scenarios

Diagnostic and recovery exercises.

0 lessons

Part XXX

Capstone: A Production Terraform Estate

A multi-stage capstone that exercises every concept in the course, with failure injection and recovery.

0 lessons

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.

0 lessons

No lessons published in this part yet. The full curriculum is planned in docs/courses/terraform/curriculum.md on GitHub.