Continuous configuration automation
Continuous configuration automation is the methodology or process of automating the deployment and configuration of settings and software for both physical and virtual data center equipment.
Overview
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.Relationship to DevOps
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. 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.”Tools
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 frameworks. CCA tools include Ansible, Chef software, Otter, Puppet, Rudder and SaltStack. 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.Notable CCA tools include:
Tool | Released by | Initial release | Method | Approach | Written in |
Ansible | RedHat | Push | Declarative and imperative | Python | |
CFEngine | CFEngine | Pull | Declarative | C | |
Chef | Chef | Pull | Imperative | Ruby | |
Otter | Inedo | - | Push | Declarative and imperative | - |
Pulumi | Pulumi | Push | Declarative and imperative | TypeScript, Python, Go, C | |
Puppet | Puppet | Pull | Declarative | C++, Clojure since 4.0, Ruby | |
SaltStack | SaltStack | Push and Pull | Declarative and imperative | Python | |
Terraform | HashiCorp | Push | Declarative | Go |
Evaluation factors
Evaluations of CCA tools may consider the following:- Skills, training, and cost required to implement and maintain tool
- Content and support of the Platform and Infrastructure – tool specified for Windows or Linux etc.
- Delivery method and likening flexibility – important for scalability
- Method of interacting with managing system
- Support and training availability and cost
- Incorporation of orchestration with configuration management
- Security and compliance reporting