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.

Read more details.

Media

Screenshot of Terraform State
Screenshot of Terraform Runs
Screenshot of Terraform Variables
Screenshot of Terraform Workspaces
Screenshot of Terraform Cost Estimation

1 / 5

Screenshot of Terraform State

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

Who Buys & Uses HashiCorp Terraform

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

HashiCorp Terraform - make IT boring again (in a good way...)

Use Cases and Deployment Scope

I use HashiCorp Terraform to create development and production assets in AWS, Digital Ocean, and Linode environments.

Pros

  • It has a rich set of plugins to with with many cloud providers
  • It tracks the state of your assets, if they exist or need to be built or changed
  • It's easy to collaborate with others by sharing the state file

Cons

  • In my opinion, simple tasks like rebooting a server are cumbersome
  • Some cloud providers may not offer full support for all features of HashiCorp Terraform

Most Important Features

  • Tracking the state of cloud assets
  • Automating the procurement of assets
  • Ability to collaborate with others to do those things

Return on Investment

  • Once the assets are defined, it basically eliminates the overhead of expanding existing resources
  • It reduces vendor-lock by making it easier to port resources from vendor to vendor

Other Software Used

pfSense, Portainer, TrueNAS

Terraform - Codify your infrastructure

Pros

  • Deploy infrastructure quickly & reliably
  • Repeatability thanks to use of modules
  • Dry runs thanks to the plan command

Cons

  • A new language to learn
  • Documentation, specifically examples are often complex and do not explain things very well
  • No rollback capability built in, must be done through version control

Return on Investment

  • Enabled the business to move infrastructure to AWS without concern of losing all infrastructure
  • Allows us to plan and review changes with speculative runs
  • Provides disaster recovery for AWS accounts being destroyed

Other Software Used

Gitlab, Splunk Enterprise, Splunk App for Infrastructure