Configuration Management
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 Type | Description | Reference |
|---|---|---|
| Environment Configuration | Managing settings that differ between development, staging, and production environments. | Deployment Environment, Wikipedia |
| Feature Flags | Runtime configuration allowing features to be enabled or disabled without code changes. | Feature Toggle, Wikipedia |
| Secrets Management | Secure storage and access control for sensitive configuration like API keys and passwords. | Secrets Management, Wikipedia |
See also: Consider Payoff
Used By
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.
- Security as Code
- Infrastructure As Code (IaC)
- Configuration Management
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
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
An Agile framework for managing and completing complex projects.
Why: Configuration management helps maintain the consistency of the product's performance.