TrustRadius: an HG Insights company

IBM Terraform

Score8.7 out of 10

178 Reviews and Ratings

What is IBM Terraform?

IBM Terraform (formerly Hashicorp Terraform) is a cloud infrastructure automation tool used to create, change, and improve production infrastructure, and it allows infrastructure to be expressed as code. 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

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

Terraform for your IAC solution

Use Cases and Deployment Scope

Handling infrastructure might be hard if we do it manually. Complex infrastructure and configuring the infrastructure are the tricky parts. Often, we have missing information on what we have deployed or configured. This tool is the best way to assist with managing the infrastructure. We can see it clearly throughout the code and see the configuration. It's really saving us time.

Pros

  • Clear Infrastructure State
  • Easy to Manage
  • Clear Management of Infrastructure
  • Infrastructure as a Code tool

Cons

  • Improve the Terraform search to be able to capture some resources.
  • Easy to manage the stack or improve the UX

Return on Investment

  • Overall, we don't have any negative impact yet.
  • Overall, it's all good and great documentation.

Usability

Other Software Used

AWS CloudFormation

Terraform .. Backbone for Cloud Infrastructure and Codified Observability

Use Cases and Deployment Scope

Terraform has been an integral part of our team for automated infra provisioning. We use this together with Ansible to fully automate our infrastructure and monitoring stack.
It works seamlessly with major cloud providers as well as key AiOps and MLOps tools like Pagerduty and Instana. The entire lifecycle of provisioning, deprovisioning and automated alerting , gives us an end to end resilient and AI enabled workflow

Pros

  • Creating and destroying infrastructure resources using declarative code using HCL leaves no room for manual errors or knowledge gaps.
  • Provisioning multiple type of resources like Databases, Kubernetes clusters, Pagerduty monitoring can be done from a single code base and executed in one execution plan.
  • We have also used Terraform to implement monitoring as code, this eliminates the need to manually setup explicit alerts everytime a new resource is added or updated.

Cons

  • Currently we implement statefile versioning at the cloud storage used, it will be better if Terraform can maintain 2,3 version of statefile inherently.
  • Error handling can be improved and generic errors should be removed, as it takes a lot of time to troubleshoot around generic errors
  • AI assisted features are very much required, as AI is slowly becoming part of working culture in each area.

Return on Investment

  • It saves a lot of time which reduces toil by working on repeated issues and can be further invested in improving processes
  • It reduces the time spent on troubleshooting and resolving problems caused when manually handling multi cloud resources

Usability

Alternatives Considered

AWS CloudFormation

Other Software Used

Datadog

Best devops tool for cloud provisioning

Use Cases and Deployment Scope

As an IBM/Hashicorp partner, I use Terraform to consistently deploy highly opinionated enterprise cloud landing zone for my enterprise customers. It is also helpful to reduce drift and enforce compliance through Intrastructure as code. Through automation workflows, the time to deploy is reduced from days to hours and fits into the internal approval processes.

Pros

  • Curated providers for Cloud infrastructure
  • Good documentation and community articles are abundant
  • Integration with external tools

Cons

  • Better clarity of how IBM Terraform now stands versus community version
  • Documentation can be better with more examples
  • Sentinel needs better examples to get started

Return on Investment

  • Significant reduction in time to deploy
  • Very quick and non destructive drift analysis
  • No need to reinvent the weel. Simpy use curated providers

Usability

Alternatives Considered

Red Hat Ansible Automation Platform

Other Software Used

Red Hat Ansible Automation Platform, Red Hat OpenShift, Azure DevOps

Terraform - The Default IaC Choice.

Use Cases and Deployment Scope

Terraform is like the 1st thing that comes to your mind when talking about infra-as-code. It's not the first IaC technology, but it's definitely the 1st cloud-agnostic one. You choose Terraform because you are familiar with it, your engineers are familiar with it, and there is a large pool of DevOps candidates who are familiar with it. Needless to say, at our startup, we aim to have as much of our infrastructure as possible managed from a Terraform repo.

Pros

  • One familiar language with structured syntax to work with different cloud providers.
  • The code itself can be modularized for reusability & keeping things DRY.
  • The ability to import existing resources to start being managed by Terraform is just brilliant.

Cons

  • The language itself is cloud-agnostic, but you will likely have to rewrite a lot when switching cloud providers.
  • A good plan doesn't always mean a smooth apply.
  • There are instances where things could be DRYed up further, especially coming from a software engineering pov.

Return on Investment

  • The entire mission-critical infrastructure is managed as code, with access control & version control.
  • Very trivial to setup daily job to compare actual infra vs code to detect & alert drifts.
  • Familiar to build & maintain means lower cost of ownership.

Usability

Alternatives Considered

CDK and Red Hat Ansible Automation Platform

Other Software Used

GitHub, Anthropic Claude, Microsoft Visual Studio Code