Hashicorp Terraform: A Quick Introduction
Running your applications in a cloud environment can become quite complex. Especially if you want to manage the application components throughout their lifecycle. Another level of complexity comes into play when organizations decide to use multiple public cloud providers to host their applications. What do do here? Well, there are several options to address these issues. In this blog post I want to quickly introduce you to Terraform, a product from Hashicorp that becaome super popular in the Microsoft space in the last months.
So what it this thing? Terraform is an open source tool to manage your infrastructure and app components as code. The cool thing: it supports multiple providers that allow you to easily communicate with different cloud providers and platforms such as Microsoft Azure, AWS, Docker, Kubernetes and many more. If needed, you can even develop your very own provider for your own platform or product. Terraform is available in a free version that has lots of functionality to kickstart your experience. Once you grow this to a larger scale, you can go for to the Enterprise version that offers more flexibility and control.
No matter what version of Terraform you use, you can now start creating your configuration files (.tf files) that describe your infrastructure. By using the Hashicorp Configuration Language (HCL) you can quickly create easy-to-read files that exactly describes your application or infrastructure. Once you are done, just fire it against your environment and the platform will make sure it configures the environment appropriately.
Sounds like the Azure Resource Manager (ARM) and ARM templates? Bingo! Terraform of course talks to the Azure Resource Manager when it comes to Azure resources, but adds this additional layer to remove complexity. Remember ARM templates? These are JSON files to describe your components and are much more complex and not so easy to read. And they can of course only be used for Microsoft Azure whereas Terraform allows you to talk to other environments as well by using the same approach and the same configuration files. Cool, huh?
Call To Action
So, what's next?
Download Terraform > https://www.terraform.io/downloads.html
Read the Terraform docs > https://www.terraform.io/docs
Start playing with one cloud provider, then add more
Get in contact with us if you want to start or extend your Terraform journey > email@example.com
Enjoy your first steps with Terraform!