Skip to content

Continuous Delivery: The Importance of Configuration Management

The power to reduce risks, increase cost savings and increase accuracy

The Delivery Rationalization Framework focuses on making small changes with big wins. One of the most important steps in implementing Continuous Delivery (CD) is having the right strategy and approach on Configuration Management. In the words of Jez Humble and David Farley (“Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation”, ISBN-10 0321601912), “Configuration Management refers to the process by which all artifacts … and the relationships between them, are stored, retrieved, uniquely identified, and modified.” Good Configuration Management processes seek to specify, control and track configuration items and any changes made to them in a comprehensive and systematic fashion (TechTarget).

Configuration Management

Configuration Management (CM), as a key process area in the Continuous Delivery process, is very important in managing changes to functionality and/or performance settings of deployable components. It is the cement that binds the whole process together from change inception to build and deployment – a necessary element to avoid cost and catastrophe. Coupled with the right approach to Release and Deployment Management, CM has the power to reduce risks, increase cost savings (by reducing the cost of errors) and increase the accuracy and efficiency of deployments.

Characteristics of highly mature Configuration Management

There are many elements that define the characteristics of highly mature Configuration Management. Within the DRF, maturity of CM is determined by the following key criteria:

  1. Naming Convention – Naming convention of certain property files, global variables and directory structures where files can be extracted from, are essential in building solid Source Code Management and Deployment Artifacts configurations. This is the most fundamental element in Configuration Management and is a mandatory criterion to reach a Level 2 Maturity.
  2. Version Management – A standard practice of versioning release packages and deployment artifacts go alongside proper naming convention.
  3. Configuration Management Database – The CMDB is a database containing all relevant information about the components and the relationship between components. Moving information on all assets into a more sophisticated CMDB positions organizations for better Release and Deployment Management.

Small steps

Revisiting the “big gains with low costs” mantra: proper CM does not require a big investment. A well thought out strategy could start with some manual tasks that create a more controlled environment in which there is more traceability (of changes), proven process rollback mechanisms, well defined logging structures, well-documented SCM Check-ins (through required commit hooks) and proper security and control of file-driven configurations (password obfuscation). These small changes, when properly enforced, opens up Configuration Management for opportunities to automate and eventually remove a layer of human intervention, resulting in event-triggered processes that improve accuracy and speed of deployments.

Find out more on how Configuration Management impacts Deployment Management in the next few blog posts.

Other relevant DevOps content