Skip to main content
RunBook Academy

Terraform · Curriculum

Curriculum

218 lessons across 36 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.

8 lessons
  1. 01Welcome to Terraform for Production SysadminsCourse introduction · foundation · ~12 min
  2. 01Why Infrastructure as Code ExistsProduction Terraform · foundation · ~12 min
  3. 02Why Infrastructure as Code ExistsIaC foundations · foundation · ~18 min
  4. 02Declarative vs Imperative ProvisioningProduction Terraform · foundation · ~10 min
  5. 03Terraform in the Infrastructure EcosystemProduction Terraform · foundation · ~12 min
  6. 04Reproducibility and the BlueprintProduction Terraform · foundation · ~10 min
  7. 05Drift: The Tax of Manual InfrastructureProduction Terraform · foundation · ~12 min
  8. 06Infrastructure Ownership and the Configuration RepositoryProduction Terraform · foundation · ~10 min

Part II

Terraform Architecture

The CLI, Core, configuration, state, providers, plugins, and the dependency graph; what each component does and does not do.

7 lessons
  1. 01Terraform ArchitectureCore architecture · foundation · ~22 min
  2. 01The CLI and the Core: What Each DoesProduction Terraform · foundation · ~12 min
  3. 02Provider Plugins: The Bridge to the Real WorldProduction Terraform · foundation · ~12 min
  4. 03The State and Resource ModelProduction Terraform · foundation · ~14 min
  5. 04The Dependency Graph and ParallelismProduction Terraform · intermediate · ~14 min
  6. 05How Refresh and Plan InteractProduction Terraform · intermediate · ~12 min
  7. 06How Apply Executes PlanProduction Terraform · intermediate · ~14 min

Part III

Installing and Versioning Terraform

Official installation, version pinning, the dependency lockfile, and reproducible control environments.

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

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

11 lessons
  1. 01terraform apply: From Plan to RealityApply · intermediate · ~22 minLab
  2. 01The Basic WorkflowDaily cycle · foundation · ~16 minLab
  3. 01terraform destroy: The Most Dangerous OperationDestroy · advanced · ~18 minLab
  4. 01terraform init in DepthInit · intermediate · ~14 minLab
  5. 01fmt and validate: The Cheap GatesProduction Terraform · foundation · ~10 min
  6. 02terraform init: The BootstrapProduction Terraform · foundation · ~12 min
  7. 03terraform plan in DepthProduction Terraform · intermediate · ~18 min
  8. 04terraform apply in DepthProduction Terraform · intermediate · ~14 min
  9. 05terraform destroy: A Production-Dangerous OperationProduction Terraform · intermediate · ~12 min
  10. 06terraform output and terraform showProduction Terraform · foundation · ~10 min
  11. 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.

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

9 lessons
  1. 01Data Sources: Reading Infrastructure Terraform Does Not ManageData sources · foundation · ~12 minLab
  2. 01CRUD and the Resource LifecycleProduction Terraform · foundation · ~12 min
  3. 01Resources: The Building BlocksResources · foundation · ~22 minLab
  4. 02Resource Attributes and Computed ValuesProduction Terraform · foundation · ~12 min
  5. 03Resource Replacement and In-Place UpdatesProduction Terraform · intermediate · ~14 min
  6. 04Data Sources: Reading Without ManagingProduction Terraform · intermediate · ~12 min
  7. 05count: Index-Based Resource InstancesProduction Terraform · intermediate · ~12 min
  8. 06for_each: Stable Key-Based Resource InstancesProduction Terraform · intermediate · ~12 min
  9. 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 ReferencesProduction Terraform · foundation · ~10 min
  2. 02Explicit Dependencies with depends_onProduction Terraform · intermediate · ~10 min
  3. 03The Dependency GraphProduction Terraform · intermediate · ~12 min
  4. 04Dependency Cycles: Detection and ResolutionProduction Terraform · intermediate · ~10 min
  5. 05Parallelism and -parallelismProduction Terraform · intermediate · ~10 min
  6. 06Resource Ordering and Implicit ChainsProduction Terraform · intermediate · ~10 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.

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

