Terraform (software)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

Terraform
Original authorMitchell Hashimoto et al.
DeveloperHashiCorp
Initial release28 July 2014; 11 years ago (2014-07-28)
Stable release
v1.14.0 / 19 November 2025; 5 months ago (2025-11-19)[1]
Repository
  • {{URL|example.com|optional display text}}Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
Written inGo
Engine
    Lua error in Module:EditAtWikidata at line 29: attempt to index field 'wikibase' (a nil value).
    Operating systemLinux, FreeBSD, macOS, OpenBSD, Solaris, and Microsoft Windows
    Available inEnglish
    TypeInfrastructure as code
    LicenseBusiness Source License v1.1[2] (source-available)

    Terraform is an infrastructure-as-code software tool created by HashiCorp. Users define and provide data center infrastructure using a declarative configuration language known as HashiCorp Configuration Language (HCL), or optionally JSON.[3]

    History

    [edit | edit source]

    Terraform was launched by HashiCorp in 2014.[4] HashiCorp launched the Terraform Module Registry in 2017.[5] In 2019, the paid version Terraform Enterprise was introduced.[6]

    In September 2021, HashiCorp announced it would be temporarily pausing its review of community-submitted pull requests for Terraform, citing low staffing in its Terraform Core team.[7]

    On August 10, 2023, HashiCorp announced that all products produced by the company would be relicensed under the Business Source License (BUSL), with HashiCorp prohibiting commercial use of the community edition by those who offer "competitive services". Terraform was previously free software available under version 2.0 of the Mozilla Public License (MPL).[8][9] Joe Duffy, founder and CEO of Pulumi, criticized the announcement as "disingenuous" and said, "We tried many times to contribute upstream fixes to Terraform providers, but HashiCorp would never accept them. So we've had to maintain forks."[8]

    Features

    [edit | edit source]

    Terraform manages external resources (such as public cloud infrastructure, private cloud infrastructure, network appliances, software as a service, and platform as a service) with "providers". HashiCorp maintains an extensive list of official providers, and can also integrate with community-developed providers.[10] Users can interact with Terraform providers by declaring resources[11] or by calling data sources.[12] Rather than using imperative commands to provision resources, Terraform uses declarative configuration to describe the desired final state. Once a user invokes Terraform on a given resource, Terraform will perform CRUD actions on the user's behalf to accomplish the desired state.[13][10] The infrastructure as code can be written as modules, promoting reusability and maintainability.[14]

    Terraform supports a number of cloud infrastructure providers such as Amazon Web Services, Cloudflare,[15] Microsoft Azure, IBM Cloud, Serverspace, Selectel[16] Google Cloud Platform,[17] DigitalOcean,[18] Oracle Cloud Infrastructure, Yandex.Cloud,[19] VMware vSphere, and OpenStack.[20][21][22][23] It can be configured to make use of multiple cloud platforms.[4]

    Usage

    [edit | edit source]

    As of 2019, Terraform is used by companies such as Barclays, Capital One, and GM Cruise.[4]

    References

    [edit | edit source]
    1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    3. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    4. ^ a b c Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    5. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    6. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    7. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    8. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    9. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    10. ^ a b Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    11. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    12. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    13. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    14. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    15. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    16. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    17. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    18. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    19. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    20. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    21. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    22. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    23. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
    [edit | edit source]
    • Lua error in Module:Official_website at line 94: attempt to index field 'wikibase' (a nil value).
    • Terraform on GitHub