Infrastructure management benefits from declared creation and consistent procedures
What is our primary use case?
At Remessa, we use HashiCorp Terraform for everything involving infrastructure. We use HashiCorp Terraform to manage our repository on GitHub, to manage permissions, invitations, and teams. We use HashiCorp Terraform to manage our AWS infrastructure, DNS, policies on Cloudflare. We use HashiCorp Terraform to manage our alerts on PagerDuty, and we set up some things on Grafana with other services.
We use GitOps, so when we need to make changes such as upgrading our databases when a new Postgres version is released, we can see the version of each database that worked, allowing us to manage the process effectively. We can see in the state that our main database will be upgraded immediately. We can prevent breaks or issues because of the states, which allows us to schedule a window time for upgrades when needed.
What is most valuable?
HashiCorp Terraform operates on a declarative rather than imperative approach. This enables us to repeat processes and creation, which is the greatest advantage because we can test. If something doesn't work, we can do a rollback or change everything, and using Git, we have the history of every change. We can pick a change in the history tree to discuss and see what changed.
Our infrastructure has a repository with HashiCorp Terraform, and we have modules for that. The benefit is the concept of not repeating yourself, so we have an instance that we can use to create a new instance or cluster as quickly and correctly as possible. Everything works the same way. We don't have servers running on different systems such as Ubuntu, Red Hat, or Debian. Everything is uniform, so we don't need to think about different ways to create, manage, or access. The benefit of this uniformity is significant.
We utilize HashiCorp Terraform's state management capabilities.
What needs improvement?
Two aspects of HashiCorp Terraform could be improved: it should have better included tests and a more precise validator. I have faced issues where I needed to create something in a particular way and wanted to validate if everything was working properly, but the validator is not a strong point of HashiCorp Terraform.
Using HashiCorp Terraform Cloud is straightforward, but using other backends such as AWS S3 or Oracle Object Store is not as straightforward. Working with modules can be complex. However, when using HashiCorp Terraform's modules, you're typically a more advanced user, so this complexity isn't problematic.
For how long have I used the solution?
I have been working with HashiCorp Terraform for five years.
What do I think about the stability of the solution?
HashiCorp Terraform is extremely stable. I faced an issue once in five years where the way I declared the resource was correct, but I had problems with the binary. When I investigated the problem, the community had created an issue, and they released patches the next day. It has been totally stable with only one minor issue in five years.
What do I think about the scalability of the solution?
Given it's in the cloud, HashiCorp Terraform is very much scalable.
Which other solutions did I evaluate?
When HashiCorp Terraform changed their license version, I considered migrating to another similar tool. However, after understanding the changes, I decided to continue using it since it remained open source, with restrictions only for HashiCorp competitors. This was crucial for me as I only work with open-source solutions.
All my colleagues in the company shared the same concern, and we studied migrating from HashiCorp Terraform because of the license change. I have experience with alternatives such as Crossplane, which I studied once and wanted to test. There is also OpenTofu, a fork of HashiCorp Terraform, which I tested a few times.
I continue using HashiCorp Terraform because the HashiCorp Language (HCL) is excellent to work with. The syntax is clear, and we have numerous resources and examples. Usually, I can find examples of what I want to create from other users' implementations. The benefits are the language, syntax, agility, and velocity. HashiCorp Terraform works effectively even with complex infrastructures.
What other advice do I have?
To others considering HashiCorp Terraform, planning the infrastructure is key, including drawing out the idea. Using HashiCorp Terraform is straightforward, but migrating everything to modules or reworking on HashiCorp Terraform can be complicated and overwhelming. Think thoroughly before implementation, but don't hesitate to try it. All necessary information is available online, and the community is excellent.
On a scale of one to ten, I would rate HashiCorp Terraform as a solution nine 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)
Infrastructure management becomes seamless across multiple platforms through platform-agnostic capabilities
What is our primary use case?
We primarily use HashiCorp Terraform for our infrastructure deployments and cloud deployments. As a cloud architect and infra DevOps architect, we use HashiCorp Terraform to deploy our code, builds, and set up CI/CD pipelines. We create Terraform code and deploy it through Terraform Enterprise.
Regarding state management and orchestration capabilities of HashiCorp Terraform's impact on our workflows, we had two different environments. Initially, we used Jenkins for our CI/CD pipelines. Because we primarily work on Azure, we use remote state files for Azure deployments. Jenkins runs the HashiCorp Terraform code, and then the state file gets saved in our Azure storage as a remote location. Whenever we require that state file, we can retrieve it from there.
At a later stage, we enhanced the environment by setting up Terraform Enterprise in our environment. Currently, we have it within our environment. We set up Terraform Enterprise with HashiCorp's license. We create modules from HashiCorp Terraform using the Azure ARM provider, and then we set up those modules to apply Azure best practices. We provide this to the development team and other teams so they can reuse these modules and deploy secure codes. We also manage upgrades and the complete lifecycle of TFE, and we provide these services to our other teams.
What is most valuable?
One of the major benefits of HashiCorp Terraform is that it is platform-agnostic because it supports multiple cloud platforms. This is the biggest advantage.
The state file is one of the key features of HashiCorp Terraform that helps us because whenever there is a drift, it actually helps us identify those and reset the environment to the actual desired state.
From our environment, we have enabled the health monitoring and drift detection features in HashiCorp Terraform. These have been really useful for our environment. It helps us where we do not have HashiCorp Terraform code for the environments and get that created, and whenever there is a manual change, we get to know that.
What needs improvement?
One issue we have faced with HashiCorp Terraform is that sometimes the latest features that Microsoft suggests are added in their services take some time for HashiCorp Terraform to get enhanced. Sometimes there is that lag where we want some service or configuration which is not yet enabled in the HashiCorp Terraform module.
The initial setup process for HashiCorp Terraform was fine and possible without major challenges. However, currently, our organization helps set up governance and policies, including those related to the OS. There is a challenge where our organization is recommending a specific OS, which is currently not supported by HashiCorp Terraform.
For how long have I used the solution?
I have been working with HashiCorp Terraform for the last 10 years.
What was my experience with deployment of the solution?
Since it is based on Azure, HashiCorp Terraform is highly scalable.
From the maintenance point of view, it is not difficult to maintain HashiCorp Terraform because primarily all those resources or the infrastructure we set up in Azure, and we have the high availability setup. From that perspective, there haven't been major challenges.
What do I think about the stability of the solution?
In terms of the stability and reliability of HashiCorp Terraform, I have not had any performance issues with it. There was only one challenge when we installed one of the patches in HashiCorp Terraform, and we lost some database. That was one challenge, which was not a known issue. Later, they identified that there was one defect in that code. Apart from that, there have been no challenges.
What do I think about the scalability of the solution?
Since it is based on Azure, HashiCorp Terraform is highly scalable.
How are customer service and support?
Whenever we face any issues, we escalate it to HashiCorp technical support, and we get that support. We have regular interaction with them. I would rate the HashiCorp technical support an eight on a scale of one to ten, where ten is the best.
How would you rate customer service and support?
Which solution did I use previously and why did I switch?
From a configuration management perspective, we have used Jenkins and SCCM. My experience is limited to that, but some of my team members have used Ansible and others as well.
The major benefit of HashiCorp Terraform in comparison to Jenkins and SCCM is that these are only configuration management tools, but HashiCorp Terraform is a language where you can deploy those, and you provide those providers for different cloud environments. This gives it a tactical advantage. It deals with having a seat, or it always helps having a lesser technical landscape. We don't have to have additional tools or any other feature to develop that IaC code as well.
How was the initial setup?
When we did the POC and wanted to set up our production environment, it took us around three to four months. Now that we have set up that pipeline for the upgrades, it doesn't take us that long. For the production deployment, currently, it takes us around two weeks, excluding the testing, the stage deployment, development, and deployment.
What was our ROI?
We have not calculated the measurable benefits recently from using HashiCorp Terraform. On a high level, I would say it has improved our overall environment, speed, and excellence by approximately 20%.
What other advice do I have?
I can provide feedback regarding my experience working with HashiCorp Terraform. We haven't found any major challenges with the integration of HashiCorp Terraform. Frankly speaking, we haven't explored it completely, but for our requirements, it has been working fine.
I have not had any AI-driven projects or AI-driven tasks, nor have I utilized any AI within HashiCorp Terraform yet. I might not be the right person regarding the HashiCorp Terraform licensing part because I haven't been involved from the costing perspective.
Based on my experience, I would recommend HashiCorp Terraform to others, majorly because of the advantages of being platform-agnostic and all those other features. My overall rating for HashiCorp Terraform is eight out of ten.
Which deployment model are you using for this solution?
Microsoft Azure
If public cloud, private cloud, or hybrid cloud, which cloud provider do you use?
Microsoft Azure
Ensures consistency and security in deployments while adapting to resource availability
What is our primary use case?
I use it to deploy our Kubernetes clusters and Boomi as well. I can run Boomi by itself and not worry about Terraform and Kubernetes, and that's okay.
However, my use case requires me to run it in a cluster environment to scale up and scale down accordingly and manage costs. This is why I chose Kubernetes. Although it's possible to manually roll it out, I have security requirements to consider for a secure environment. To make it repeatable, I use Bicep or Terraform, as I'm mostly running in Azure.
I decided on Terraform to manage deployments across multiple environments. This includes a dev environment, a QA environment, and now a production environment. I test and then run Terraform to deploy these environments. In AI, it's more about setting up your environment.
I develop AI-based products and use Terraform to create a consistent and secure environment in Azure. Once deployed, I get a security score from Azure and receive recommendations for improvements. If a resource is noncompliant under SOC 2, type one or two, ISO, or HIPAA, I make the changes in Terraform, redeploy, and observe score improvements. Terraform aids in ensuring my deployments are correctly configured across environments.
What is most valuable?
The most valuable feature is predictability. When I need to put something, it is repeatable. I can deploy it in one environment, change the parameter, and it will work in another. If changes are needed, I track who did what because my Terraform scripts are version-controlled. This reduces guesswork and trial and error from the UI, replacing it with code, which enhances maintainability. In cloud environments, manual configurations can be forgotten or misunderstood if the original person leaves, but Terraform ensures documentation and consistent configurations.
What needs improvement?
The area for improvement is the speed at which resources become available. When a new resource is introduced in AWS or Azure, especially since I work mostly in Azure, how quickly can it be integrated into my Terraform scripts ensuring rapid availability of resources is crucial.
For how long have I used the solution?
I have used the solution for two to three years now.
What do I think about the stability of the solution?
The solution is stable because I can define which version I want to use. I am not at the mercy of the latest version. I can choose a stable version and decide whether to upgrade based on its performance.
What do I think about the scalability of the solution?
The solution scales well. Terraform runs only when our pipelines run and parallelizes resource creation/updates whenever possible.
How was the initial setup?
The setup is straightforward, but mastering it may take a day or two. Maintenance requires significant expertise. The challenge lies in understanding the environments being created, not Terraform itself.
What other advice do I have?
I am using the free version. The paid version is necessary when you run it and manage it in the environment, however, I only use Terraform runtimes. The documentation is excellent, and understanding how to read it is crucial.
Once I understand the different concepts of Terraform, it becomes straightforward, allowing for further capabilities. A major challenge was applying Terraform to existing resources, yet now the new import method is much improved.
My product rating is 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?
Microsoft Azure
Terraform benefits
What do you like best about the product?
The easy way to set up and help to deploy several resources reducing the errors
What do you dislike about the product?
Lack of training access. Will like to have better support.
What problems is the product solving and how is that benefiting you?
Errors to create several server , vms on the cloud on premise. Pre set up with a terraform file helps to avoid this .
Useful to provision cloud resources on Azure, AWS, and GCP platforms
What is our primary use case?
I use the solution to provision cloud resources on Azure, AWS, and GCP platforms.
What is most valuable?
What I like best is how easy the tool is to use. The HashiCorp Terraform language syntax is simple to learn. The Terraform.io registry feature is very useful - we can refer to our code and use pre-created modules posted there.
What needs improvement?
One area for improvement is real-time syncing with the actual infrastructure. Currently, you have to run CLI commands to sync the state file.
For how long have I used the solution?
I have been using the product for two years.
What do I think about the stability of the solution?
I rate the tool an eight out of ten. Sometimes, it can break down when handling too many resource creations at once due to dependency issues.
How are customer service and support?
I've contacted the support team a few times when getting errors.
How would you rate customer service and support?
How was the initial setup?
The initial setup and deployment are also easy, especially when using the tool's code to deploy to cloud platforms.
What was our ROI?
The tool is worth the money.
What other advice do I have?
While it's easy to learn, you need experience with the HashiCorp Terraform language syntax to use it. I rate the overall solution an eight out of ten.
A configuration management solution to use CI/CD tools and has high customizations
What is our primary use case?
It is a useful configuration management solution. DevOps practices are a main tool for infrastructure as a code.
What is most valuable?
Cross-platform and many third-party providers could work with another product to manage via Terraform. It's easy to create a deployment solution. You can use various CI/CD tools, such as GitHub Actions or GitLab CI. Configuring these tools is straightforward and highly customizable.
What needs improvement?
They perform better with their commercial product, Terraform Cloud. Everything in the free product is already available in a comparable solution.
For how long have I used the solution?
I have been using HashiCorp Terraform for over five years.
What do I think about the stability of the solution?
The solution is stable.
I rate the solution’s stability a nine out of ten.
What do I think about the scalability of the solution?
I rate the solution’s scalability a seven out of ten.
How are customer service and support?
Some responses are very long, and some needed features take a lot of time.
How would you rate customer service and support?
Which solution did I use previously and why did I switch?
How was the initial setup?
It takes around 30 minutes to deploy completely.
I rate the initial setup an eight out of ten, where one is difficult, and ten is easy.
What was our ROI?
It is less time-consuming.
What's my experience with pricing, setup cost, and licensing?
We use the free tier of the solution.
What other advice do I have?
I recommend the solution because it's easier to write the code and manage.
Overall, I rate the solution an eight to nine out of ten.
Which deployment model are you using for this solution?
Public Cloud
Has extensive integrations across various platforms
What is our primary use case?
We use HashiCorp Terraform for Infrastructure as Code. It automates the deployment of infrastructure within the Azure platform. Terraform can manage almost all aspects of infrastructure provisioning. If there are tasks that Terraform cannot perform directly, you can use the Azure CLI or other tools and call them from within Terraform scripts.
How has it helped my organization?
Terraform has extensive integrations across various platforms. It includes modules that enhance functionality and support for secure practices, such as Terraform Sentinel, which offers code analysis capabilities. Security logging and backend security are crucial, particularly regarding protecting sensitive information stored in the backend. Ensuring private endpoint usage is pivotal to safeguarding against potential vulnerabilities.
What is most valuable?
Terraform's strength lies in its modularity and the ability to use variables. You can organize your code within local and remote repositories, making it highly modular. This modularity allows you to call specific components as needed. Additionally, Terraform can toggle certain functionalities on or off through feature flags, a unique and powerful feature.
What needs improvement?
Terraform should monitor the backend storage more closely. You can handle it within Azure, but HashiCorp should release a dedicated tool to protect those secrets and ensure they're fully encrypted but this functionality is on its way for Terraform. They do have functionality that encrypts secrets and rotates which is great just like what Microsoft have and should be used in the wider community to safeguard public cloud systems
For how long have I used the solution?
I have been using HashiCorp Terraform for five years.
What do I think about the stability of the solution?
The product is quite stable. You may not notice the updates, but you do see frequent changes in revisions because they've stabilized the platform. They've also introduced significant new versions and providers that work hand in hand with it. I don't encounter many errors that I can't fix straightforwardly. As an engineer, you receive error messages if you misconfigure things, and it informs you about that.
I rate the solution’s stability an eight out of ten.
What do I think about the scalability of the solution?
The solution can scale to any size. It is suitable for SMEs.
I rate the solution’s scalability an eight out of ten.
Which solution did I use previously and why did I switch?
Arm templates where difficult to managed initially and took a while to manage in nested calls and nested templates
How was the initial setup?
The integration is straightforward. Simply download the binary, test it accordingly, and authenticate via Azure CLI. I've used the standard binary because it's free and widely adopted for technical infrastructure as code.
The initial setup is very straightforward. I set up a Python environment, brought in Terraform, and utilized it with YAML. Everything has to be securely done. You have to set up some pieces on the backend. It's straightforward to deploy: get the binary, set it up on the build agent, and configure the settings the way you need.
What about the implementation team?
Inhouse Initially but I have learnt form other teams and vendors as all teams structure their code differently with best practices
What's my experience with pricing, setup cost, and licensing?
We are using the free version of the solution.
Which other solutions did I evaluate?
Arm Templates and PowerShell Azure initially Pulumi (early days)
What other advice do I have?
I've been working with HashiCorp Terraform recently and have deployed environments with it.OpenAI has released GPT Terraform, which Microsoft is heavily investing in. Generic modules are available for deployment. Azure AI Portal and AI Studio are useful tools for creating models. It's straightforward to perform service training and update models for input-output data.
HashiCorp Terraform has made handling modules and variables more secure. They've integrated key vaults to ensure secrets and backend storage are protected. Accessing the backend storage could potentially leak sensitive information if not properly encrypted.
I'm using GitHub Actions and Azure DevOps. Additionally, I'm exploring an older system within the team that will be set up to support.
If the setup is built on old infrastructure, the backend of Terraform works and stores. Vagrant works differently where it doesn't need to check with the infrastructure to see what's there or updated. You get an API call for deployment.
Overall, I rate the solution as 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?
Microsoft Azure
Has an easy setup phase and offers an open-source version to users
What is our primary use case?
I use the solution in my company to create services over cloud platforms. I have used HashiCorp Terraform for GCP, Azure, and AWS to create resources. With HashiCorp Terraform, it is easy to manage resources in a single file.
What is most valuable?
The most valuable feature of the solution stems from the modules it offers. One can find Terraform modules via Google.
What needs improvement?
The versions of Terraform providers are an area of concern where improvements are required. If a person wants to use the modules created by someone else a few years ago, then there is a need to change all the resources or use the version of the product in which the modules were created. The modules are suitable only for the particular provider version on which they were created. The product should be made more dynamic in nature.
For how long have I used the solution?
I have been using HashiCorp Terraform for five years. I am a customer of the product.
What do I think about the stability of the solution?
It is a stable solution. Stability-wise, I rate the solution a nine out of ten.
What do I think about the scalability of the solution?
Scalability-wise, I rate the solution a nine out of ten.
Which solution did I use previously and why did I switch?
I have experience with AWS CloudFormation.
How was the initial setup?
The product's initial setup phase was easy.
The solution is deployed on the cloud or an on-premises model.
The solution can be deployed in five people if the person is an expert in the use of searching for information on Google.
What's my experience with pricing, setup cost, and licensing?
It is an open-source product.
What other advice do I have?
A scenario where the product improved our company's deployment process stems from an incident where I was working for one of our organization's clients where we had to set up a complete application offering for them. There were no disaster recovery options available due to cost-related issues. Whenever there is any disaster, my company pops up a particular DR environment, after which the application can go live from such an environment. My company lost all the resources due to the lack of a DR environment. Using HashiCorp Terraform, my company created state files in which we changed the reasons and created a complete infrastructure in a single go. With the help of HashiCorp Terraform, it took my company only 13 or 14 minutes to ensure that the application went live from our end.
The product's state file management feature greatly enhances our company's infrastructure. In our company, it is great that the tool allows us to manage the state file over the cloud or any bucket offered under Azure or Amazon S3's services, and the fact that we can directly fetch the data with the ID from the state file, making it an area that becomes easy to manage for users. For reusability, it is easy.
I recommend the product to those who plan to use it. Whenever people want to create or publish a module, we need to specify the version for HashiCorp Terraform and providers. Whenever someone wants to use a modular after a few years since it was created, such a person will be able to easily understand the version of HashiCorp Terraform to be deployed since searching for the version can be time-consuming.
I rate the overall tool a nine out of ten.
Which deployment model are you using for this solution?
On-premises
Offers flexibility, clear documentation, and the ability to handle diverse use cases
What is our primary use case?
What is most valuable?
The most valuable features of Terraform are leveraging public modules for EKS, KMS, and ECR. This allows us to set up infrastructure efficiently by utilizing pre-built configurations. We can manage EKS either through the EKS Manager group or directly with specific variables. This flexibility is crucial as it doesn't require building privileges.
What needs improvement?
Some areas where Terraform could improve would be challenges in managing sensitive information, especially when dealing with secret files or credentials. There have been issues related to storage and maintenance of these files, particularly when using AWS. Simplifying the process of handling secrets and improving the overall management of sensitive data could enhance Terraform's usability. One suggestion for Terraform improvement could be enhanced remote functionality. It would be beneficial if, for example, I could remotely check the status and perform tasks directly on AWS without needing a full analysis of all tasks locally.
For how long have I used the solution?
I have been working with Terraform for two years.
What do I think about the stability of the solution?
I would rate the stability of Terraform as a seven out of ten. While generally stable, there is room for improvement to minimize challenges and provide a smoother experience for users.
What do I think about the scalability of the solution?
Terraform is highly scalable. I would rate the scalability as a nine out of ten. Ten people use it at our company.
How was the initial setup?
The initial setup was very simple and quick. It takes about two minutes to install everything.
Which other solutions did I evaluate?
When comparing Terraform with other infrastructure automation tools, I often consider AWS CloudFormation. However, I prefer Terraform for its versatility and ease of use. The abundance of modules, well-documented features, and direct integration with AWS makes it my go-to choice. Its flexibility, clear documentation, and ability to handle diverse use cases, from managing directories on GitHub to updating Linux machines, contribute to its efficiency and simplicity.
What other advice do I have?
Overall, I would rate Terraform as an eight out of ten.
Which deployment model are you using for this solution?
Public Cloud
Very helpfull for creating the complete environment
What do you like best about the product?
Easily writeable and suitable for multiple environments
What do you dislike about the product?
At a time only one person can work in the same environment.
What problems is the product solving and how is that benefiting you?
it is very useful for creating the complete environment in single click.