Infrastructure as Code (IaC) allows you to programmatically provision the infrastructure you need to run your software code or resources for your organisation. There are many tools considered as IaC tools. Hashicorp’s Terraform is one such Infrastructure as Code tool.
Terraform is an open-source DevOps tool that uses Hashicorp Configuration Language (HCL) to define and provision your infrastructure. It can be used with AWS, Azure, Google Cloud and your on-premises infrastructure.
What is Terraform used for?
One of the primary uses of Terraform is to provision resources within your data center, whether that is on-premises or in the cloud.
Terraform can help you provision resources through what is called a provider. A Terraform provider can be thought of like a plugin that wraps an existing API to create declarative Terraform syntax.
The providers are open-source and closely monitored by Hashicorp (the company behind Terraform). The providers receive regular updates.
Terraform is also popular and used by many engineers to perform multi-cloud deployments.
Terraform can be used to provision resources to a lot of different cloud providers, this means that engineers don’t have to learn multiple tools and language syntax. They can re-use their knowledge to help create templates to deploy to any cloud provider.
Another excellent use case for Terraform is the ability to create custom providers. As mentioned, a Terraform provider is a wrapper around an existing API. Engineers can develop providers for their company's use cases.
Any API that supports Create, Read, Update, Delete (CRUD) actions can be wrapped into a Terraform provider, giving Terraform much flexibility.
Is Terraform a tool or language?
Terraform is an open-source tool written in the Go programming language.
Do we need coding experience for Terraform?
Terraform is an easy tool to get started with. There is a lot of great getting-started guides. But ultimately, no, you do not need to be a coder or developer to use Terraform.
Terraform can be used by anyone within the IT industry.
Having a basic understanding of how code works and how to format it and troubleshoot can be advantageous but unnecessary. If you are using Visual Studio Code (VSCode) and the Terraform extension, it will help with syntax highlighting, IntelliSense, code navigation, and code formatting, which can be helpful even for the most experienced engineer.
How to install Terraform on Windows
To use Terraform, you do have to install it on your machine. I want to show you two ways of doing this.
The first is using the package manager, Chocolatey. If you aren’t already using Chocolatey, I encourage you to check it out and see how it can assist you with managing software on your machine.
To install Terraform using Chocolatey, you can open up a command line tool and type in:
choco install terraform -y
Alternatively, you can head to https://developer.hashicorp.com/terraform/downloads, select Windows as the operating system and download the relevant binary.
Once the file has been downloaded, it will be in a ZIP file format.
Extract this file to a directory of your choosing (for example, c:\terraform).
Next, navigate to Control Panel -> System -> Advanced System settings
Now select Environment Variables
Double-click on PATH
Click New and add in the path you extracted the Terraform application to
Click OK twice.
Launch a new command line prompt and type in “Terraform -version”
It should respond with the version you have just installed.
Terraform in 10 minutes
Check out my video where I give an overview of Terraform in 10 minutes.