Senior DevOps Engineer at a tech vendor with 10,001+ employees
Real User
Top 5Leaderboard
Has a very simple API and can be used across multiple platforms
Pros and Cons
  • "Can be used across multiple cloud providers and multiple platforms."
  • "Lacks flexibility in common programming languages."

What is our primary use case?

I use this solution for infrastructure for my projects that are deployed in Google Cloud. I work in EPA systems. 

How has it helped my organization?

The solution allows you to have infrastructure-like code which is basically what Terraform has been about. Terraform makes it easier to figure out the kind of problem that has occurred, why, and who was responsible.

What is most valuable?

Although using an older version, I've found the biggest advantage of Terraform is that it can be used across multiple cloud providers and multiple platforms and it has a simple API. 

What needs improvement?

The biggest disadvantage of Terraform is its lack of flexibility in common programming languages. It also lacks flexibility in creating some functions like complex expressions to declare random variables, and features that require any programming language. Those issues are because HashiCorp is trying to keep the API as simple as possible. I would like to see some idea of functional programming in Terraform. It would be great if you could process your data and push it back to the model. It would mean a huge improvement in flexibility. 

Buyer's Guide
HashiCorp Terraform
May 2024
Learn what your peers think about HashiCorp Terraform. Get advice and tips from experienced pros sharing their opinions. Updated: May 2024.
770,458 professionals have used our research since 2012.

For how long have I used the solution?

I've been using this solution for three years. 

What do I think about the stability of the solution?

The solution is stable and we haven't had any problems in that regard. 

What do I think about the scalability of the solution?

The solution is scalable and we are constantly working on increasing of size of our infrastructure.

How was the initial setup?

The initial setup is a little complex but not very difficult. Implementation time depends on the size of the deployment. Our deployment was carried out in-house. We need at least one person per 50 models of Terraform for implementation. 

What was our ROI?

We've had a return on our investment because it's decreased the overall ops overhead via the front team.

What's my experience with pricing, setup cost, and licensing?

I am not using a payable Terraform although I'm quite familiar with the price and don't consider it to be expensive. Licensing costs are mid-range. 

What other advice do I have?

I would suggest reading documentation and experimenting with the solution. 

I rate the solution 10 out of 10. 

Which deployment model are you using for this solution?

Public Cloud

If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?

Google
Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
Stephen Adeniyi - PeerSpot reviewer
Kubernetes Consultant, Cloud Architect at a computer software company with 51-200 employees
Real User
Top 5
It's easy to use and set up, but the error logging and documentation could be better
Pros and Cons
  • "With Terraform, you don't need to understand the console of your cloud providers. You only need to understand how Terraform works, and you manage your infrastructure tools in Terraform."
  • "The error logging could be better. Sometimes, when you try to set something on Terraform, it gives you an error, but you don't understand how the error has been logged."

What is our primary use case?

We have about 50 users.

What is most valuable?

With Terraform, you don't need to understand the console of your cloud providers. You only need to understand how Terraform works, and you manage your infrastructure tools in Terraform.

What needs improvement?

In Terraform, there's a file called main.tf, where everything starts. In the main.tf, you need to specify the provider you're using. For example, maybe you want to use GCP, but you don't want to work on GCP. That's where you will list everything you need. It's like a key for you to access GCP. 

Sometimes, it can be challenging to undo. Let's say I'm using the provider here, and you want to use it on your site over there. You have to delete the provider you are using before switching providers. It doesn't sync well. The providers don't sync well. And also the documentation sometimes, they need to work on the documentation of Terraform. They're not concise.

The error logging could be better. Sometimes, when you try to set something on Terraform, it gives you an error, but you don't understand how the error has been logged. 

For how long have I used the solution?

I started using Terraform two years ago.

What do I think about the stability of the solution?

Terraform is one of the most stable products HashiCorp provides

What do I think about the scalability of the solution?

Terraform is scalable.

How are customer service and support?

Terraform is an open-source product, so we rely on documentation. I rate the Terraform documentation five out of 10. It should provide more examples about the way you should write some resources or models.

How was the initial setup?

Setting up Terraform is straightforward. You only need to deploy the binary. I rate it 10 out of 10 for ease of setup. 

What other advice do I have?

