TrustRadius: an HG Insights company

HashiCorp Terraform

Score8.5 out of 10

138 Reviews and Ratings

What is HashiCorp Terraform?

Terraform from HashiCorp is a cloud infrastructure automation tool that enables users to create, change, and improve production infrastructure, and it allows infrastructure to be expressed as code. It codifies APIs into declarative configuration files that can be shared amongst team members, treated as code, edited, reviewed, and versioned. It is available Open Source, and via Cloud and Self-Hosted editions.

Media

Terraform State
Terraform Runs
Terraform Variables
Terraform Workspaces
Terraform Cost Estimation

1 / 5

Top Performing Features

  • Infrastructure Automation

    Automate the setup of systems to achieve their desired state using configuration files.

    Category average: 9

  • Automated Provisioning

    Automatically and systematically deploy, configure, and manage IT infrastructure and resources.

    Category average: 8.8

  • Version Control

    Track changes made to configurations over time. Allowing for rollback to previous configurations if needed.

    Category average: 8.5

Areas for Improvement

  • Reporting & Logging

    Generate reports and logs to track changes made to configurations, aiding in troubleshooting and auditing.

    Category average: 7.7

  • Node Management

    Allows for the administration and oversight of individual devices or systems within a network.

    Category average: 8.2

  • Parallel Execution

    Allows for the simultaneous execution of configuration changes across multiple nodes or components.

    Category average: 8.5

Great for automating repetitive and similar tasks

Use Cases and Deployment Scope

There are two main problems the product solves for us. The first one is that it maintained our old EC2 image and the Matillion ETL instance it held; including backups, scheduled spin up times, snapshots etc. The second is to ingest raw data from our S3 data lake into Snowflake as raw data, and also to flatten it to tabular data.

Pros

  • Standardised templating - Great for repetitive tasks or processes. For example flattening JSON files into tables. We can make a Terraform template which can be duplicated and used for many different file schemas.
  • Dynamic/static variables - Getting information about the stage/instance Terraform is running in can help dynamically generate assets. E.g. making prod vs dev vs non-live assets based on the instance to Git branch.
  • Vast array of connectors - Terraform seems to connect with lots of different technologies, and are often maintained by the tech provider so you know it's going to be designed in the best way possible for that tech.

Cons

  • Steep learning curve - As with most IaaC tools, it can take time to learn the architecture of Terraform, nomenclatures, process of implementation etc.
  • Hanging state lock files - Potentially an implementation issue rather than an terraform issue, but if a state lock file isn't properly closed/unlocked then that instance of terraform can't be tested or ran again until the file becomes unlocked. E.g. stopping a Terraform PLAN pipeline half way through means the state lock file will hang/remain locked until it's explicitly told to be unlocked again.
  • Unhelpful errors - Potentially an issue with the connector provider, but some errors can be generic, or too much information is given meaning finding the root cause can be tricky.

Return on Investment

  • More developer time freed up - Not having to worry about our old EC2 machine means we can free up developer time. It takes care of the spin up schedules, the EC2 snapshots, and even certain requirements for the METL instance that resides in the machine
  • Reduced time to data ingestion - Now we have a template for data ingestion (JSON > SQL-ready tables) it means we can stage, copy, and flatten data from S3 to Snowflake very quickly. Depending on the complexity of the ingest request, it might only take a few days to implement.
  • Long PLAN times - The larger your estate, the longer it can take for Terraform to PLAN it's changes. In some cases developers would have to wait a few hours for Terraform to complete it's PLAN stage only to be told there's an error somewhere in the code. This might be more of an implementation issue, but just something to be aware of.

Usability

Alternatives Considered

dbt

Other Software Used

Postman, dbt, Snowflake, Matillion, AWS IAM Identity Center, Apache Airflow, Amazon QuickSight, Amazon S3 (Simple Storage Service), Looker, Google BigQuery

HashiCorp Terraform, the simple and versatile IAC

Use Cases and Deployment Scope

We integrated HashiCorp Terraform for AWS configuration, such as VPC setup, subnets, routing, security groups, endpoints, etc.

Pros

  • Automation
  • easy to deploy
  • simplicity in the coding language

Cons

  • Importing resources into the code could be more automated.

Return on Investment

  • The benefits are very positive as there is no cost to the company.
  • Start using HashiCorp Terraform you only need the executable, which is easy to download and configure the basics.

Usability

Alternatives Considered

AWS CloudFormation

Other Software Used

GitHub, 11:11 Solutions for AWS

Best Infrastructure as code tool in market

Use Cases and Deployment Scope

We use HashiCorp Terraform to deploy resources across various cloud providers as it supports maximum number of providers available in market. Best part of HashiCorp Terraform is terraform module as it provides feature of re usability of code. HashiCorp Terraform helps with Central code management for deployment of resources which is in line with organisational goal.

Pros

  • Deployment of resources in AWS
  • Deployment of resources in Azure
  • Deployment of resources in Okta

Cons

  • HashiCorp Terraform should come with inbuilt AI feature, for now they depend third party plugins which doesn’t look like secure way of interacting with AI.

Return on Investment

  • Time = money and with HashiCorp Terraform we are able to save significant time with automation and provisioning so that sums up the ROI.

Usability

Other Software Used

Okta, Splunk Cloud, Puppet Enterprise

Tough learning curve, but pays off

Use Cases and Deployment Scope

HashiCorp Terraform is an Infrastructure as Code (IaC) tool that allows us to describe resources that need to exist in our various cloud platforms, which provides a history and code review process.

Pros

  • Infrastructure as Code
  • 3rd Party Provider Support

Cons

  • Debugging

Return on Investment

  • Allowed us to quickly bring up new clusters in other regions

Usability

Alternatives Considered

AWS CloudFormation

Other Software Used

Mozilla Firefox, Amazon Elastic Kubernetes Service (EKS), Verkada

Hashicorp Terraform Review

Use Cases and Deployment Scope

We are using HashiCorp Terraform CLI extensively in our platform for creating and managing AWS and Kubernetes resources. HashiCorp Terraform helps us to create multiple resources quickly within minutes. We are using it to differentiate configurations for different environments thereby helping us to manage our resources easily. Modules have also helped us in creating dynamic reusable templates for resource creations.

Pros

  • AWS and GCP resource provisioning like VM, IAM roles and users, EKS clisters
  • State management for maintaining existing resources and have a single source of truth.
  • Reusable codebase for different configurations using HashiCorp Terraform modules

Cons

  • Infrastructure Testing using native framework or mock tests
  • Importing multiple resources at a time
  • Documentation for providers and corresponding APIs can be improved

Return on Investment

  • Greatly reduced the time to create networking resources from 3 days to 10 mins.
  • Cost optimization of around 40% by cleaning up unused resources automatically.

Alternatives Considered

Red Hat Ansible Automation Platform and AWS CloudFormation

Other Software Used

HashiCorp Vault