Jump to content

Terraform (software)

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Envacylig (talk | contribs) at 09:09, 4 August 2023 (Added a description of two core elements.). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Terraform
Original author(s)Mitchell Hashimoto et al.
Developer(s)HashiCorp
Initial release28 July 2014; 10 years ago (2014-07-28)
Stable release
1.5.1 / 21 June 2023; 23 months ago (2023-06-21)[1]
Repository
Written inGo
Operating systemLinux, FreeBSD, macOS, OpenBSD, Solaris, and Microsoft Windows
Available inEnglish
TypeInfrastructure as code
LicenseMozilla Public License v2.0[2]
Websitewww.terraform.io Edit this on Wikidata

Terraform is an open-source 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]

Core elements

Modules

Terraform modules are designed to simplify the creation of multiple resources by grouping them logically in a single and reusable offering.[21] [8] This minimizes development time and reduces redundancy, making it easier for users to create complex infrastructure components without writing large amounts of code. [22]

Providers

Terraform relies on providers to enable interaction with various APIs and services. These providers are configured in the Terraform configuration code, allowing access to Cloud-based offerings, such as AWS or GCP, and Software-as-a-Service offerings.[4] This allows developers using Terraform to integrate multiple services into their automation workflows.

See also

References

  1. ^ "Releases - hashicorp/terraform". Retrieved 2 May 2023 – via GitHub.
  2. ^ "LICENSE" – via GitHub.
  3. ^ "Syntax - Configuration Language".
  4. ^ a b "Providers".
  5. ^ "Resources".
  6. ^ "Data Sources".
  7. ^ "Configuration".
  8. ^ a b "Modules".
  9. ^ "Cloudflare Provider". Retrieved 2022-11-23.
  10. ^ "Selectel Provider". 2023-04-12.
  11. ^ "Google Cloud Platform Provider for Terraform". Retrieved 2017-02-05.
  12. ^ Starr-Bochicchio, Andrew (2018-10-22). "Introducing the DigitalOcean Terraform Provider". DigitalOcean Blog. Retrieved 2020-12-17.
  13. ^ "Yandex Cloud Provider". 2021-05-31.
  14. ^ "Terraform vs. Chef, Puppet, etc. - Terraform by HashiCorp". Terraform by HashiCorp. Retrieved 2018-03-14.
  15. ^ Bryant, Daniel (2017-03-26). "HashiCorp Terraform 0.9. Released with State Locking, State Environments, and Destroy Provisioners". InfoQ. Retrieved 2017-05-23.
  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". ThoughtWorks Blog.
  18. ^ Turnbull, James (2016). The Terraform Book. ISBN 9780988820258.
  19. ^ Atkins, Martin (2017-11-16). "HashiCorp Terraform 0.11". HashiCorp Blog. Retrieved 2020-12-17.
  20. ^ HashiCorp. "HashiCorp Terraform - Provision & Manage any Infrastructure". HashiCorp: Infrastructure enables innovation. Retrieved 2020-04-15.
  21. ^ "What Are Terraform Modules and How to Use Them - Tutorial". Spacelift. Retrieved 2023-08-04.
  22. ^ "Terraform Registry". registry.terraform.io. Retrieved 2023-08-04.