Continuous configuration automation
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]
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.[2][3]
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.[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]
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 (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 (software) | RedHat | 2012 | Push | Declarative and imperative | Python |
CFEngine | CFEngine | 1993 | Pull | Declarative | C[7] |
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 |
Evaluation factors
Evaluations of CCA tools may consider the following:[8][9]
- 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
See also
- Agile software development
- Continuous delivery
- Continuous Integration
- DevOps toolchain
- Infrastructure as Code
- Software configuration management
- WinOps
References
- Fletcher, Colin; Cosgrove, Terrence (26 August 2015). Innovation Insight for Continuous Configuration Automation Tools. Gartner (Report).
- Ramos, Martin (4 November 2015). "Continuous Integration: Infrastructure as Code in DevOps". easydynamics.com.
- Infrastructure As Code: Fueling the Fire for Faster Application Delivery (Report). Forrester. March 2015.
- Phillips, Andrew (14 May 2015). "Moving from Infrastructure Automation to True DevOps". DevOps.com.
- Venezia, Paul (21 November 2013). "Puppet vs. Chef vs. Ansible vs. Salt". networkworld.com. Network World. Retrieved 14 December 2015.
- Garner Market Trends: DevOps – Not a Market, but Tool-Centric Philosophy That supports a Continuous Delivery Value Chain (Report). Gartner. 18 February 2015.
- https://cfengine.com/learn/what-is-cfengine/
- Fletcher, Colin; Cosgrove, Terrence (25 March 2016). How I&O teams can combine CCA tools With Containers to Achieve Operational Efficiecies. Gartner (Report).
- Fletcher, Colin; Cosgrove, Terrence (8 December 2016). Market Guide for Continuous Configuration Automation Tools. Gartner (Report).