What is Terraform.
Terraform is an Infrastructure as a Code(IaaC) software by HashiCorp. IaaC- this includes tools like CloudFormation, Heat, etc. This allow the details of an infrastructure to be codified into a configuration file. The configuration files allow the infrastructure to be elastically created, modified and destroyed. Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. Terraform can manage existing and popular service providers as well as custom in-house solutions. It can be public cloud private cloud or a mix of cloud such as such as IBM Cloud (formerly Bluemix), AWS, Microsoft Azure or Google Cloud Platform
Since the infrastructure is now codable, ie converted into files which can be saved in code repositories, changes can be used with a version control, changes can be tested without actually performing the change, this also helps in documenting the changes, ensuring the infrastructure setup can be replicated again and again without much difficulty and with high level of accuracy. this is also helpful if a team or project wants to create and manage infrastructure on the fly as a part of application provisioning. this provides opportunity to maintain the state of the architecture and ensure some
Terraform also separates the planning phase from the execution phase, by using the concept of an execution plan. By running terraform plan, the current state is refreshed and the configuration is consulted to generate an action plan. The plan includes all actions to be taken: which resources will be created, destroyed or modified. It can be inspected by operators to ensure it is exactly what is expected. Using terraform graph, the plan can be visualized to show dependent ordering. Terraform since is made of modules also allows code re- usability.