Version Control vs. Configuration Management

  • another area. The subtle interdependencies among the configuration settings usually cannot be detected by someone inspecting the environment and can only be brought to the surface through an automation solution.
  • Change Policy Control and Standardization . These standards are used to create templates for individual elements of the application layer (for example, the standard configuration of a given application server) or for the entire application stack (a standard build for application server, Web server, data base and middleware).
  • Audit and Reporting . The discipline of configuration management should also enable automated change reporting. As changes are made in configuration settings, these reports can be logged with results tabulated and presented for IT audit purposes.

In short, IT managers should take the following steps when considering the automation of configuration management and version control:

  • Assemble all of the component level information into a centralized repository;
  • Provide a view into the dependencies among the various configuration items;
  • Impose policy control over how changes are proposed, tested and implemented;
  • Deliver detailed tracking and reporting; and
  • Allow changes to be reversed when proposed changes have unexpected consequences.

Key Version Control Features and use cases

The role of version control in this setting would be to provide a critical "safety net" for the change process included in the configuration management environment outlined above. While configuration management would explicitly regulate the change process, the entire process would be enriched with versioning features. Generally, this would imply that all changes are recorded in such a way that earlier versions of the configuration settings could be "reconstructed" and installed. This would have obvious value for situations where changes are made, deployed and then later found to have undesirable impact on performance or stability. But such features would also yield value for both IT compliance audits and disaster recovery situations. As auditors probe the integrity of systems related to revenue transactions, they may need to test the actual system environment that was in place around various sets of transactions. A robust version control capability embedded into the configuration management would conceivably allow the IT team to reinstate an exact copy of the application infrastructure at any desired time. Additionally, this capability would have clear benefits for reinstating infrastructure in a disaster recovery setting. Some critical aspects of the version control capability would include:

  • "Automatic" vs. "Explicit" Versioning . A snapshot can be taken in fundamentally two different ways: 1) automatically, every time a change is made; or, 2) explicitly after a certain set of changes have been instituted and a change set has been created. Both approaches are valid, though the automatic approach has obvious benefits in that it records every change without requiring intervention.
  • Level of Versioning . Versions can also be created for the individual settings or parameters or for configuration files. Once again, the former approach is superior because it records all changes at a very fine-grained level. With this approach, you can build up to a file-based version, but if you only record changes at the file level, you will not be able to drill down easily to find individual changes.
  • Roll-back Capability . In order to be truly useful, the configuration management solution must have the ability to isolate a version (either by level or by date and time) and then reintroduce those settings into the application infrastructure. This is alternately referred to as "roll-back" or back-out in ITIL® language.


Configuration management solutions can play a critical role in managing change for enterprise IT organizations focused on the application infrastructure level, now that these solutions have been successfully implemented at the network and

About the author

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.