Learn Terraform from fundamentals to mastery: Infrastructure as Code concepts, HCL syntax, state management, modules, up to production-grade enterprise architecture.
Before diving deeper into Terraform, there are several basic skills and tools you need to prepare first, starting from Linux CLI, basic cloud computing concepts, to Terraform CLI installation and cloud credentials setup.

Before we write Terraform code, we need to understand first where IaC was born: the evolution of infrastructure management from manual ClickOps, shell scripting, to declarative Infrastructure as Code — and why Terraform became the primary choice.

Time to write your first Terraform code: understanding the anatomy of HCL syntax from blocks, arguments, to identifiers, then practicing the four core workflow steps — init, plan, apply, and destroy.

In this episode we'll discuss three fundamental Terraform blocks: providers as the bridge to cloud APIs, resources as the building blocks of infrastructure, and data sources to read existing infrastructure without having to recreate it.

In this episode we'll make Terraform configuration flexible and reusable through input variables, simplify repeated expressions with local values, and surface important post-apply information through output values.

In this episode we'll dissect the terraform.tfstate file that is Terraform's source of truth, the dangers of storing state locally for a team, and how remote backends with state locking (S3 + DynamoDB, GCS) prevent concurrent executions that can corrupt infrastructure.

In this episode we'll deepen our HCL skills by learning built-in functions, conditional expressions (ternary), and the count and for_each looping meta-arguments to write dynamic and efficient configurations.

In this episode we'll understand how Terraform builds a dependency graph to determine resource creation order, when we need to force order with depends_on, and protect infrastructure with lifecycle rules like create_before_destroy and prevent_destroy.

In this episode we'll connect existing infrastructure to Terraform with the import block, restructure code without destruction using moved, and inspect and clean up state through terraform state commands.

Understand why modules are the foundation of IaC at enterprise scale. Learn the standard module structure, creating a reusable VPC module, calling local and remote modules, up to version pinning and its best practices.
