Terraform is an open-source software tool that allows for infrastructure to be represented as code. This brings numerous advantages over traditional infrastructure mannagement, both on-premesis and the cloud.
Benefits of IaC
-
Being able to use Version Control Systems like Git to improve code quality checks, revert in the event of a misconfiguration, or replicate infrastructure to new environments easier.
-
Automation: Being able to create an environment automatically instead of having to manually make changes for every new change request
-
Self-documentation: having the code visible allows for the infnrastructure to be easily understood, as it is all in the same directory and human-readable
Why Terraform?
Terraform, in addition to using Infrastructure as Code, allows for the stateful managemet of resources. This means that Terraform acts as a state machine, creating a resource when running terraform apply
, and deleting it when running terraform destroy
. Terraform also can remove manual changes made in the console, by reconciling the resources with the state when running terraform apply
again.