I rate Terraform seven out of 10. There aren't many products that do what Terraform does. It's easy to use and set up.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
Buyer's Guide
HashiCorp Terraform
May 2024
Learn what your peers think about HashiCorp Terraform. Get advice and tips from experienced pros sharing their opinions. Updated: May 2024.
770,458 professionals have used our research since 2012.
Jonathan Pehau - PeerSpot reviewer
Infrastructure analyst specialized in cloud computing at IT2GO Solutions
Real User
Top 5Leaderboard
Effective error avoidance, beneficial change identification, and deploys well
Pros and Cons
  • "The state file is the most beneficial aspect of HashiCorp Terraform. It enables the retrieval and utilization of a previous state to build upon. This feature is particularly important since it allows for the identification of changes from the previous state, making the state file a critical component of the process."
  • "When a misconfiguration or drift occurs, fixing the issue can be difficult. For instance, if there is a change in API calls while a script is running, it can be challenging to make corrections. This may require additional review and modifications to the code. I recall an instance where an industry budget creation process was altered, and it took significant time to amend the code. In fact, I had to add five or six different script portions to resolve the issue."

What is our primary use case?

We are using HashiCorp Terraform to deploy infrastructure for our customers in Amazon AWS.

How has it helped my organization?

Our process has been made more efficient with the use of HashiCorp Terraform. This includes the ability to create deployments while also avoiding errors and misconfigurations. With this solution, we can ensure consistency in the deployment of all our customers.

What is most valuable?

The state file is the most beneficial aspect of HashiCorp Terraform. It enables the retrieval and utilization of a previous state to build upon. This feature is particularly important since it allows for the identification of changes from the previous state, making the state file a critical component of the process.

What needs improvement?

When a misconfiguration or drift occurs, fixing the issue can be difficult. For instance, if there is a change in API calls while a script is running, it can be challenging to make corrections. This may require additional review and modifications to the code. I recall an instance where an industry budget creation process was altered, and it took significant time to amend the code. In fact, I had to add five or six different script portions to resolve the issue.

In a future update, it would be beneficial for HashiCorp Terraform to include a code-writing feature. There is the availability of third-party solutions, it would be preferable to have the ability to write code, create a plan, and receive feedback on what will be implemented. It would be great if the generated code was easily readable and viewable, as this would be an exciting addition.

For how long have I used the solution?

I have been using HashiCorp Terraform for approximately two years.

What other advice do I have?

My advice to others is its crucial to handle key and access management properly because the most convenient method is to add your key to your computer's environment variables. However, this approach is not the most secure way to manage your keys. Therefore, exercise caution in this regard.

I rate HashiCorp Terraform a nine out of ten.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
Senior Information Technology System Analyst at YAUSH Technologies
Real User
Easy to deploy, stable, and scalable with good support and many useful features
Pros and Cons
  • "The state backend, automated describe functionality, modular structures, and variablization using templates are most valuable."
  • "The state locking functionality can be improved. In certain situations, we have to force-unlock the state, which sometimes does not work. When that happens, we have to manually go to the state backend and remove that particular state, which is kind of a cumbersome process. It should also have more functions, more expressions, and support for more products."

What is our primary use case?

We are using it for infrastructure as code automation. We are running its latest version.

What is most valuable?

The state backend, automated describe functionality, modular structures, and variablization using templates are most valuable.

What needs improvement?

The state locking functionality can be improved. In certain situations, we have to force-unlock the state, which sometimes does not work. When that happens, we have to manually go to the state backend and remove that particular state, which is kind of a cumbersome process.

It should also have more functions, more expressions, and support for more products.

For how long have I used the solution?

I have been using this solution for almost four years.

What do I think about the stability of the solution?

It has good stability.

What do I think about the scalability of the solution?

It is good in terms of scalability. We have almost 35 to 40 users. We definitely plan to increase its usage.

How are customer service and technical support?

We did interact with their technical support. It was easy to schedule a call with them. It was also easy to contact their sales team and the support team. It was definitely a good experience.

Which solution did I use previously and why did I switch?

We had AWS CloudFormation as well as Azure ARM templates.

How was the initial setup?

Its initial setup is quite good and simple. It didn't take more than one and a half hours.

What about the implementation team?

I did it myself. We have four people for its maintenance. We have one admin and three deployers.

