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