Terraform for the Non-Technical
Terraform is a tool that works behind the scenes to build many of the websites and applications that you already use today. But, what exactly is it? How does it work? How can I explain what it does to my non-technical boss?
Let’s start with a website. Everyone who has a smartphone or computer understands what a website is. You open a browser window, type in a web address, and you get a website that you can interact with. Most of us don’t give much thought to how the website actually works behind the scenes.
Take your bank’s website for example. There are dozens or even hundreds of computers networked together in various ways to keep that website up and running. All these machines and application processes support the website so you can check your bills or transfer money 24 hours a day, 7 days a week.
Each and every one of those machines that works together to power the bank website has to be built by someone. When you buy a new laptop, it comes with an operating system but you still have to install and configure all your favorite applications to get it working the way you like. Web servers on the internet are no different. The people who build and configure these servers are called systems administrators. A systems administrator might be in charge of a few hundred or even a few thousand individual machines. Automation tools can push this number even higher. In some shops, a single person might be in charge of 20,000 servers or more.
Where do all these computers live? They are stacked into large buildings called data centers. Imagine a warehouse outlet store, but instead of racks of food and consumer products, it’s all servers. From floor to ceiling, one server stacked upon another. Some of them are web servers, others might be network devices, and others are huge arrays of hard drives which provide storage for the web servers.
Data centers are really loud, due to all of the cooling fans running inside of all these machines. It’s not uncommon for a single data center to have ten thousand machines inside of it. Some companies run their own data centers, but nowadays you can also simply pay to use someone else’s data center. This is basically what cloud providers do.
Amazon, Microsoft, Google, and other providers offer what they call cloud computing. They have used their immense purchasing power and technology to build giant data centers and allow their customers to utilize the servers inside on demand. Instead of maintaining a costly building with a bunch of hardware, you simply rent your compute time and storage from one of these cloud providers. It’s incredibly fast and affordable to get started building websites and applications in the cloud.
When a system administrator needs to build a few hundred servers on one of these cloud providers, automation tools are a must. Imagine how long it took you to install a few pieces of software on your work or home computer. Now multiply that time by several hundred — can you see the problem? Systems administrators use automation like shell scripts and provisioning tools to build many servers quickly. Terraform is the world’s most popular provisioning tool.
Terraform is a tool for provisioning computer and network infrastructure. Terraform is Open Source Software (OSS) which means you can download and use it for free, or modify it to suit your own use cases. Terraform is popular among system administrators and developers because it makes the process of provisioning hundreds of servers and applications very easy.
The Terraform language, or Hashicorp Config Language (HCL), is a human-friendly, machine-readable language for describing infrastructure. You can think of it as ‘executable documentation’. Terraform code is easy to learn, and easy to read or troubleshoot. Even a non-technical user can pick up the basics in less than a few hours. The Terraform language works on all the major cloud providers, and with on-premise data center platforms like VMware or Openshift. In other words, you can use it to provision all your infrastructure everywhere. Terraform is a multi-cloud tool that can build on Azure, GCP, or AWS or VMware, all using the same language and framework.
Why should my organization use Terraform? Terraform provides the following benefits:
- Increased speed of provisioning
- Fewer errors and inconsistencies
- Reduced risk
- Ability to safely test changes
- Support for multiple cloud platforms
In a nutshell:
Terraform is a multi-cloud provisioning tool that can be used to build all of your network and application infrastructure no matter where it runs.
Want to learn more? Check out this introductory video by our CTO, Armon Dadgar: