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