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,, Puppet, Rudder and Salt. 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:
ToolDeveloped byInitial releaseMethodApproachWritten in
AnsibleRed HatPushDeclarative and imperativePython
CFEngineNorthern.techPullDeclarativeC
ChefProgressPullImperativeRuby
OpenTofuLinux FoundationPushDeclarativeGo
InedoPushDeclarative and imperative
PuppetPuppetPullDeclarativeC++, Clojure since 4.0, Ruby
SaltVMwarePush and PullDeclarative and imperativePython
TerraformHashiCorpPushDeclarativeGo

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