Configuration Management

Rumman Ansari   Software Engineer   2025-02-11 06:40:54   354  Share
Subject Syllabus DetailsSubject Details
☰ TContent
☰Fullscreen

Table of Content:

Configuration Management

Configuration Management is the practice where every artifact from source code to build executables, test scripts, deployment scripts, and environment configuration details are stored, uniquely identified, retrieved, and modified when needed.

It is often used as a synonym for version control.

Configuration management enables:

  • Reproducibility

  • Traceability

CM is the backbone without which it is impossible to do continuous integration, deployment pipelining and release management.


Environment Configuration

An environment is the:

  • Set of resources needed for an application to work.

  • Configuration of those resources.

Attributes that describe an environment are:

  • Hardware configuration (amount of memory, the number, type of CPUs and so on).

  • Network infrastructure

  • Operating environment

  • Middleware configuration (software such as database servers, messaging systems, application and web servers).


Integrating Environment Configuration

Environment configuration details can be integrated at:

  • Build time: Build scripts pulls the details and integrates with the build deliverables.

  • Package creation

  • Deployment time: As part of the installation, deployment scripts will fetch and pass the required details to the application.

  • Design the application to pull the details during the run time or start up.


Environment Configuration: Practices
  • Avoid integrating configuration during build or packaging time. If included at this stage:

    • Same executables cannot be deployed to all environments.

    • Tested and released software may not be the same.

  • Supply configuration information for different environments using the same source or mechanism.

    • Only one source to be changed, managed and controlled.

    • Use registry settings, configuration files, database or an external configuration server like SOAP, REST interface, etc.

  • Store configuration options and it's source code in the same repository.

    • Keep the values (like user details for Github, Twitter etc,.) somewhere else.
  • Model configuration as a tuple.

    • Tuples vary based on application, it's version and environment it runs.

    • Differentiates the configurations used for deploying a particular version of an application.

  • Test the configuration details.

    • Ensure availability of services the application depends on, like a messaging queue, by smoke testing.
  •  

Benefits of CM
  • Disaster Recovery: Ability to restore services after a major outage.

  • Auditability: Ability to trace back the origin of a deployed change (the version of the code).

  • Response to defects: Enables quick fixing of errors.


Summary: Configuration Management
  • Use version control.

  • Store everything in the version control.

  • Check in changes regularly.

  • Manage external libraries.

  • Manage dependencies between components or modules developed by various teams.

  • Manage application configuration.


MCQ Available

There are 10 MCQs available for this topic.

10 MCQ

Learn Continuous Deployment from scratch! This beginner-level course covers CI/CD pipelines, automation, and deployment strategies. Perfect for developers, testers, and IT professionals looking to streamline software delivery.


Stay Ahead of the Curve! Check out these trending topics and sharpen your skills.