11 lessons
  1. 01Importing Existing InfrastructureImports · intermediate · ~18 minLab
  2. 01Read-Only Operations: list, show, pullProduction Terraform · foundation · ~10 min
  3. 01moved Blocks: Refactoring Without RecreationRefactoring · advanced · ~14 minLab
  4. 01Local State vs Remote StateState backends · intermediate · ~22 minLab
  5. 01State Commands: Reading and Operating on StateState commands · advanced · ~14 minLab
  6. 02state mv: Renaming Without RecreationProduction Terraform · intermediate · ~12 min
  7. 02Local State: What It Looks Like and Why It Is BrittleState · intermediate · ~14 minLab
  8. 03state rm: Removing From State, Not From RealityProduction Terraform · intermediate · ~12 min
  9. 04Import: Adopting Existing InfrastructureProduction Terraform · intermediate · ~14 min
  10. 05replace-provider: Switching Provider NamespacesProduction Terraform · advanced · ~10 min
  11. 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.

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

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

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

9 lessons
  1. 01Modules: Reusable Building BlocksModules · intermediate · ~26 minLab
  2. 01Why ModulesProduction Terraform · foundation · ~10 min
  3. 02Modules: Reusable Building Blocks in DepthModules · intermediate · ~16 min
  4. 02Module Structure and ConventionsProduction Terraform · foundation · ~12 min
  5. 03Designing a Module InterfaceProduction Terraform · intermediate · ~14 min
  6. 04Module Sources and VersioningProduction Terraform · intermediate · ~12 min
  7. 05Testing Modules with terraform testProduction Terraform · intermediate · ~14 min
  8. 06Module Abstraction: Avoiding the God ModuleProduction Terraform · intermediate · ~12 min
  9. 07Module Releases and UpgradesProduction Terraform · intermediate · ~12 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.

11 lessons
  1. 01Blast Radius: The Central Production ConceptArchitecture · intermediate · ~14 min
  2. 01State Boundaries: Decomposing the Terraform EstateArchitecture · intermediate · ~12 min
  3. 01Environment Architecture: Dev, Staging, ProductionEnvironment architecture · intermediate · ~18 minLab
  4. 01Workspaces: Multiple States in One BackendEnvironment architecture · intermediate · ~10 minLab
  5. 01Why Multiple EnvironmentsProduction Terraform · foundation · ~10 min
  6. 02Patterns for Multi-Environment EstatesProduction Terraform · intermediate · ~14 min
  7. 03Environment Directories with Separate BackendsProduction Terraform · intermediate · ~12 min
  8. 04Multi-Account and Multi-Project ProductionProduction Terraform · intermediate · ~12 min
  9. 05State Boundaries as the Unit of FailureProduction Terraform · intermediate · ~14 min
  10. 06Blast Radius in Multi-Environment EstatesProduction Terraform · intermediate · ~12 min
  11. 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.

8 lessons
  1. 01Saved Plans: The Production Apply PatternApply · intermediate · ~10 minLab
  2. 01terraform plan in DepthPlan review · intermediate · ~30 minLab
  3. 01Plan Symbols: Create, Update, Destroy, ReplaceProduction Terraform · foundation · ~12 min
  4. 02Reading the Plan: A Disciplined WalkProduction Terraform · intermediate · ~14 min
  5. 03Saved Plans and the ContractProduction Terraform · intermediate · ~12 min
  6. 04The Production Plan ReviewProduction Terraform · intermediate · ~14 min
  7. 05Spotting Risky Network ChangesProduction Terraform · advanced · ~12 min
  8. 06Spotting State and Identity ChangesProduction Terraform · advanced · ~12 min

Part XVII

Drift Detection and Reconciliation

How drift appears, how to detect it continuously, and the production rules for reconciling it.

