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 | Developed by | Initial release | Method | Approach | Written in |
---|---|---|---|---|---|
Ansible | Red Hat | Push | Declarative and imperative | Python | |
CFEngine | Northern.tech | Pull | Declarative | C[7] | |
Chef | Progress | Pull | Imperative | Ruby | |
Otter | Inedo | Push | Declarative and imperative | - | |
Puppet | Puppet | Pull | Declarative | C++, Clojure since 4.0, Ruby | |
Salt | VMware | Push and Pull | Declarative and imperative | Python | |
Terraform | HashiCorp | Push | Declarative | Go | |
Evaluations of CCA tools may consider the following:[8] [9]