What's my experience with pricing, setup cost, and licensing?

They have given it to us at a monthly cost, but it is on a yearly basis.

What other advice do I have?

I would advise others to understand the state backend and how Terraform works. They should also go through functions as well as expressions in the Terraform official documentation.

I would rate HashiCorp Terraform an eight out of ten.

Which deployment model are you using for this solution?

Public Cloud

If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?

Amazon Web Services (AWS)
Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
Cloud Automation Engineer at Shell
Real User
An impressive infrastructure tool but requires a talented team to operate
Pros and Cons
  • "The ARM template is very easy to work with, which is a big help to us."
  • "On a scale from one to ten, I would give this solution a rating of seven; strictly because I was uncomfortable using the ARM template earlier. After another six months, I am sure I will give it a rating of 10, but at this point in time in my experience, I say seven, but not because of the tool itself."

What is our primary use case?

We deliver the platform as a service to businesses. For example, one request for a particular subscription could be in the business domain or non-business domain, whatever it may be, based on the demand, we deliver the customized subscription to them. For each service, we have different constraints. What needs to be delivered in the VNet of Azure, and what needs to be done externally.

What is most valuable?

The ARM template is very easy to work with, which is a big help to us. At the end of the day, there are a lot of tools that we explore like FollowMe and other solutions, which come in handy.

What needs improvement?

I personally say it's already simplified. I don't see many areas for improvement because Terraform employs a lot of skilled engineers that put their time and energy into providing a fantastic enterprise-level tool like this. There is not much more to simplify. There are already quite notable features in Terraform and we've already been provided with updates and other features. In short, there are many things which are already in place, so I don't think that we need anything more from Terraform.

For how long have I used the solution?

I have been using this solution for over six months.

What do I think about the stability of the solution?

Personally, I haven't really experienced any significant instability issues with Terraform. Once or twice I've noticed log issues, but apart from that, I haven't really experienced any problems. Keep in mind, this is the first platform that we are building using Terraform, so we have yet to come across the version with the initial data. In the future, I may face heat and pressure when I'm doing that, but I am not really sure because I have not done the hands-on work of it.

How are customer service and technical support?

Technical support is offered by HashiCorp, but we can't call HashiCorp for technical support because we don't currently use the enterprise version. Our products are community-driven and the community support is great.

How was the initial setup?

Considering we started from scratch, the initial setup was pretty straightforward. We didn't have any challenges. We started our platform build from scratch using Terraform.

What about the implementation team?

For maintenance-related issues, we use GitHub to find the solution to any problems we encounter; we simply log an issue and follow-up with them.

What other advice do I have?

Provided your environment requires Terraform and/or you have skilled engineers who can perform the required maintenance, I would definitely recommend this solution. Terraform is not justified for use just anywhere; you need to have an experienced team to limit any issues. You need to have a certain level of training to consume the services in their DevOps Toolbox and then use them properly. I definitely support and recommend Terraform, but what you get out of it depends on the business environment as well as the team members' knowledge in Terraform.

On a scale from one to ten, I would give this solution a rating of seven; strictly because I was uncomfortable using the ARM template earlier. After another six months, I am sure I will give it a rating of 10, but at this point in time in my experience, I say seven, but not because of the tool itself.

Which deployment model are you using for this solution?

Public Cloud

If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?

Microsoft Azure
Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
PradeepEppalli - PeerSpot reviewer
Cloud & DevOps Architect at Accenture
Real User
Infrastructure as code tool that makes it easier to manage a multi-cloud environment
Pros and Cons
  • "This solution makes it easier to manage a multi-cloud environment and have your entire infrastructure as code."
  • "On occasion, I have noticed a number of bugs in this solution that have needed to be fixed."

What is our primary use case?

Terraform is the infrastructure as code solution used across our business. 

What is most valuable?

The way the modules are divided for infrastructure provisioning and are set up for reliability to offer plug and play functionality has been really useful. This solution makes it easier to manage a multi-cloud environment and have your entire infrastructure as code. 

What needs improvement?

On occasion, I have noticed a number of bugs in this solution that have needed to be fixed. 

In a future release, it would be great to have an easier way of troubleshooting. We'd like to have a dashboard where company management can get a full view of provisioning.

