Skip to main content

Configuration Management

Managing and maintaining configuration settings of the software.

Also Known As

  • CM
  • Configuration Management (in DevOps)
  • Feature Flag
  • Feature Toggle
  • Infrastructure As Code (IaC) (in DevOps)
  • SCM
  • Security as Code (in DevOps)
  • Software Configuration Management

Related

Addresses / Mitigates

  • Implementation Risk: Establishes and maintains consistency in the software product's performance and attributes.
  • Operational Risk: Ensures that changes are systematically evaluated and implemented to minimize disruptions.
  • Complexity Risk: Reduces complexity by managing system changes in a controlled and documented manner.

Attendant Risks

  • Reliability Risk: Carefully managing software configuration ensures that the reliability of dependencies is also managed.

Used By

  • DevOps: DevOps uses Infrastructure as Code (IaC) to manage and provision computing infrastructure through machine-readable scripts.
  • Extreme Programming: Configuration management helps maintain the consistency of the product's performance in XP.
  • Lean Software Development: Lean ensures consistency and quality across different environments through configuration management.
  • Scrum: Configuration management helps maintain the consistency of the product's performance.

Description

"Configuration management (CM) is a systems engineering process for establishing and maintaining consistency of a product's performance, functional, and physical attributes with its requirements, design, and operational information throughout its life." - Configuration management, Wikipedia

Configuration Management (CM) involves systematically handling changes to ensure the system maintains its integrity over time. It includes practices and tools for managing changes, tracking their status, and maintaining an inventory of system and support documents. CM is critical in software engineering to handle changes efficiently, reduce risks, and ensure the system performs as intended throughout its lifecycle.

Variations

Configuration TypeDescriptionReference
Environment ConfigurationManaging settings that differ between development, staging, and production environments.Deployment Environment, Wikipedia
Feature FlagsRuntime configuration allowing features to be enabled or disabled without code changes.Feature Toggle, Wikipedia
Secrets ManagementSecure storage and access control for sensitive configuration like API keys and passwords.Secrets Management, Wikipedia

See also: Consider Payoff

Used By

DevOps

DevOps

A set of practices that combines software development (Dev) and IT operations (Ops) to shorten the development lifecycle and provide continuous delivery with high software quality.

Why: DevOps uses Infrastructure as Code (IaC) to manage and provision computing infrastructure through machine-readable scripts.

Uses:
  • Security as Code
  • Infrastructure As Code (IaC)
  • Configuration Management
Extreme Programming

Extreme Programming

An Agile software development methodology that emphasizes customer satisfaction, teamwork, and frequent delivery of small, functional software increments.

Why: Configuration management helps maintain the consistency of the product's performance in XP.

Lean Software Development

Lean Software Development

An Agile software development methodology that emphasizes eliminating waste, building quality in, creating knowledge, deferring commitment, delivering fast, respecting people, and optimizing the whole.

Why: Lean ensures consistency and quality across different environments through configuration management.

Scrum

Scrum

An Agile framework for managing and completing complex projects.

Why: Configuration management helps maintain the consistency of the product's performance.