as Code" tool, created by HashiCorp. · The Terraform language (HCL) is declarative, describing an intended goal rather than the steps to reach that goal. · Terraform providers are plugins that implement resource types typically in a public cloud provider. · The infrastructure provisioned is considered immutable (avoids configuration dri ).
no matter how many environments you have · Gets rid of duplicated backend code · Defines how to manage the Terraform state once in a root directory and inherits it in all child modules.
config (backend, providers, etc.) · Environment variables support (variables can be populated programmatically) · Automatic resource tagging (applies metadata universally) · Able to execute custom code before or a er running Terraform (before & a er hooks) · Explicit dependencies ("dependency injection") · Makes testing easier (see Terratest)