9 lessons
  1. 01Drift: Infrastructure That Changed Without TerraformDrift · intermediate · ~20 minLab
  2. 01Refreshing State: Reducing Drift to RealityDrift · intermediate · ~8 minLab
  3. 01Drift: Configuration, State, and RealityProduction Terraform · foundation · ~10 min
  4. 02Drift Detection in ProductionDrift · intermediate · ~12 minLab
  5. 02Detecting Drift with Refresh-Only PlansProduction Terraform · intermediate · ~12 min
  6. 03Intentional Drift: When the Real World Is RightProduction Terraform · intermediate · ~12 min
  7. 04Emergency Manual Changes and ReconciliationProduction Terraform · intermediate · ~12 min
  8. 05Continuous Drift Detection in ProductionProduction Terraform · intermediate · ~14 min
  9. 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 · ~12 min
  2. 02Secrets Management for TerraformProduction Terraform · intermediate · ~12 min
  3. 03Least Privilege for the Terraform Execution RoleProduction Terraform · intermediate · ~12 min
  4. 04IAM and Resource Policies in TerraformProduction Terraform · intermediate · ~12 min
  5. 05Auditing Terraform ActionsProduction Terraform · intermediate · ~12 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 · ~12 min
  2. 02Module Supply ChainProduction Terraform · intermediate · ~12 min
  3. 03Evaluating Third-Party ModulesProduction Terraform · intermediate · ~12 min
  4. 04Third-Party Module RisksProduction Terraform · intermediate · ~12 min
  5. 05CI/CD Dependencies and Supply ChainProduction Terraform · intermediate · ~12 min
  6. 06A Supply Chain IncidentProduction Terraform · advanced · ~14 min

Part XXI

Testing, Linting, and Static Analysis

terraform test, fmt, validate, lint, security scanning, and the layered validation model.

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

7 lessons
  1. 01CI for Terraform: The Production PipelineCI · intermediate · ~14 min
  2. 01The Production Pipeline DesignProduction Terraform · intermediate · ~14 min
  3. 02CI/CD Credentials for TerraformProduction Terraform · intermediate · ~12 min
  4. 03Controlled Apply: Saved Plans and ApprovalsProduction Terraform · intermediate · ~12 min
  5. 04Plan Artifacts as the Audit TrailProduction Terraform · intermediate · ~10 min
  6. 05Multi-Environment CI/CDProduction Terraform · intermediate · ~12 min
  7. 06CI/CD Observability and FailuresProduction Terraform · intermediate · ~12 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: OPA, Sentinel, ConftestProduction Terraform · intermediate · ~14 min
  3. 03Writing Effective Policy RulesProduction Terraform · intermediate · ~12 min
  4. 04Required Tags and Resource NamingProduction Terraform · intermediate · ~10 min
  5. 05Encryption-at-Rest PoliciesProduction Terraform · intermediate · ~10 min
  6. 06Network Exposure PoliciesProduction Terraform · intermediate · ~10 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 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 · ~12 min
  2. 02Terraform on AWSProduction Terraform · intermediate · ~12 min
  3. 03Terraform on AzureProduction Terraform · intermediate · ~12 min
  4. 04Terraform with ProxmoxProduction Terraform · intermediate · ~12 min
  5. 05Terraform + Ansible: The Hand-OffProduction Terraform · intermediate · ~12 min
  6. 06Terraform On-PremisesProduction Terraform · intermediate · ~12 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 · intermediate · ~12 min
  5. 05Cross-Region State ReplicationProduction Terraform · advanced · ~12 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 · ~12 min
  2. 02Detecting a Production IncidentProduction Terraform · intermediate · ~12 min
  3. 03Responding to a Production IncidentProduction Terraform · advanced · ~14 min
  4. 04Break-Glass ProcedureProduction Terraform · advanced · ~14 min
  5. 05Post-Incident ReviewProduction Terraform · intermediate · ~12 min
  6. 06Preventive Measures from IncidentsProduction Terraform · intermediate · ~12 min

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

Comprehensive theory and practical assessment of every production competency.

0 lessons

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

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 Final

Terraform Final Assessment

Comprehensive assessment.

0 lessons

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