Infrastructure as Code - Building Production Infrastructure with Terraform & Terragrunt
A practical series about learning, designing, and applying Infrastructure as Code with Terraform and Terragrunt. It covers Terraform fundamentals, state, modules, Terragrunt project structure, Terraform Cloud, and lessons learned from building and managing production infrastructure.

Part 1Jul 15, 2026Infrastructure as CodeterraformterragruntWhat Is Infrastructure as Code? And Why I Stopped Managing Infrastructure Manually
Infrastructure as Code is more than just Terraform or a collection of .tf files. In the first article of this series, I'll share why IaC exists, the challenges of managing infrastructure manually, and how thinking of infrastructure as code fundamentally changed the way I build and operate systems.
Part 2Jul 22, 2026Infrastructure as CodeterraformterragruntHow Terraform Works: Understanding How Terraform "Thinks"
Terraform does not execute infrastructure sequentially like a Bash script. This article explains Terraform's execution model through Desired State, Current State, Actual Infrastructure, Dependency Graphs, Plans, Apply, Refresh, and Drift.
Part 3Jul 22, 2026devopsiacInfrastructure as Codeterraformterraform stateTerraform State — The Brain Behind Terraform
Terraform State is one of the most important yet misunderstood parts of Terraform. Learn what Terraform State is, why Terraform needs it, how it works, and the best practices for managing State in production.
Part 4Jul 22, 2026iacInfrastructure as Codeterraformterraform modulesDesign Terraform Modules like a Software Engineer
Terraform Modules are more than reusable code. A well-designed module makes infrastructure easier to maintain, scale, and reuse across environments. This article explores module design from a software engineering perspective.
Part 5Jul 22, 2026iacInfrastructure as Codeterraformterraform providerTerraform Provider — Why It Is More Than Just a Plugin
Understand how Terraform Providers work behind the scenes, from Resources and Data Sources to communication with external APIs. This is a fundamental concept for using Terraform effectively.
Part 6Jul 22, 2026iacInfrastructure as Codeterraformterraform datasourcesTerraform Data Sources — Reading Existing Infrastructure Instead of Creating It
Learn what Terraform Data Sources are, when to use them, how Terraform reads existing infrastructure, and how to combine Data Sources with Resources in real-world projects.
Part 7Jul 22, 2026iacInfrastructure as Codeterraformterraform methodsTerraform Features I Use Every Day (for_each, count, dynamic, locals, depends_on, lifecycle, ...)
Learn the Terraform features you'll use in almost every real-world project, including for_each, count, locals, dynamic blocks, depends_on, and lifecycle.
Part 8Jul 22, 2026iacInfrastructure as Codeterraformterraform repositoryDesigning a Production-Ready Terraform Repository
Learn how to organize a Terraform repository for production environments using modules, environments, and best practices that scale with your infrastructure.
Part 9Jul 22, 2026iacInfrastructure as Codeterraformterraform importImport Existing Infrastructure into Terraform
Learn how to bring existing infrastructure under Terraform management using terraform import and Import Blocks without recreating resources or disrupting production systems.
Part 10Jul 22, 2026iacInfrastructure as Coderemote state backendterraform stateTerraform Remote State Backends — The Foundation of Every Production-Grade Terraform Project
Learn why local Terraform state does not scale to production, how remote state backends work, and why centralized state is essential for team collaboration and CI/CD.
Part 11Jul 22, 2026iacInfrastructure as Codeterraformterraform mistakesCommon Terraform Mistakes (and How to Avoid Them)
Discover the most common mistakes engineers make when using Terraform, from state management and module design to collaboration workflows and production best practices.
Part 12Jul 22, 2026iacInfrastructure as CodeterraformterragruntWhen Terraform Is No Longer Enough: Introducing Terragrunt
Terraform is powerful, but managing multiple environments and modules at scale quickly becomes challenging. In this article, we'll explore Terraform's limitations and why Terragrunt was created.
Part 13Jul 26, 2026iacInfrastructure as CodeterraformterragruntWhat is Terragrunt? And How Does It Work?
Now that you understand Terraform, it's time to explore Terragrunt—a tool that helps manage Infrastructure as Code at production scale by reducing duplication, organizing repositories, and orchestrating multiple Terraform projects.
Part 14Jul 26, 2026devopsiacInfrastructure as CodeterraformterragruntBuilding a Production-Grade Repository Structure with Terragrunt
Learn how to organize a Terragrunt repository for production environments, multiple AWS accounts, and hundreds of Terraform projects while keeping your Infrastructure as Code scalable and maintainable.
Part 15Jul 26, 2026devopsdryiacInfrastructure as CodeterraformterragruntDRY Configuration with Terragrunt: include, generate, and read_terragrunt_config
Learn how Terragrunt's three most powerful features—include, generate, and read_terragrunt_config—eliminate repetitive configuration and make large Terraform repositories maintainable.
Part 16Jul 26, 2026dependency managementiacInfrastructure as CodeterraformterragruntDependency Management in Terragrunt: Managing Infrastructure Deployment Order
Learn how Terragrunt automatically manages dependencies between Terraform projects, builds dependency graphs, and deploys infrastructure in the correct order.
Part 17Jul 26, 2026devopsiacInfrastructure as CodeterraformterragruntManaging Multi-Environment and Multi-Account Infrastructure with Terragrunt
Learn how Terragrunt helps manage multiple environments and AWS accounts consistently while eliminating duplicated configuration and scaling Infrastructure as Code for enterprise environments.
Part 18Jul 26, 2026cicddevopsiacInfrastructure as CodesecretsterraformterragruntManaging Secrets and CI/CD with Terragrunt
Learn how to manage secrets securely and integrate Terragrunt into your CI/CD pipelines to automate Infrastructure as Code deployments in production.