Terraform (software)

Last updated

Terraform
Original author(s) Mitchell Hashimoto et al.
Developer(s) HashiCorp
Initial release28 July 2014;9 years ago (2014-07-28)
Stable release
1.8.4 / 22 May 2024;0 days ago (2024-05-22) [1]
Repository
Written in Go
Operating system Linux, FreeBSD, macOS, OpenBSD, Solaris, and Microsoft Windows
Available inEnglish
Type Infrastructure as code
License Business Source License v1.1 [2] (source-available)
Website www.terraform.io   OOjs UI icon edit-ltr-progressive.svg

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]

Contents

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 free software available under version 2.0 of the Mozilla Public License (MPL). On August 10, 2023, HashiCorp announced that all products produced by the company would be relicensed under the Business Source License (BSL), with HashiCorp prohibiting commercial use of the community edition by those who offer "competitive services". [21]

The last MPL-licensed version of Terraform was forked as "OpenTofu", which is backed by the Linux Foundation. In April 2024, HashiCorp sent a cease and desist notice to the OpenTofu project, stating that it had incorporated code from a BSL-licensed version of Terraform without permission and "incorrectly re-labeled HashiCorp's code to make it appear as if it was made available by HashiCorp originally under a different license." OpenTofu denied the allegation, stating that the code cited had originated from an MPL-licensed version of Terraform. [22] [23]

Related Research Articles

<span class="mw-page-title-main">OpenSSL</span> Open-source implementation of the SSL and TLS protocols

OpenSSL is a software library for applications that provide secure communications over computer networks against eavesdropping, and identify the party at the other end. It is widely used by Internet servers, including the majority of HTTPS websites.

The Mozilla Public License (MPL) is a free and open-source weak copyleft license for most Mozilla Foundation software such as Firefox and Thunderbird. The MPL license is developed and maintained by Mozilla, which seeks to balance the concerns of both open-source and proprietary developers; it is distinguished from others as a middle ground between the permissive software BSD-style licenses and the GNU General Public License. So under the terms of the MPL, it allows the integration of MPL-licensed code into proprietary codebases, but only on condition those components remain accessible.

Source-available software is software released through a source code distribution model that includes arrangements where the source can be viewed, and in some cases modified, but without necessarily meeting the criteria to be called open-source. The licenses associated with the offerings range from allowing code to be viewed for reference to allowing code to be modified and redistributed for both commercial and non-commercial purposes.

Rubinius is an alternative Ruby implementation created by Evan Phoenix. Based loosely on the Smalltalk-80 Blue Book design, Rubinius seeks to "provide a rich, high-performance environment for running Ruby code."


This is a comparison of notable free and open-source configuration management software, suitable for tasks like server configuration, orchestration and infrastructure as code typically performed by a system administrator.

<span class="mw-page-title-main">Chromium (web browser)</span> Open-source web browser project

Chromium is a free and open-source web browser project, primarily developed and maintained by Google. It is a widely-used codebase, providing the vast majority of code for Google Chrome and many other browsers, including Microsoft Edge, Samsung Internet, and Opera. The code is also used by several app frameworks.

<span class="mw-page-title-main">Open-core model</span> Business model monetizing commercial open-source software

The open-core model is a business model for the monetization of commercially produced open-source software. The open-core model primarily involves offering a "core" or feature-limited version of a software product as free and open-source software, while offering "commercial" versions or add-ons as proprietary software. The term was coined by Andrew Lampitt in 2008.

<span class="mw-page-title-main">Cloud Foundry</span> Open source, multi-cloud application platform as a service

Cloud Foundry is an open source, multi-cloud application platform as a service (PaaS) governed by the Cloud Foundry Foundation, a 501(c)(6) organization.

<span class="mw-page-title-main">Vagrant (software)</span> Software for portable virtual development environments

Vagrant is a source-available software product for building and maintaining portable virtual software development environments; e.g., for VirtualBox, KVM, Hyper-V, Docker containers, VMware, Parallels, and AWS. It tries to simplify the software configuration management of virtualization in order to increase development productivity. Vagrant is written in the Ruby language, but its ecosystem supports development in a few other languages.

In computing, a distributed file system (DFS) or network file system is any file system that allows access to files from multiple hosts sharing via a computer network. This makes it possible for multiple users on multiple machines to share files and storage resources.

HashiCorp, Inc. is an American software company with a freemium business model based in San Francisco, California. HashiCorp provides tools and products that enable developers, operators and security professionals to provision, secure, run and connect cloud-computing infrastructure. It was founded in 2012 by Mitchell Hashimoto and Armon Dadgar. The company name HashiCorp is a portmanteau of co-founder last name Hashimoto and Corporation.

