Terraform (software)

Last updated

Terraform
Original author(s) Mitchell Hashimoto et al.
Developer(s) HashiCorp
Initial release28 July 2014;10 years ago (2014-07-28)
Stable release
1.9.1 / 3 July 2024;3 months ago (2024-07-03) [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 (BUSL), 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 BUSL-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

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.

mysqlBind/unxsBind is a DNS management software system. It supports Internet Systems Consortium BIND Domain Name System (DNS) and is distributed as open source software under the GNU General Public License.

Progress Chef is a configuration management tool written in Ruby and Erlang. It uses a pure-Ruby, domain-specific language (DSL) for writing system configuration "recipes". Chef is used to streamline the task of configuring and maintaining a company's servers, and can integrate with cloud-based platforms such as Amazon EC2, Google Cloud Platform, Oracle Cloud, OpenStack, IBM Cloud, Microsoft Azure, and Rackspace to automatically provision and configure new machines. Chef contains solutions for both small and large scale systems.

<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.

Salt is a Python-based, open-source software for event-driven IT automation, remote task execution, and configuration management. Supporting the "infrastructure as code" approach to data center system and network deployment and management, configuration automation, SecOps orchestration, vulnerability remediation, and hybrid cloud control.

<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 from multiple hosts to files shared 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.

Infrastructure as code (IaC) is the process of managing and provisioning computer data center resources through machine-readable definition files, rather than physical hardware configuration or interactive configuration tools. The IT infrastructure managed by this process comprises both physical equipment, such as bare-metal servers, as well as virtual machines, and associated configuration resources. The definitions may be in a version control system, rather than maintaining the code through manual processes. The code in the definition files may use either scripts or declarative definitions, but IaC more often employs declarative approaches.

<span class="mw-page-title-main">Eclipse Che</span> Developer workspace server software

Eclipse Che is an open-source, Java-based developer workspace server and online IDE. It includes a multi-user remote development platform. The workspace server comes with a flexible RESTful webservice. It also contains a SDK for creating plug-ins for languages, frameworks or tools. Eclipse Che is an Eclipse Cloud Development (ECD) top-level project, allowing contributions from the user community.

Consul is a service networking platform developed by HashiCorp.

Teleport is an open-source tool for providing zero trust access to servers and cloud applications using SSH, Kubernetes and HTTPS. It can eliminate the need for VPNs by providing a single gateway to access computing infrastructure via SSH, Kubernetes clusters, and cloud applications via a built-in proxy.

<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.

The Business Source License is a software license which publishes source code but limits the right to use the software to certain classes of users. The BUSL is not an open-source license, but it is source-available license that 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 7 July 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. James Turnbull. 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.