For how long have I used the solution?

I have used this solution for three years. 

What do I think about the scalability of the solution?

This is a scalable solution. 

How are customer service and support?

It would be great to have faster resolution of instances where there are bugs in the system. 

How would you rate customer service and support?

Neutral

How was the initial setup?

The initial setup is straightforward. 

What other advice do I have?

I would rate this solution an eight out of ten. 

Disclosure: My company has a business relationship with this vendor other than being a customer: Partner
PeerSpot user
DevOps Engineer at BioCatch
Consultant
Can work with different cloud providers and saves a lot of time and human errors
Pros and Cons
  • "We save a lot of time with this solution."
  • "It should have a more object-oriented approach like different coding languages."

What is our primary use case?

We use it to provision cloud infrastructure. We use it to provision all kinds of infrastructure from wherever we want, we Terraform to the cloud.

We provision new infrastructure, we update existing infrastructure with it, we manage our DNS records, and also deploy new applications on Kubernetes. That's the main use, but we use it for all of our infrastructures, so it has a lot of different use cases.

How has it helped my organization?

Before we used it, we were writing a lot of scripts to provision infrastructure and there weren't guidelines for anything on how to provision and how our environment will look. Now with Terraform, it's all templated and everyone in my team just uses modules that are templates, modules of Terraform, and all our environments look the same. It doesn't matter if it's dev, if it's QAs, if it's production, it looks the same. It just has different names and different types of machines. We want to pay less in the dev environments and QA but we want to have better performance in production. It's just the variable to change the type of machine that we want to use, but the template remains the same.

We save a lot of time with this solution. It also saves a lot of human errors and the whole team knows how to do the same thing.

What is most valuable?

The most valuable aspect of this solution is that it's agnostic. It can work with different cloud providers, which we may do in the future, so it benefits us. With not much change, I can deploy the same infrastructure to other cloud providers. Now we work with Azure but we can work with AWS or GCP and with minor changes we can deploy the same applications to other clouds. We can replicate the existing cases with minor changes and it's easily deployed.

What needs improvement?

It should have a more object-oriented approach like different coding languages.

What do I think about the stability of the solution?

It's really stable. We have no issues with it.

What do I think about the scalability of the solution?

There are around five or six DevOps engineers who use this solution in my company. It's used on a daily basis. We use it for maybe 20% of our infrastructure, but we intend to use it for 100% all with Terraform.

How are customer service and technical support?

I haven't needed to contact their technical support. 

Which solution did I use previously and why did I switch?

We switched to Terraform because we wanted to minimize time and minimize human errors. We wanted to have alignment between all of our environments and really just development is faster.

We went with it because I had a really good experience with it in previous jobs.

How was the initial setup?

The initial setup is straightforward. There are some things you need to understand to know if you want to make more complex templates but it's pretty straightforward. It's really flexible. 

Overall, the deployment takes around 15 minutes. 

What's my experience with pricing, setup cost, and licensing?

It's open-source so it's free. 

What other advice do I have?

My advice to someone considering this solution would be to work with the HashiCorp Best Practices of Terraform, work with Terraform modules, and write templates for everything. 

I would rate Terraform a nine out of ten. 

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
Senior Build And Release Engineer at a tech services company with 1,001-5,000 employees
Real User
Top 5
Simple to install, and understands the order in which specific infrastructure must be implemented
Pros and Cons
  • "The concept of infrastructure as code is quite intriguing. We have an infrastructure in our code and a state file where we can verify whether something is changed when it was changed, and who changed it. When we use Terraform, these kinds of things fascinate us."
  • "I would want to see more programmatic capabilities implemented, such as if, else, and simple to manage things in terms of how I can use some programming functions to assist us to achieve more. I would like to have programming language-relevant features, to have programming language be the primary way."

What is our primary use case?

We use HashiCorp Terraform to set up AWS infrastructure, and sometimes Cloudflare.

It is not exactly a tool for configuration, it is for setting up the development of the infrastructure.

What is most valuable?

The concept of infrastructure as code is quite intriguing.

We have an infrastructure in our code and a state file where we can verify whether something is changed when it was changed, and who changed it. When we use Terraform, these kinds of things fascinate us.

What needs improvement?

