Overview
What is HashiCorp Terraform?
Terraform from HashiCorp is a cloud infrastructure automation tool that enables users to create, change, and improve production infrastructure, and it allows infrastructure to be expressed as code. It codifies APIs into declarative configuration files that can be shared amongst…
HashiCorp Terraform - make IT boring again (in a good way...)
Terraform - Codify your infrastructure
The main reason for using Terraform is to allow us to reliably …
The de facto tool for provisioning infrastructure today
Cloud Engineer review of Terraform
Terraform - Best Cloud-agnostic Infrastructure Provisioning Tool.
Terraform Review
Really good tool for Infrastructure
Terraform for Automation
Terraform Review
Terraform Review
Terraform is the Perfect Tool for Building Infrastructure as Code
Infrastructure as code, finally!
Infrastructure Configured
A great automation tool for everyone
Makes your environment more reliable and easily replicable.
Pricing
Open Source
$0
Team & Governance
$20/user
Enterprise
Contact sales team
Entry-level set up fee?
- No setup fee
Offerings
- Free Trial
- Free/Freemium Version
- Premium Consulting/Integration Services
Product Demos
Infrastructure Pipelines with Terraform Cloud
Product Details
- About
- Competitors
- Tech Details
- FAQs
What is HashiCorp Terraform?
Terraform creates and manages resources on cloud platforms and other services through their application programming interfaces (APIs). Providers enable Terraform to work with virtually any platform or service with an accessible API.
HashiCorp Terraform Features
- Supported: Manage any Infrastructure
- Supported: Track your infrastructure
- Supported: Automate changes
- Supported: Standardize configurations
HashiCorp Terraform Screenshots
HashiCorp Terraform Competitors
HashiCorp Terraform Technical Details
Deployment Types | Software as a Service (SaaS), Cloud, or Web-Based |
---|---|
Operating Systems | Unspecified |
Mobile Application | No |
Frequently Asked Questions
Comparisons
Compare with
Reviews and Ratings
(128)Community Insights
- Pros
- Cons
- Recommendations
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.
Complex Documentation: Many users have found the documentation for the new language to be complex and lacking clear explanations, making it difficult for them to understand and use Terraform effectively. They express frustration with the lack of concise and intuitive explanations in the documentation, which hinders their ability to grasp key concepts.
Challenging Rollback Operations: Users have expressed difficulty in performing rollback operations as it must be done through version control. This process is seen as cumbersome and unintuitive, requiring extra steps that could be simplified with a dedicated rollback feature within Terraform itself.
Unusual Language Design: The language used in Terraform is considered unusual by many users, which makes it challenging for new users to understand and navigate the codebase. Some users find it unconventional compared to other infrastructure-as-code tools, leading to confusion when reading or modifying existing code.
Users have provided several recommendations for Terraform based on their experiences with the tool for automating cloud infrastructure management.
First, users suggest taking the time to understand and implement Terraform modules properly. This recommendation emphasizes the importance of familiarizing oneself with the module system in order to effectively leverage the capabilities of Terraform.
Second, users recommend reading through the documentation and reaching out to Hashicorp for assistance when facing issues. By doing so, users believe that they can overcome any challenges they encounter and make the most of Terraform's features.
Lastly, some users advise considering other Infrastructure as Code (IaC) platforms, but acknowledge that Terraform is a great and flexible open-source option. This recommendation highlights the need for users to evaluate different options before making a final decision on their cloud infrastructure automation tool.
Attribute Ratings
Reviews
(1-8 of 8)- Terraform does a great job of making cloud resources available as code. Essentially, it provides building blocks for the resources available in the cloud.
- I use the open source version of Terraform and I appreciate the user experience at the command line. Using the switches available, the CLI lends itself to a flow of formatting and validating code before a plan is developed, reviewed, and applied.
- Managing the state of the resources created with code is tough but Terraform does a good job of this by providing several ways to manage state. My team uses the bucket approach but I have seen teams use object databases and shared files as well. Each approach comes with its pros and cons but at least there are options.
- During the plan phase, I appreciate that Terraform shows the changes that are about to be applied to resources that already exist. This gives engineers insight into the changes they're about to make, particularly if the changes are not what they expected.
- I like Terraforms "desired state" approach to IaC, but sometimes I wish the code was a bit more programmatic. Adding counts and "for_each" statements is nice for creating multiple instances of the same resources. But this approach can be difficult to understand for engineers that come from a programming background. A more expressive approach to looping and other coding styles would be nice.
- A rollback feature would be a welcome addition to Terraform. At the time I'm writing this, when Terraform encounters an error, it stops on the step where the error is encountered and any resources previously created are left in place. While this is desired in most cases, and option for rolling back those resources would provide functionality similar to other IaC tools.
- Regarding plan output, a minimized report would be appreciated. Currently I have wrappers around the "terraform plan" command that limit the output to key changes. It would be great if there were switches that built this into the tool.
- For long running resources, having a single source of truth for their desired configuration is handy, since that configuration can drift over time.
- For short running or experimental cases, Terraform code can be used to quickly spin up environments before spinning them down just as quickly.
- If a reference architecture is needed, Terraform code can be used to describe all the resources that make up a stack.
A great automation tool for everyone
- Deploy infrastructure as code quickly. It is easy to get the environment installed and develop quickly.
- The modular approach of terraform encourages collaboration and consistency. We can share and reuse functionality across our deployments.
- Terraform provides modelling of the relationships between constructs in it. This is accomplished using the terraform graph command.
- The errors generated by the tool in some cases are not detailed enough when debugging.
- Terraform state is key and if corrupted it can't be restored.
- Everything must be converted to a string before it can be compared in version 11.
Terraform for the win
- Repeatable deployments between environments.
- Changes to environments can be seen before making real changes.
- It integrates well with each of our providers.
- 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.
Terraform: a great infrastructure as a code tool
- Terraform is a premier IAAS tool.
- It provides modularization and planning features.
- It is platform and language agnostic.
- It is open source and thus has strong community support.
- Terraform is vulnerable when it comes to error handling.
- Often when a terraform job is terminated midway, it leads to an inconsistent state of the deployed resources which needs manual cleanup.
- Terraform is an open source tool and has a related learning curve.
Why I used Terraform
- Orchestration provision support
- State backend support like swift
- Debug support
- Local testing
- Terraform is a well contributed open source project but support is average
- Coverage of various tools is great where only important functionalities were covered like in Chef
- It provides the automation from various pieces but running the same from scripts/other external inputs would be great
- Interpolations are supported but not well enough
- Secret management is poor and needs support on special characters
Infrastructure as Code Done Right!
- Great implementation of Infrastructure as Code concept.
- Supports various cloud providers, including AWS, Azure and OpenStack
- Encourages good design practices
- Collaboration is made possible by using remote backend to store state files (such as S3)
- Product is still maturing and there are some design limitation
- Refactoring infrastructure code can sometimes become troublesome and unnecessarily require re-creating resources (such as when renaming resources)
- Collaboration requires proper training or could result in dangerous outcome, engineers may easily overwrite remote state file or step on each other's toes. Collaboration process needs some improvement.
Shape your (virtual) world with Terraform
- I find the HashiCorp Configuration Language (HCL) superior to raw JSON used by Cloud Formation.
- Being open-source is a plus not just for "philosophical" reasons, but it also provide rapid support when new products are announced from vendors like Amazon.
- The fact that it's free and open-source means that it's easy to start evaluating Terraform (and most of the other tools from HashiCorp) without being pressured by sales people.
- Until recently, there haven't been any books about Terraform. Although the online documentation for Terraform is pretty good, it's often nice to have a traditional book, especially when learning. Now, there are two books on the subject.
- Terraform is rapidly evolving. Part of that is the nature of the space - vendors are always coming up with new offerings and API. But, some days I wish the targets would stop moving for a bit.
Advantages of Terraform
- Easy to build cross cloud providers infrastructure
- Reusable stack resources by using remote state
- N/A