Software relicensing is applied in open-source software development when software licenses of software modules are incompatible and are required to be compatible for a greater combined work. Licenses applied to software as copyrightable works, in source code as binary form, can contain contradictory clauses. These requirements can make it impossible to combine source code or content of several software works to create a new combined one.

Hugo is a static site generator written in Go. Steve Francia originally created Hugo as an open source project in 2013. Since v0.14 in 2015, Hugo has continued development under the lead of Bjørn Erik Pedersen with other contributors. Hugo is licensed under the Apache License 2.0.

Consul is a service networking platform developed by HashiCorp.

XDP is an eBPF-based high-performance data path used to send and receive network packets at high rates by bypassing most of the operating system networking stack. It is merged in the Linux kernel since version 4.8. This implementation is licensed under GPL. Large technology firms including Amazon, Google and Intel support its development. Microsoft released their free and open source implementation XDP for Windows in May 2022. It is licensed under MIT License.

<span class="mw-page-title-main">CatBoost</span> Open-source software library developed by Yandex

CatBoost is an open-source software library developed by Yandex. It provides a gradient boosting framework which among other features attempts to solve for Categorical features using a permutation driven alternative compared to the classical algorithm. It works on Linux, Windows, macOS, and is available in Python, R, and models built using catboost can be used for predictions in C++, Java, C#, Rust, Core ML, ONNX, and PMML. The source code is licensed under Apache License and available on GitHub.

The AWS Cloud Development Kit is an open-source software development framework developed by Amazon Web Services (AWS) for defining and provisioning cloud infrastructure resources using familiar programming languages. The AWS CDK aims to improve the experience of working with Infrastructure as Code by providing higher-level, reusable constructs that enable developers to create and manage AWS resources more efficiently and with less boilerplate code compared to traditional configuration files like AWS CloudFormation templates.

Pulumi Corporation is a software company based in Seattle, Washington. Pulumi develops a open-source infrastructure-as-code software.

The Business Source License (BUSL) is a trademarked software license which publishes source code but limits the right to use the software to certain classes of users. The BUSL is not regarded as an open-source license, but it is source-available license which also mandates an eventual transition to an open-source license. This characteristic has been described as a compromise between traditional proprietary licenses and open source.

References

  1. "Releases - hashicorp/terraform" . Retrieved 22 May 2024 via GitHub.
  2. "LICENSE" via GitHub.
  3. "Syntax - Configuration Language".
  4. "Providers".
  5. "Resources".
  6. "Data Sources".
  7. "Configuration".
  8. "Modules".
  9. "Cloudflare Provider" . Retrieved 23 November 2022.
  10. "Selectel Provider". 12 April 2023.
  11. "Google Cloud Platform Provider for Terraform" . Retrieved 5 February 2017.
  12. Starr-Bochicchio, Andrew (22 October 2018). "Introducing the DigitalOcean Terraform Provider". DigitalOcean Blog. Retrieved 17 December 2020.
  13. "Yandex Cloud Provider". 31 May 2021.
  14. "Terraform vs. Chef, Puppet, etc. - Terraform by HashiCorp". Terraform by HashiCorp. Retrieved 14 March 2018.
  15. Bryant, Daniel (26 March 2017). "HashiCorp Terraform 0.9. Released with State Locking, State Environments, and Destroy Provisioners". InfoQ. Retrieved 23 May 2017.
  16. Yevgeniy., Brikman (2017). Terraform Writing Infrastructure as Configuration. O'Reilly Media. ISBN   9781491977057. OCLC   978667796.
  17. Somwanshi, Sneha (1 March 2015). "Choosing the Right Tool to Provision AWS Infrastructure". ThoughtWorks Blog.
  18. Turnbull, James (2016). The Terraform Book. ISBN   9780988820258.
  19. Atkins, Martin (16 November 2017). "HashiCorp Terraform 0.11". HashiCorp Blog. Retrieved 17 December 2020.
  20. HashiCorp. "HashiCorp Terraform - Provision & Manage any Infrastructure". HashiCorp: Infrastructure enables innovation. Retrieved 15 April 2020.
  21. "HashiCorp Adopts Business Source License for All Products". InfoQ. Retrieved 20 October 2023.
  22. Vaughan-Nichols, Steven J. (11 April 2024). "OpenTofu Denies Hashicorp's Code-Stealing Accusations". DevOps.com. Retrieved 13 April 2024.
  23. Jackson, Joab (12 April 2024). "OpenTofu Project Denies HashiCorp's Allegations of Code Theft". The New Stack. Retrieved 13 April 2024.