Infrastructure as code: Difference between revisions

Content deleted Content added
GreenC bot (talk | contribs)
Rescued 1 archive link; Move 2 urls. Wayback Medic 2.5 per WP:URLREQ#Network World
m Removing link(s) Wikipedia:Articles for deletion/Otter (software) closed as delete (XFDcloser)
 
(15 intermediate revisions by 14 users not shown)
Line 1:
{{Short description|Data center management method}}
{{Short description|Process of managing and provisioning computer data centers through machine-readable definition files}}
{{multiple issues|
{{Advert|date=March 2018}}
{{Technical|date=November 2021}}
}}
'''Infrastructure as code''' ('''IaC''') is the process of managing and provisioning computer [[data center]] [[Resource|resources]] through machine-readable definition files, rather than physical [[Computer hardware|hardware]] configuration or interactive configuration tools.<ref name="AWS in Action, IaC" />
The [[IT infrastructure]] managed by this process comprises both physical equipment, such as [[bare-metal server]]s, as well as [[virtual machine]]s, and associated configuration resources.
The definitions may be in a [[Version Control System|version control system]], rather than maintaining the code through manual processes.
Line 56:
 
==Methods==
Infrastructure as Code (IaC) allows you to manage servers and their configurations using code. There are two methodsways ofto IaCsend these configurations to servers: the '[[push technology|push]]' and '[[pull technology|pull]]' methods. TheIn mainthe difference'push' ismethod, the mannersystem in whichcontrolling the serversconfiguration aredirectly toldsends howinstructions to bethe configuredserver. In the 'pull' method, the server toretrieves beits configuredown will pull its configurationinstructions from the controlling serversystem.<ref>{{cite Inweb the|last=Venezia push|first=Paul method,|date=21 theNovember controlling2013 server|title=Puppet pushesvs. theChef configurationvs. toAnsible the destination systemvs.<ref>{{cite webSalt | url=http://www.networkworld.com/article/2172097/virtualization/puppet-vs--chef-vs--ansible-vs--salt.html | title=Puppet vs. Chef vs. Ansible vs. Salt | last=Venezia | first=Paul | date=21 November 2013 | website=[[Network World]] | publisher=Network World | accessurl-datestatus=14 December 2015dead | archive-date=18 July 2018 | archive-url=https://web.archive.org/web/20180718030604/https://www.networkworld.com/article/2172097/virtualization/puppet-vs--chef-vs--ansible-vs--salt.html |archive-date=18 urlJuly 2018 |access-statusdate=dead14 December 2015 |website=[[Network World]] |publisher=Network World}}</ref>
 
==Tools==
Line 69:
|url=https://philsturgeon.uk/devops/2012/10/28/puppet-or-chef/
|title=Puppet or Chef?
| last= Sturgeon
|first= Phil
| date= 28 October 2012
|access-date=29 January 2016
}}</ref> Other vendors rely on adjacent communities and leverage other IaC frameworks such as [[PowerShell]] DSC.<ref name=powershell/> New vendors are emerging that are not content-driven, but model-driven with the intelligence in the product to deliver content. These visual, object-oriented systems work well for developers, but they are especially useful to production-oriented DevOps and operations constituents that value models versus scripting for content. As the field continues to develop and change, the community-based content will become ever more important to how IaC tools are used, unless they are model-driven and object-oriented.
|archive-date=1 February 2016
|archive-url=https://web.archive.org/web/20160201185444/https://philsturgeon.uk/devops/2012/10/28/puppet-or-chef/
|url-status=dead
}}</ref> Other vendors rely on adjacent communities and leverage other IaC frameworks such as [[PowerShell]] DSC.<ref name=powershell/> New vendors are emerging that are not content-driven, but model-driven with the intelligence in the product to deliver content. These visual, object-oriented systems work well for developers, but they are especially useful to production-oriented DevOps and operations constituents that value models versus scripting for content. As the field continues to develop and change, the community-based content will become ever more important to how IaC tools are used, unless they are model-driven and object-oriented.
 
Notable CCA tools include:
Line 119 ⟶ 124:
| -
|-
![[Otter (software)|Otter]]
|[[Inedo]] (2015)
|Push
|Declarative and imperative
| -
| Windows-oriented
|-
![[Pulumi]]
|Pulumi (2018)
|Push
|Declarative and imperative
|[[Go (programming language)|Go]]
| -
|-
! [[OpenTofu]]
| [[Linux Foundation]] and contributors (2023)
| Push
| Declarative and imperative
| [[Go (programming language)|Go]]
| Terraform fork
|}
 
Other tools include [[AWS CloudFormation]], [[cdist]], [[StackStorm]], [[Juju (software)|Juju]], Pulumi, and Step CI.
 
==Relationships==
Line 137 ⟶ 156:
 
== See also ==
* [[Docker (software)| Docker]]
* [[IT infrastructure]]
* [[Infrastructure as a service]]
* [[Orchestration (computing)|Orchestration]]
* [[Continuous configuration automation]]
* [[Landing zone (software)]]
 
==References==