A brief introduction to Configuration and Change Management
Understand the basics of configuration and change management
What is configuration management?
Configuration management is the process of managing the configurable components or resources of a system or environment on which a software application runs. Configuration management ensures that these resources and components maintain a consistent state; this consistent state is referred to as a baseline.
The main aspects of configuration management:
-
Identification of configurable items: configuration items can include networks, servers, and other computer resources.
-
Labelling of configurable items: unique labels or version numbers are given to configuration items in order to identify them.
-
Protection of configurable items: the configuration items are properly stored and protected from unauthorized access and changes.
-
Keeping of baseline and other information: A baseline is established for the configurable items: this will be a baseline that can be deployed at any time. Records are kept of releases, what was changed during the release, and who changed it. The record will also include the locations of the configurable items, proposed changes to them, and who is responsible for those changes.
-
Configuration Verification and Audit: The configuration items are regularly checked, in other to ascertain that they are in a consistent state.
-
Defining Responsibilities: The team assigns responsibility to members to the different aspects of the configuration management process. For example, who does auditing, reporting, or approves changes.
What is change management?
Change management is the process of managing the changes that are made to the configurable items in an environment or system.
The processes of change management:
-
Identification of needed change: The configurable Items are evaluated to determine the changes they need and where and how those changes can be implemented.
-
Determining the impact of the change: It is determined how the proposed change will impact the current state of the system.
-
Change request: After the impact of the proposed changes has been determined, a change request is made the appropriate stakeholders.
-
Change strategy: Once changes are approved by stakeholders, a strategy is developed for how the changes should be implemented and the time frame. The strategy is aligned with the guidelines defined for configuration management.
-
Execution of change: After an appropriate strategy has been successfully defined, the changes are implemented, and the state of the system after the changes if stable, becomes the new baseline.
Benefits of configuration and change management for servers
- It helps to maintain the consistency of the servers.
- It increases efficiency since most of the processes are automated as opposed to manual processes.
- It makes it easy to scale infrastructure without having to scale staff since the processes are automated.
- It reduces the chances of errors since most of the processes are automated and do not require human interference.
- It saves cost for staffing and repair of the server in the case of failure and the need to repair or set up the server again manually.
- It ensures that the server can be easily brought back up in case of system downtime since there is a baseline for the server configurations and a record of all changes reports for the server.
Tools for configuration and change management
-
Ansible: Ansible is a tool for automation task such as configuration management, deployment of applications, orchestrating and provisioning of instances. It is an Open Source tool.
-
Puppet: Puppet is a configuration management tool that is used for deployment, configuration, and management of servers. With puppet, you can define distinct configurations for several hosts and continuously check their state to ensure that they correspond to the defined acceptable system state. Puppet can also be used to scale systems up and down dynamically.
-
CFEngine: ‘CFEngine is an IT infrastructure automation and Continuous Operations framework that helps engineers, system administrators and other stakeholders in an IT organization manage IT infrastructure while ensuring service levels and compliance.
CFEngine runs on the smallest embedded devices, on servers, in the cloud, and on mainframes, easily handling tens of thousands of hosts. It is available as both open source and commercial software.’ — CFEngine -
Chef: Chef is another automation tool that provides a way to define infrastructure as code. It uses a Master-Slave Architecture. The Master and Slave communicate through an SSL.
-
Salt: It is an Open Source configuration management and remote execution application that implements “Infrastructure as a code”.
Difference between configuration and change management
The major change between configuration and change management is that configuration management focuses on managing the configurable items and the state of the system while change management focuses on managing the changes that affect the configurable items and the system.
Things to consider when choosing a configuration management tool.
-
Robustness: When choosing a configuration management tool, you should make sure the tool is robust enough to handle all the tasks that your organisation's infrastructure need it for. It should also enable you to scale your organisation’s infrastructure easily.
-
Flexibility: The tool should be able to integrate well with other tools that you are currently using or planning to use in the future.
Good feedback loop: The tool you are using should be able to provide feedback that is understandable and enables humans using it to understand the process that is being executed. -
The complexity of the organization’s IT platform: The complexity of the organisation’s infrastructure should determine the type of tool that is being used. If the infrastructure is small and does not need a lot of complexity to manage it, then a simple tool should be used and vice versa.
-
Cost-effectiveness: The cost of the tool should also be considered when making a choice of configuration tools. Tools whose cost can easily be managed should be chosen. They are so many open source tools for configuration management, however, before using any of them, one should ensure that the tools are properly maintained and satisfy the need of the organisation’s infrastructure.
Resources
https://www.pluralsight.com/guides/role-of-configuration-management-in-devops
https://www.pmbypm.com/difference-between-configuration-management-vs-change-management/#.XKc5QetKi3U
https://devops.com/integrating-itil-change-management-and-devops/
https://www.projectcubicle.com/configuration-management-change-management/
https://clearbridgemobile.com/devops-change-management-in-the-enterprise-world/
https://www.brighthubpm.com/change-management/39825-configuration-and-change-management/
https://www.netapp.com/us/info/what-is-configuration-management.aspx
https://cfengine.com/product/what-is-cfengine/
https://xebialabs.com/technology/salt/
This is a well-articulated article 👍
You can look in the resources section to make the links clickable.
Thank you @Luqman.