Software:Terraform

From HandWiki
Short description: Source-available software for defining and provisioning a datacenter infrastructure
Terraform
Terraform Logo.svg
Original author(s)Mitchell Hashimoto et al.
Developer(s)HashiCorp
Initial release28 July 2014; 9 years ago (2014-07-28)
Stable release
1.5.5 / 9 August 2023; 6 months ago (2023-08-09)[1]
Written inGo
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]

Design

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.[4] Users can interact with Terraform providers by declaring resources[5] or by calling data sources.[6] 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.[7] The infrastructure as code can be written as modules, promoting reusability and maintainability.[8]

Terraform supports a number of cloud infrastructure providers such as Amazon Web Services, Cloudflare,[9] Microsoft Azure, IBM Cloud, Serverspace, Selectel[10] Google Cloud Platform,[11] DigitalOcean,[12] Oracle Cloud Infrastructure,Yandex.Cloud,[13] VMware vSphere, and OpenStack.[14][15][16][17][18]

HashiCorp maintains a Terraform Module Registry, launched in 2017.[19] In 2019, Terraform introduced the paid version called Terraform Enterprise for larger organizations.[20]

License change

Terraform was previously open-source and available under version 2.0 of the Mozilla Public License (MPL). HashiCorp on 10 August 2023 adopted the Business Source License v1.1 for many of their products, including Terraform.[21] The Business Source License, unlike the MPL, is not open-source[22] but is instead source-available. In response, a group of users published the OpenTF manifesto on 15 August 2023 asking HashiCorp to continue publishing Terraform under an open-source license.[23] The group subsequently announced on 25 August 2023 that due to the lack of any favorable response from HashiCorp they would then be forking Terraform as OpenTofu based on the last available MPL-licensed version of the software code (v1.5.5) and would be working to have the project be hosted under the Linux Foundation.[24]

References

  1. "Releases - hashicorp/terraform". https://github.com/hashicorp/terraform/releases. 
  2. "LICENSE". https://github.com/hashicorp/terraform/blob/main/LICENSE. 
  3. "Syntax - Configuration Language". https://www.terraform.io/docs/configuration/syntax.html. 
  4. "Providers". https://www.terraform.io/docs/providers/index.html. 
  5. "Resources". https://www.terraform.io/docs/configuration/resources.html. 
  6. "Data Sources". https://www.terraform.io/docs/configuration/data-sources.html. 
  7. "Configuration". https://www.terraform.io/docs/configuration/index.html. 
  8. "Modules". https://www.terraform.io/docs/modules/index.html. 
  9. "Cloudflare Provider". https://registry.terraform.io/providers/cloudflare/cloudflare/latest/docs. 
  10. "Selectel Provider" (in en). 2023-04-12. https://registry.terraform.io/providers/selectel/selectel/latest. 
  11. "Google Cloud Platform Provider for Terraform". https://www.terraform.io/docs/providers/google/index.html. 
  12. Starr-Bochicchio, Andrew (2018-10-22). "Introducing the DigitalOcean Terraform Provider" (in en). DigitalOcean Blog. https://blog.digitalocean.com/introducing-the-digitalocean-terraform-provider/. 
  13. "Yandex Cloud Provider" (in en). 2021-05-31. https://terraform-eap.website.yandexcloud.net/docs/providers/yandex/index.html. 
  14. "Terraform vs. Chef, Puppet, etc. - Terraform by HashiCorp" (in en). https://www.terraform.io/intro/vs/chef-puppet.html. 
  15. Bryant, Daniel (2017-03-26). "HashiCorp Terraform 0.9. Released with State Locking, State Environments, and Destroy Provisioners". https://www.infoq.com/news/2017/03/terraform-0.9. 
  16. Yevgeniy., Brikman (2017). Terraform Writing Infrastructure as Configuration.. O'Reilly Media. ISBN 9781491977057. OCLC 978667796. 
  17. Somwanshi, Sneha (2015-03-01). "Choosing the Right Tool to Provision AWS Infrastructure" (in en). ThoughtWorks Blog. https://www.thoughtworks.com/insights/blog/choosing-right-tool-provision-aws-infrastructure. 
  18. Turnbull, James (2016). The Terraform Book. ISBN 9780988820258. 
  19. Atkins, Martin (2017-11-16). "HashiCorp Terraform 0.11". https://www.hashicorp.com/blog/hashicorp-terraform-0-11?_ga=2.155237499.1577772221.1522078246-1987543793.1522078246. 
  20. HashiCorp. "HashiCorp Terraform - Provision & Manage any Infrastructure" (in en). https://www.hashicorp.com/products/terraform. 
  21. Dadgar, Armon. "HashiCorp adopts Business Source License". HashiCorp. https://www.hashicorp.com/blog/hashicorp-adopts-business-source-license. 
  22. "Business Source License 1.1". MariaDB. https://mariadb.com/bsl11/. 
  23. "The OpenTofu Manifesto" (in en). 2023-08-15. https://opentofu.org/manifesto/. 
  24. "OpenTofu Announces Fork of Terraform" (in en). 2023-08-25. https://opentofu.org/blog/opentofu-announces-fork-of-terraform. 

External links