What is the Terraform and Why Should We Use it?
- Logan Seo
- Nov 25, 2021
- 3 min read
Happy Thanksgiving everyone! Since I couldn't celebrate the holiday due to my sickness, I decided to use the time to be productive and write about Terraform. Why? I'm learning how to use Terraform and studying to be certified. I wanted to share why it's important to learn infrastructure as code, aka IaC, as a solutions architect.

Infrastructure setup took a long time and involved numerous manual processes; however, with the development of technologies like as Terraform, Chef, Ansible, Puppet, and others, managing, configuring, and provisioning infrastructure has become straightforward. Let's look at a few strengths of IaC, also known as programmable or software-defined infrastructure.
Empowers the Dev and Ops teams by autonomously managing and provisioning the technological stack via software.
Helps DevOps since it is possible to automate anything. Here, you can approach everything as software, whether it's servers, databases, or networking components, and build software to manage it all, automate it, and distribute it on a continuous basis.
A few of its key features include...
Execution Plans: Terraform generates an execution plan describing what it will do and asks for your approval before making any infrastructure changes. This allows you to review changes before Terraform creates, updates, or destroys infrastructure.
Resource Graph: Terraform builds a resource graph and creates or modifies non-dependent resources in parallel. This allows Terraform to build resources as efficiently as possible and gives you greater insight into your infrastructure.
Change Automation: Terraform can apply complex changesets to your infrastructure with minimal human interaction. When you update configuration files, Terraform determines what changed and creates incremental execution plans that respect dependencies.
Now we learned a bit about IaC and terraform, let's talk a bit about Configuration management, Configuration Orchestration, and Provisioning.
Chef, Puppet, Ansible, and other configuration management technologies are designed to install and manage software on existing servers. It might be the installation of packages, the initiation of services, the placement of scripts or configuration files on the instance, and so on.
So, in essence, Configuration Management is a component of provisioning. "Provisioning" frequently indicates that it is the first time you do it. Configuration management is typically done on a regular basis.
Terraform, CloudFormation, and other configuration orchestration tools are intended to provision the servers themselves. It is the organization and coordination of automated actions that results in a consolidated process or workflow.
Diving deeper into Terraform
Terraform is a tool for creating, updating, and versioning infrastructure in a secure and efficient manner. Terraform is capable of managing both existing and popular service providers, as well as bespoke in-house solutions. Terraform is the world's first multi-cloud immutable infrastructure technology, created three years ago by HashiCorp and built in Go.
DevOps is a culture and set of behaviors aimed at unifying development processes. Terraform is a tool that has grown in popularity because to its simple syntax, which allows for easy modularity and works against multi-cloud. One critical reason people choose Terraform is the ability to control their infrastructure like code.
IaC is an important component for DevOps methods like version control, continuous integration, and continuous deployment. If you search "infrastructure-as-code" on Google, you will get a long list of tools, and anyone will be puzzled by the sheer number of possibilities. When compared to other similar programs, Terraform is one to consider because of its amazing features and exceptional reasons.
If you want to see Terraform's use cases, please visit the official Terraform webpage here.



Comments