Difference between revisions of "Infrastructure as code"
Jump to navigation
Jump to search
Line 3: | Line 3: | ||
[[IaC]] is often mentioned in the automation practices in the context of [[DevOps]]. It is also known as a [[CCA]], which stands for [[Continuous configuration automation]]. | [[IaC]] is often mentioned in the automation practices in the context of [[DevOps]]. It is also known as a [[CCA]], which stands for [[Continuous configuration automation]]. | ||
=Implementations= | =Notable CCA Implementations= | ||
The two camps have their popular implementations. For imperative [[IaC]], many uses [[Ansible]]. For declarative [[IaC]], | The two camps have their popular implementations. For imperative [[IaC]], many uses [[Ansible]] as an example. For declarative [[IaC]],[[Terraform]] is often mentioned. | ||
Notable CCA tools include: | |||
{| class="wikitable" | |||
! Tool !! Released by !! Initial release !! Method !! Approach !! Written in | |||
|- | |||
! [[Ansible (software)|Ansible]] | |||
| [[RedHat]] | |||
| {{release date and age|2012}} | |||
| Push | |||
| Declarative and imperative | |||
|[[Python (programming language)|Python]] | |||
|- | |||
![[CFEngine]] | |||
|CFEngine | |||
| {{release date and age|1993}} | |||
|Pull | |||
|Declarative | |||
|[[C (programming language)|C]]<ref>https://cfengine.com/learn/what-is-cfengine/</ref> | |||
|- | |||
![[Chef (software)|Chef]] | |||
|Chef | |||
| {{release date and age|2009}} | |||
|Pull | |||
|Imperative | |||
|[[Ruby (programming language)|Ruby]] | |||
|- | |||
![[Otter (software)|Otter]] | |||
|[[Inedo]] | |||
| - | |||
|Push | |||
|Declarative and imperative | |||
| - | |||
|- | |||
! Pulumi | |||
|Pulumi | |||
| {{release date and age|2017}} | |||
| Push | |||
| Declarative and imperative | |||
|[[TypeScript]], [[Python (programming language)|Python]], [[Go (programming language)|Go]], [[C (programming language)|C]] | |||
|- | |||
![[Puppet (software)|Puppet]] | |||
|Puppet | |||
| {{release date and age|2005}} | |||
|Pull | |||
|Declarative | |||
|[[C++]], [[Clojure]] since 4.0, [[Ruby (programming language)|Ruby]] | |||
|- | |||
![[SaltStack]] | |||
|SaltStack | |||
| {{release date and age|2011}} | |||
|Push and Pull | |||
|Declarative and imperative | |||
|[[Python (programming language)|Python]] | |||
|- | |||
! [[Terraform (software)|Terraform]] | |||
| [[HashiCorp]] | |||
| {{release date and age|2014}} | |||
| Push | |||
| Declarative | |||
|[[Go (programming language)|Go]] | |||
|- | |||
|} |
Revision as of 07:15, 5 August 2021
Infrastructure as code(IaC) is a way to use source code, or formatted scripts, to define and manage the process of deploying and managing computer networks. The two popular camps for realizing this vision are imperative and declarative camps.
IaC is often mentioned in the automation practices in the context of DevOps. It is also known as a CCA, which stands for Continuous configuration automation.
Notable CCA Implementations
The two camps have their popular implementations. For imperative IaC, many uses Ansible as an example. For declarative IaC,Terraform is often mentioned.
Notable CCA tools include:
Tool | Released by | Initial release | Method | Approach | Written in |
---|---|---|---|---|---|
Ansible | RedHat | 2012 | Push | Declarative and imperative | Python |
CFEngine | CFEngine | 1993 | Pull | Declarative | C[1] |
Chef | Chef | 2009 | Pull | Imperative | Ruby |
Otter | Inedo | - | Push | Declarative and imperative | - |
Pulumi | Pulumi | 2017 | Push | Declarative and imperative | TypeScript, Python, Go, C |
Puppet | Puppet | 2005 | Pull | Declarative | C++, Clojure since 4.0, Ruby |
SaltStack | SaltStack | 2011 | Push and Pull | Declarative and imperative | Python |
Terraform | HashiCorp | 2014 | Push | Declarative | Go |