Terraform IaC – Questions and Answers
In this page we try to answer very common questions about Terraform, for example: Is it an automation / orchestration tool? What are alternatives to Terraform? Do Devops use Terraform and more.
Is Terraform An Orchestration Tool?
Terraform by HashiCorp is an open-source Infrastructure as Code (IaC) tool that was developed as an infrastructure orchestrator. Orchestration addresses the needs to automate the lifecycle of environments. With infrastructure being codified, modifications of infrastructure are automated and Terraform is used to establish infrastructure across multi-cloud and on-prem data. It is also known for its use of a simple syntax, qualifying it as a prominent automation tool.
Terraform is a cloud-agnostic platform that uses single configuration across multiple cloud providers which simplifies orchestration. Terraform’s ability to automatically compute and restore systems to protect an environments’ ‘desired state’ when something is dysfunctional confirms it to be an orchestration tool. Other orchestration tools include AWS, Cloudify and Kubernetes.
Yet, when it comes to supporting components further up in the application stack, Terraform’s abilities are limited. Cloudify complements orchestration tools such as Terraform by adding application level orchestration, enabling orchestration throughout the entire lifecycle.
Is Terraform A DevOps Tool?
Terraform uses Infrastructure as Code which is an incredibly important element in a DevOps world. Its declarative approach to configuration enables DevOps to use HCL to describe the wanted “end-state” cloud or on-premises infrastructure. As an open-source software tool that supports all major cloud providers and allows for DevOps engineers to provision infrastructure amongst them, Terraform has demonstrated its practicality as a tool in the DevOps field.
Other DevOps tools include:
Can We Use Terraform For On-Premises Infrastructure
Terraform can be used for on-premises infrastructure. Whilst Terraform is known for being cloud-agnostic and supporting public clouds such as AWS, Azure, GCP, it can also be used for on-prem infrastructure including VMware vSphere and OpenStack. Terraform operators are able to move effortlessly between on-premise and cloud providers since they are not dependent on the provider itself.
What Is An Alternative To Terraform?
Prominent alternatives to Terraform include Ansible, Kubernetes, Packer and Pulumi.
Nonetheless, it is difficult to define them as explicit alternatives since they serve different purposes. Whereas Ansible is a configuration management tool for example, Terraform is an orchestrator. This makes it better suited for systems that need a constant and invariable state as opposed to environments that change.
Rather than acting as a substitute, Cloudify complements Terraform by integrating with existing Terraform modules and scripts. Cloudify can be used for both configuring blueprints that are TOSCA-compliant or managing blueprints and deployments. Moreover, Cloudify’s UI makes it easy to click and see actual configs and their dependency chains, unlike other orchestrators where you go through multiple files.