With cloud deployment, everything you do to build an application becomes code, whether business logic, configuration, infrastructure, or some other component. Infrastructure as Code (IaC) enables you to provision your servers, security, and configuration files with version control, speed, reliability, and scalability. The beauty of IaC is that it can be shared and re-used to build similar environments.
Terraform is one of the most popular IaC tools due to its platform-agnostic behavior. It can be applied to any cloud IaaS(AWS, GCP, etc.) and can provision any desired resource on almost any provider (GitHub, Docker, etc.). It uses HashiCorp Configuration Language (HCL) to automate this whole process.
In this article, the first in a two-part series about Terraform, I’ll discuss how to use the various aspects of the Terraform configuration as effectively as possible. I’ll also review some of Terraform’s most advanced features, as well as several third-party tools that you can use with it.