TrustRadius Insights for HashiCorp Terraform are summaries of user sentiment data from TrustRadius reviews and, when necessary, third party data sources.
Pros
Fast and Reliable Infrastructure Deployment: Users appreciate Terraform's ability to deploy infrastructure quickly and reliably. Several reviewers have mentioned that they were able to provision resources efficiently, saving them time and effort in the deployment process.
Modular Approach with Reusable Modules: The use of modules in Terraform is highly valued by users, as it enables repeatability and encourages code reuse. Many reviewers have stated that they find it easy to share and reuse functionality across deployments, promoting collaboration and consistency among teams.
Large Ecosystem of Modules for Various Providers: Users highly value the extensive ecosystem of modules available in Terraform for various providers. Numerous reviewers have stated that this allows them to easily access strong default configurations for many services, saving them time and effort in setting up their infrastructure.
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.
Likelihood to Recommend
One of the best IAC tool in market supporting wide variety of providers. Easy to understand code with really great documentations available across internet making its usage easy and feasible.
VU
Verified User
Consultant in Engineering (Financial Services company, 5001-10,000 employees)
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
Likelihood to Recommend
HashiCorp Terraform has a pretty difficult learning curve, but eventually the value is apparent once you get the grasp of it. We have lots of cloud resources, which are particularly well suited for an IaC platform. HashiCorp Terraform's excellent provider ecosystem allows us to implement large infrastructure changes with very few manual operations, and is critical to allowing us to bring up new environments quickly.
VU
Verified User
Engineer in Engineering (Computer Software company, 1001-5000 employees)
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
Likelihood to Recommend
Provisioning and managing cloud resources is great. State management as well as reusable modules help greatly creating resources quickly. onfiguration management like bootstraping a VM or running shell scripts commands can is quite tricky with HashiCorp Terraform.
VU
Verified User
Consultant in Engineering (Information Technology & Services company, 5001-10,000 employees)
We use Terraform to provision all our infrastructure in all major cloud providers (AWS,GCP,Azure), we have invested a lot to make our code repeatable and scalable as we need to support multiple accounts in each cloud provider.
Pros
Support all major cloud providers
good documentation
good support of providers
Cons
We need the tool to be easier to code logic similar like the programming languages we use
Creating a CICD pipeline is hard
having a single state file is a disadvantage, terraform runs slow if it's not running in the same network where the state file is
Likelihood to Recommend
Terraform is the de-factor tool to provision infrastructure in an automated way, there are plenty of documentation and examples of people using the tool. Terraform framework can be considered complicated to write efficient code, especially if you are doing some more complex use cases. Creating efficient CICD pipelines is quiet challenge , I believe Terraform future will be replaced by Kubernetes operators.
VU
Verified User
Manager in Engineering (Internet company, 1001-5000 employees)
Good tool that will help me to manage multiple Infra platforms from one tool for quick automation and provisions. I am currently using it for AWS, Azure, Kubernetes, Rancher, Gitlab, MySQL, SQL Server, and few more tools.
Pros
Automation
Internal dependency resolution
Management is easy
Cons
Create code while doing import.
More RBAC
Some hash to manage passwords in CLI
Likelihood to Recommend
I am using this tool for the last 3 years and quite satisfied with the tools with capabilities and it actually helps me to provision my services quite quickly and release them at the same speed.
We use Terraform to deploy our infrastructure into AWS at an enterprise level. We support more than 700 developers across different brands and businesses with a small team. That means we had to establish a baseline standard for how we work, and then provide a common language and the tooling teams at the edge necessary to meet the needs of the individual brands (but without the unnecessary overhead expenses and production logjams).
Pros
Terraform makes cloud state management much easier than natives tools supplied with the service providers.
If you opt for the business edition, you can get a private module registry. This allows for best practices modules to be distributed across the company and allows for more re-usability.
The providers do a fantastic job staying up to date on the latest changes from the Cloud providers features updates. This makes taking advantage of the new features launched not a problem.
The language itself is readable and has had upgrades recently to make it more powerful for repeatable patterns.
Cons
The errors generated by the plan and preview commands are pretty cryptic, it can be hard for newcomers to the scripting language to understand how to address problems.
Access controls around workspaces is limited which makes it harder to secure reduce the scope of teams ability.
Analytics around user usage, applies and plans would be helpful for managemenet.
Likelihood to Recommend
Terraform has a strong community and is well-known DSL in the DevOps space, finding talent that leverage Terraform has continued to grow. They are a good option for mid to larger organizations that want to manage their infrastructure with maturity.
If you are leveraging AWS and have a team already comfortable with their offerings like Cloud Formation, I would choose to stay or start in the AWS eco-system.
We in the software engineering department use Terraform management of AWS and Datadog. Terraform allows us to store and set up host configuration, load balancers, Datadog monitors all as code that can be checked into version control. Terraform neatly abstracts away the details of AWS and Datadog and exposes a simple API, so it makes it possible for every single team, even those without much infrastructure experience, to help maintain the infrastructure. It is also a key component in our deployment process.
Pros
Support/integration with many infrastructure providers including AWS, Google Cloud, Datadog, Gitlab, Heroku, SignalFX.
A neat thing about infrastructure as code is that it solves an age-old problem of infrastructure: knowing the configuration of everything about the network and services is as easy as reading a formatted config file.
Cons
Terraform's integration with different providers hasn't matured yet, so the API keeps changing or is buggy.
Also, because Terraform is relatively new, documentation/books/blogs are hard to come by, and it's hard to hire DevOps engineers who are familiar with it.
Likelihood to Recommend
Pretty much anytime your DevOps engineers are managing more than ten machines or when you want multiple teams not focused on DevOps to help own the infrastructure hosting their code. Popular opinion is that Terraform is not very secure, battle-tested, and leaking secrets happen easily on accident. So, Terraform is less ideal when you have to store lots of sensitive secrets that your company is legally required to guard lest it is the end of you. Think Fintech, health-tech.
VU
Verified User
Engineer in Engineering (Internet company, 201-500 employees)
Terraform is currently being used to provision our resources in the cloud. This is by far the best way to achieve full automation when migrating to the cloud and is great a working with AWS.
Pros
AWS Resource Provisioning: Terraform is great at provisioning resources within AWS. Sometimes, there are some tricky bits when it interacts with the AWS API, but those are typically API limitations with AWS and not reflective of Terraform's abilities.
State: Since using Terraform, I have not had any issue managing resource state using Terraform. It's a little tricky to set up remote state, but once implemented it's smooth sailing from then on in my experience.
Extensibility: Terraform has really been written as a gateway to bigger and better things. It's so easy to extend terraform with your own modules, to submit PRs with new functionality, and it integrates well with other tooling.
Cons
Upgrades: It's really hard to do major upgrades of terraform without breaking something. The upgrade from 11 to 12 has been pretty brutal.
Setting up remote state: Despite pretty good documentation, setting up remote state initially is pretty tricky and in my experience required a little of the "you have to run it this way once, then create this thing, then run it again" kind of workflows which are always a little painful
Likelihood to Recommend
Terraform is well suited for provisioning any kind of system in my opinion. You can use it for cloud resources, but you can also use it for on-prem stuff as well (though the latter may be a little more difficult).
VU
Verified User
Engineer in Engineering (Information Services company, 501-1000 employees)
Terraform is being used as infrastructure as code solution. We deploy it to all of our environments as part of the code that is deployed. This allows the developers to own the infrastructure, and changes can be made to our servers quickly and reproducibly. Since Terraform is an open source tool, we also get community support and don't need to maintain it ourselves.
Pros
Repeatable deployments between environments.
Changes to environments can be seen before making real changes.
It integrates well with each of our providers.
Cons
Terraform could be expanded to provide common programming functionality.
Sometimes the documentation isn't completely clear on what fields mean or do.
It would be nice to have rollback capability.
Likelihood to Recommend
Terraform is well suited to setting up infrastructure in different cloud providers. I have used it for AWS resources for several years, and really only run into minor snags. It is not an appropriate place to store sensitive values, but it can easily call out to system resources, like Node.JS or a Linux shell.
Terraform is being used by our DevOps team to manage mainly our AWS infrastructure as code. It enables us to collaborate, automate and share pieces of our cloud infrastructure amongst and across teams. Terraform enables us to maintain reproducible, shareable and version-controlled infrastructure and deployments as compared to the older methodology of owning and configuring machines by hand.
Pros
Ability to "plan" and "apply" configs. Plans show us what changes will take place - so it's like a no-op safe mode dry-run. Apply actually executes the changes.
Terraform has providers for most major infrastructure providers like AWS, VMWare, OpenStack
Ability to use the same code/configs to provision different environments - QA, staging and production
Ability to create modules and share them between services
Cons
Terraform uses it's own DSL called the Hashicorp Configuration Language which takes some getting used to.
Terraform state files store secrets in plain text which is a bad idea when you push it to version-control.
Multiple teammates working simultaneously on a single state file is a problem. It's easy to forget to push or pull the latest state. Also version control systems like Git don't have a way of locking a file.
Likelihood to Recommend
If you have environments that change a lot and you need ephemeral systems on the fly to test your code releases, Terraform is the tool for you. Maintaining different environments like staging and QA before releasing to production is also easy as you can use the same code and configs for all three. Terraform also makes it easy to destroy these environments when they become obsolete.