Actions: | Security

AllGoodBits.org

Navigation: Home | Services | Tools | Articles | Other

Configuration Management - the justification

Designing and implementing configuration management is a significant project, especially if you've never done it before, necessarily it involves diving into learning some complex new tools, but more than that, it requires you to think about what the process and workflow for managing your computing infrastructure should be. Not for the faint of heart and you certainly don't want to take on a project like that just because it's been trendy for a few years.

However, there are some very good reasons for configuration management and for most kinds of computing environments, the benefits massively outweigh the costs. As an additional incentive particularly for small teams or highly sophisticated/heterogeneous environments: you don't have to do it all at once. You can start to manage your systems and services incrementally; begin with the ones that are easiest, begin with the ones that will give the best return on the investment, just begin.

Automation

The systems administrator's role is to attempt to automate themselves out of a job as far as is possible. It's not possible, there are always more things to be done, but configuration management tools allow us to automate away certain parts of our job at least, leaving us better able to attend to things that can't be automated so easily, such as keeping the customers happy instead of the computers.

Effecting change elsewhere

As a system's configuration is managed, the CM tool can effect changes elsewhere: in the inventory database, in the config for the monitoring systems, in load balancers, the backup system; the list of what needs to be changed when a system is deployed/redeployed/repurposed is long.

An incomplete list of other benefits:

Inheritance
eases the burden of deployment, maintenance and upgrade of systems/services that you will want later.
Repeatability
Whether for capacity, upgrade, a new client or any other reason, reproducing a service is common and so should be as cheap as possible.
Error-reduction
Services are often built out of many pieces of complex software, with complex interactions; automated CM can be created iteratively, tested and improved more easily.
Testing & Rollback
A solid CM process will include various measures to test to ensure that changes are predictable and reversible.
Audit
A good CM implementation will be able to give useful insight into the history of the configuration state of a system, if nothing else you can look at the commit history of your CM tool's version control repository.