Difference between revisions of "Infrastructure as code"

From PKC
Jump to navigation Jump to search
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[wikipedia:Infrastructure as code|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.  
[[wikipedia:Infrastructure as code|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.  
==PKC Related Topics==
[[PKC]] will require [[Docker]] to be installed and running on a remote server (or the localhost machine when using it locally). Therefore, it is necessary to inform the user that [[Docker]] is or not installed/running for the first time users. This can be accomplished by using Bash Shell script, and or a combination of [[Ansible]]/[[Terraform]].


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


=Notable CCA Implementations=
=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.
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:
Notable [[CCA]] tools include:
{| class="wikitable sortable"
{{:Table/CCA Tools}}
! Tool !! Released by !! Initial release !! Method !! Approach !! Written in
|-
! [[Ansible]]
| [[RedHat]]
| 2012
| Push
| Declarative and imperative
|[[Python]]
|-
![[CFEngine]]
|CFEngine
| 1993
|Pull
|Declarative
|[[C (programming language)|C]]<ref>https://cfengine.com/learn/what-is-cfengine/</ref>


|-
<noinclude>
![[Chef (software)|Chef]]
=References=
|Chef
<references/>
| 2009
</noinclude>
|Pull
|Imperative
|[[Ruby (programming language)|Ruby]]
|-
![[Otter (software)|Otter]]
|[[Inedo]]
| -
|Push
|Declarative and imperative
| -
|-
! Pulumi
|Pulumi
| 2017
| Push
| Declarative and imperative
|[[TypeScript]], [[Python (programming language)|Python]], [[Go (programming language)|Go]], [[C (programming language)|C]]
|-
![[Puppet (software)|Puppet]]
|Puppet
| 2005
|Pull
|Declarative
|[[C++]], [[Clojure]] since 4.0, [[Ruby (programming language)|Ruby]]
|-
![[SaltStack]]
|SaltStack
| 2011
|Push and Pull
|Declarative and imperative
|[[Python (programming language)|Python]]
|-
! [[Terraform]]
| [[HashiCorp]]
| 2014
| Push
| Declarative
|[[Go (programming language)|Go]]
|-
|}

Latest revision as of 13:46, 14 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.

PKC Related Topics

PKC will require Docker to be installed and running on a remote server (or the localhost machine when using it locally). Therefore, it is necessary to inform the user that Docker is or not installed/running for the first time users. This can be accomplished by using Bash Shell script, and or a combination of Ansible/Terraform.


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



References