Continuous configuration automation (CCA) is the methodology or process of automating the deployment and configuration of settings and software for both physical and virtual data center equipment. [1]
Continuous configuration automation is marketed for data center and application configuration management. CCA tools use a programmable framework for configuration and orchestration through coding, planning, and incrementally adopting policies. [2] [3]
CCA tools are used for what is called DevOps, and are often included as part of a DevOps toolchain. CCA grew out of a push to develop more reliable software faster. [1] Gartner describes CCA as “Embodying lean, agile and collaborative concepts core to DevOps initiatives, CCA tools bring a newly found level of precision, efficiency and flexibility to the challenges of infrastructure and application configuration management.” [4]
CCA tools support administrators and developers to automate the configuration and Orchestration of physical and virtual infrastructure in a systematic way that give visibility to state of infrastructure within an enterprise. Generally thought of as an extension of infrastructure as code (IaC) frameworks. [1] CCA tools include Ansible, Chef software, Otter, Puppet (software), Rudder (software) and SaltStack. [5] Each tool has a different method of interacting with the system some are agent-based, push or pull, through an interactive UI. Similar to adopting any DevOps tools, there are barriers to bring on CCA tools and factors that hinder and accelerate adoption. [6]
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 [7] |
Chef | Chef | 2009 | Pull | Imperative | Ruby |
Otter | Inedo | 2015 | Push | Declarative and imperative | - |
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 |
Evaluations of CCA tools may consider the following: [8] [9]