Terraform is a tool for building, changing and versioning infrastructure safely and efficiently.
Features:
- Write Cloud Infrastructure as Code using Hashicorp Language (HCl)
- Reproducible Environments
- Idempotence & Convergence
- Easing Collaboration
- Self-Service Infrastructure
Supported Infrastructures:
- Public Clouds like AWS, GCP, Microsoft Azure
- Private Clouds like OpenStack, vSphere, CloudStack
- Software & Services like MySQL, GitHub and Chef
When to use Terraform:
- For Multi-Cloud Deployments
- Multi-Tier Apps
- Disposable Environments
- Resource Schedulers
Products offered by Terraform:
- Open Source – With Open Source Terraform you can provision any Infrastructure
- Professional – Offers collaboration and operations features for Teams
- Premium – Governance and policy features for organisations
Terraform Workflow
Step 1: Write/Modify Configuration files
Step 2: Create an execution plan (.plan command)
Step 3: Review the plan (if rejected, go back to Step 1 else proceed to Step 4)
Step 4: Apply the changes (.apply command)
Resource Graphs in Terraform:
- Terraform offers resource graphs which help capture dependency information in your infrastructure.
- It enables parallel changes to your infrastructure.
- Resource graphs can be visualized

Automation Workflows in Terraform includes Integrating into CI/CD pipelines which offers Auto Accept, Manual Accept, and Plan Only.
In Upcoming posts in this series we will see more detailed features of Terraform.