I often wonder why they don't create a UI. That is something I always consider. I realize CLI is useful, but I prefer to do things in this manner. Why are we opting for CLI? I want to make things easy. I understand that most don't agree with me, but that is what I would prefer.

I don't think that they will agree on this. I am looking for a drag-and-drop or anything that can just generate modules behind the scenes and allow people to quickly accomplish things. 

I am aware that it does not serve the purpose of Terraform, and that too, is an issue. 

We have a purpose for infrastructure as code, and when the code is gone, you are working on UI. Terraform is not a programming language, most things are straightforward; we cannot do. Terraform lacks these features.

I would say the programming language, perhaps using more of a programming language rather than this declarative language, is something I'd want to explore in the future.

I would want to see more programmatic capabilities implemented, such as if, else, and simple to manage things in terms of how I can use some programming functions to assist us to achieve more.

I would like to have programming language-relevant features, to have programming language be the primary way.

For how long have I used the solution?

I have been using HashiCorp Terraform for three years.

What do I think about the stability of the solution?

I don't think HashiCorp Terraform is particularly stable. I would rate it a three and a half out of five. However, we are always working on it and making improvements. They had a lot of problems in the past, but today most things are done correctly.

While there are new versions coming in, there are always issues that arise.

It is not about stability, but about version upgrades. They have newer versions and occasionally backward compatibility. It happened a long time ago but is not an issue anymore. I had a bad experience at the beginning, which is why I remember it.

Someone who is just starting, in my opinion, will encounter difficulties. That is why I believe the language should be changed to a programmed language that everyone can comprehend.

The previous version had several difficulties with the state file, including some backward compatibility and parameter changes, but they are now more stable.

What do I think about the scalability of the solution?

I have not encountered any issues with HashiCorp Terraform's scalability.

We are using Terraform to build up infrastructure in order to document our infrastructure more declaratively. That is what Terraform excels at. I never had any problems with scalability, either in terms of improvement or anything else. 

There are some glitches with Terraform servers. When we are initializing, we occasionally encounter an issue; in three years, this has happened to me twice.

We have 20 people in our organization who use this solution, if we add developers we have approximately 60 people.

Which solution did I use previously and why did I switch?

From inside the cloud services, I am working on EKS Kubernetes, ECS Elastic Containerized Services, and Elasticsearch, which is now known as OpenSearch. I am working on EKS, Kubernetes, ECS, Elastic Containerized Services, as well as Elastic Search, which is now known as Open Search, and Redis ElastiCache, which is a component of MSK Kafka.

These are the tools I am using. Jenkins is used for the CI process, as well as GitHub Action is used for the CI process. 

As previously mentioned for alerts, we use Opsgenie and Grafana for the dashboards and premises. 

Many third-party services, such as NGINX, are used in Kubernetes. We use Cube Metrics for these kinds of activities, such as metrics scraping.

I have worked with Ansible as well, however, if you asked me to compare the two, I would say Terraform is superior to Ansible. I am not going to get into specifics. 

Terraform, is self-explanatory. It knows how to run, if we want to build some infrastructure, it understands where to start, how to start, what the dependencies are, and so on. 

We must occasionally inform Terraform of some dependencies, which is fine. Terraform, on the other hand, already understands the sequence in which it must execute certain infrastructure to build up. Those are the advantages over Ansible.

The disadvantage of Terraform is that, once again, we must use functions to build up variables or something similar, but Terraform's dry notion is not very good.

When I say dry, I mean that you should not repeat the bad code. Other references are being used to handle this. That is something I would want to suggest.

How was the initial setup?

The initial setup is simple. It is not a difficult process to set up.

I would rate the initial setup a four out of five. it is easy.

When a new version is released, it is backward compatible. And I would say that is good in terms of Terraform maintainability. Normally, we don't have to make many changes, and backward compatibility is beneficial.

In terms of maintenance, it does not require a lot of attention.

What other advice do I have?

It's good, I would rate HashiCorp Terraform an eight out of ten.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
Buyer's Guide
Download our free HashiCorp Terraform Report and get advice and tips from experienced pros sharing their opinions.
Updated: May 2024
Product Categories
Configuration Management
Buyer's Guide
Download our free HashiCorp Terraform Report and get advice and tips from experienced pros sharing their opinions.