Difference between revisions of "Infrastructure as code"

From PKC
Jump to navigation Jump to search
Line 10: Line 10:
! Tool !! Released by !! Initial release !! Method !! Approach !! Written in
! Tool !! Released by !! Initial release !! Method !! Approach !! Written in
|-
|-
! [[Ansible (software)|Ansible]]
! [[Ansible]]
| [[RedHat]]
| [[RedHat]]
| {{release date and age|2012}}
| {{release date and age|2012}}
| Push
| Push
| Declarative and imperative
| Declarative and imperative
|[[Python (programming language)|Python]]
|[[Python]]
|-
|-
![[CFEngine]]
![[CFEngine]]
Line 60: Line 60:
|[[Python (programming language)|Python]]
|[[Python (programming language)|Python]]
|-
|-
! [[Terraform (software)|Terraform]]
! [[Terraform]]
| [[HashiCorp]]
| [[HashiCorp]]
| {{release date and age|2014}}
| {{release date and age|2014}}

Revision as of 07:17, 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; Template:Years or months ago (2012) Push Declarative and imperative Python
CFEngine CFEngine 1993; Template:Years or months ago (1993) Pull Declarative C[1]
Chef Chef 2009; Template:Years or months ago (2009) Pull Imperative Ruby
Otter Inedo - Push Declarative and imperative -
Pulumi Pulumi 2017; Template:Years or months ago (2017) Push Declarative and imperative TypeScript, Python, Go, C
Puppet Puppet 2005; Template:Years or months ago (2005) Pull Declarative C++, Clojure since 4.0, Ruby
SaltStack SaltStack 2011; Template:Years or months ago (2011) Push and Pull Declarative and imperative Python
Terraform HashiCorp 2014; Template:Years or months ago (2014) Push Declarative Go