
The provider is essentially a Terraform plugin that provides a collection of related resources available for a particular type of infrastructure. The Terraform component that handles interacting with various types of infrastructure is the Terraform provider. In addition, any skew in the environment can be captured and corrected easily. This allows changes to be tracked and audited easily. Once infrastructure state and desired state can be captured inside of code, it can be effectively versioned and checked into popular versioning platforms such as Git and others. You describe how you want the infrastructure to "look" using the HashiCorp Configuration Language (HCL), and Terraform configures the infrastructure so that it matches your code. Terraform does this in a declarative manner. Terraform is a tool that makes the Infrastructure as Code (IaC) methodology possible by allowing you to describe various types of your infrastructure environment as code and interact with it in that way. HashiCorp's Terraform is a very powerful tool that allows building, changing, and versioning infrastructure.

The power of cloud environments is best unlocked when they can be consumed in an automated fashion. Using automation across the board allows organizations to be agile and much better equipped to make use of public cloud environments.
