This guide is the best place to start with Terraform introduction. Here we will cover what Terraform is, what problems it can solve, and how it can help us. We'll also compare it to already existing software.
This article contains a quick start for using Terraform.
Terraform is a tool to build, change, and versions infrastructure safely and efficiently, and that too effectively. Terraform can manage and cope up with existing and popular service providers as well as custom in-house solutions.
Configuration files describe Terraform as the components needed to run a single application or your whole data center. Terraform creates an execution plan describing what it will do to reach the desired state which is required and then executes it to build the related infrastructure as needed. As the configuration changes, Terraform can determine what has been changed and create incremental execution plans that can be applied.
The infrastructure Terraform can manage includes low-level components such as compute instances, storage, and networking. It also includes high-level components such as DNS entries, SaaS features, etc.
Infrastructure is described and designed using a high-level configuration syntax. This allows a blueprint of our datacenter to be versioned and treated as you would any other code too. Additionally, infrastructure can be shared and can be re-used.
Terraform contains a "planning" step where it generates an execution plan accordingly. The execution plan indicates what Terraform will do and perform when you call apply. This lets you avoid any surprises or shock when Terraform manipulates infrastructure.
Terraform builds a graph of all your resources and things and parallelizes the creation and modification of any non-dependent resources. Because of this, Terraform builds infrastructure as efficiently as possible, and operators get an insight into dependencies in their infrastructure.
Various complex changesets can be applied to your infrastructure with very minimal human interaction. With the earlier mentioned execution plan and support graph, we know precisely what Terraform will change and in what order, avoiding any possibility of human errors.