What is Terraform?

Terraform is an IaC tool used by DevOps teams to automate various infrastructure tasks. Or in simple words you can say that terraform is a tool for infrastructure provisioning. The provisioning of cloud resources is one of the main use cases of terraform. It's an open sources software tool created by HashiCorp.Note that IaC stands for Infrastructure as code which is managing and provisioning infrastructure through code instead of manual processes. Also, note that there are two ways to approach IaC which are declarative or imperative. A declarative approach defines the desired state of a system, including what resources you need and any properties that they need to have and an IaC tool will configure it for you . While an imperative approach instead defines specific commands needed to achieve the desired configuration and then those commands are needed to be executed in a specific order. Getting back to terraform it's a cloud-agnostic, open-source provisioning tool written in go language. Note the word cloud agnostic refers to the tools platforms or applications that are compatible with any cloud infrastructure and can be moved to and from different cloud environments without any operational issues. Also, it's important to know that terraform uses the declarative approach of IaC.