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.5 / 5 June 2024;5 days ago (2024-06-05) [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.

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">Puppet (software)</span> Open source configuration management software

Puppet is a software configuration management tool which includes its own declarative language to describe system configuration. It is being developed by Puppet Inc., founded by Luke Kanies in 2005. Its primary product, Puppet Enterprise, is a proprietary and closed-source version of its open-source Puppet software. They use Puppet's declarative language to manage stages of the IT infrastructure lifecycle, including the provisioning, patching, configuration, and management of operating system and application components in data centers and cloud infrastructures.

A Contributor License Agreement (CLA) defines the terms under which intellectual property has been contributed to a company/project, typically software under an open source license.

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

<span class="mw-page-title-main">InoERP</span>

The inoERP enterprise management system is an open-source Go and Flutter based Enterprise Resource Planning (ERP) application which can be used with MySQL, MariaDB or Oracle 12c databases. The objective of inoERP is to provide a dynamic pull based system where the demand /supply changes frequently and traditional planning systems are unable to provide a good inventory turn.

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.

<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 (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 10 June 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.