
The multi-cloud, provider-agnostic model combined with the plan/apply workflow. What stands out most about Terraform (now under IBM after the HashiCorp acquisition closed in February 2025) is that it lets you describe infrastructure declaratively once and drive it consistently across AWS, Azure, Google Cloud, on-prem, IBM Cloud, SaaS services, and a huge range of other providers through the same workflow and language (HCL). You write the desired end state. Terraform builds a dependency graph, produces a clear plan of exactly what will be created, changed, or destroyed, and only then applies it. That preview-before-mutation step, plus solid state tracking, is still one of the cleanest ways to manage real infrastructure changes without surprises. The large ecosystem of official, partner, and community providers and modules amplifies this: you’re rarely starting from zero. It’s not perfect (state management has always required care, the BSL licensing shift and IBM ownership have prompted some community forks like OpenTofu, and it’s stronger at provisioning than ongoing configuration management), but the core idea of one consistent, reviewable, multi-provider IaC workflow remains its strongest feature. Review collected by and hosted on G2.com.
State management and the friction that comes with it at scale. Terraform’s state file is both its greatest strength and its biggest ongoing liability. It enables the excellent plan/apply workflow, but in real teams it frequently becomes a source of pain: locking conflicts, configuration drift from console or script changes, risk of sensitive values ending up in state (even when marked sensitive), occasional corruption, and long plan times once you have hundreds or thousands of resources. Remote backends and locking help, but they don’t eliminate the operational overhead. Other notable drawbacks: • Licensing and ownership uncertainty. The 2023 shift from MPL to the Business Source License (BSL) made Terraform source-available rather than fully open source, restricting competing commercial offerings. This prompted the OpenTofu fork and eroded some community trust. IBM’s acquisition (closed February 2025) added another layer—narrower free tiers for HCP Terraform, resource-based pricing, product discontinuations in the broader HashiCorp portfolio, and questions about long-term priorities. Many organizations still use it fine for internal infrastructure, but the change in incentives is real. • Learning curve and day-to-day friction. HCL is more readable than many alternatives, yet dynamic blocks, for_each/count nuances, module composition, and provider quirks create a non-trivial learning curve. Debugging large configurations can be slow, and error messages are often less helpful than they should be. Scaling cleanly across environments and teams usually requires significant discipline (or extra tooling) to avoid module sprawl and duplicated effort. • Limited native strengths outside pure provisioning. Terraform is excellent at declaring and applying infrastructure state, but it’s a weaker fit for ongoing configuration management or application deployment. Most mature setups pair it with something like Ansible (or other tools) rather than trying to force everything into Terraform. In short, the core model remains powerful, but the practical costs of state, the licensing shift, and the post-acquisition commercial direction are the parts that most often frustrate experienced users. Review collected by and hosted on G2.com.