Terraform is an open-source [[infrastructure as code]] ([[IaC]]) tool developed by [[HashiCorp]]. It allows you to define and manage your infrastructure in a declarative way, meaning you write code to describe the desired state of your infrastructure, and Terraform will automatically manage the creation, modification, and deletion of resources to achieve that state.
With Terraform, you can provision and manage various types of resources such as virtual machines, storage accounts, network configurations, load balancers, and more across different cloud providers like Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP), and others. It supports a wide range of cloud services offered by these providers.
Terraform uses a domain-specific language called HashiCorp Configuration Language (HCL) for writing its infrastructure code. HCL is designed to be human-readable and allows you to define resources and their configurations in a concise manner.
One of the key features of Terraform is its ability to create an execution plan before making any changes to your infrastructure. This plan shows you what actions Terraform will take to reach the desired state, giving you an opportunity to review and validate the changes before applying them. This helps in preventing unwanted or unintended modifications.
Terraform also supports versioning and collaboration through integration with various version control systems like Git. This allows teams to work together on defining and managing infrastructure code while maintaining version history for easy rollback or auditing purposes.
Overall, Terraform simplifies the process of managing infrastructure by providing a unified way to provision resources across multiple cloud providers. It enables Infrastructure as Code practices, making it easier to automate infrastructure deployment and maintain consistency across environments.