Configuration Management: 4 Key Concepts

Four Principles that Contribute to Reliable, Repeatable Processes

Joe Poniatowski
Configuration Management ('CM' hereafter) means a lot of different things to different people. Weighty tomes have been written describing the goals, policies, procedures, benefits, pitfalls, and a variety of definitions of CM. One recent CM plan I worked on is a 20-something page document attempting to detail this information and how it relates to the client's projects.

Most of the information available can be boiled down into 4 key concepts, or what can be called the 4 cornerstones of great CM. These concepts represent ideals. The challenge is in the implementation, so that the policies, procedures, and utilities developed support these ideals, or at least the intent behind them.

Version control - Everything is maintained in a Version Control tool like those offered by Serena (commercial software) or Subversion (Open Source). Some agreed set of items (Configuration Items, or CIs for short) stored within the tool represent baselines. In other words, they are the set of revisions currently in production. They are not necessarily the most recent revisions. Builds intended for deployment to any post-development environment (QA, Test, Prod, whatever) are always pulled from Version Control, and never copied directly from a development environment.

Separation of Duties and Least Privilege - Actually, these are two principles lumped together because Least Privilege is not possible without Separation of Duties, and Separation of Duties is pointless without Least Privilege. The former simply means that no single person has independent responsibility over more than one area of a system. For example, developers change code, perform unit test, etc., but do not deploy or promote such code to any non-development environment. CM people promote code, but do not develop applications, nor do they approve code changes made by developers (although they may participate in code reviews). DBAs have database privileges, but don't develop application code nor act as system admins. And so on. The Least Privilege principle simply states that no person or running process has more access or system privilege than they need to perform their normal duties or functions at any point in time. Access or privilege for either people or processes can temporarily be increased during the performance of some activity as necessary, then immediately restricted again. Policies implementing these controls make allowances in both these principles for emergency situations.

Auditing - CM personnel periodically conduct audits of applications, systems, and procedures. Any updated application software or configurable item should be traceable to an approved change request, as well as through the entire set of existing quality control, tech review, and change control procedures. This includes not only application executables but database configurations as well. All items are compared with their baseline counterparts in the Version Control repository (ie; the revisions marked as 'Production'). Discrepancies are reported as non-compliance issues and investigated, and will generally lead to procedural changes designed to eliminate future non-compliance.

Automate, Automate, Automate - This one is an over-riding theme for how we accomplish all this with limited resources. Checking items out of and into Version Control should be quick and painless, and integrated into development IDEs (Interactive Development Environments) if possible. Code promotions are scripted. Database changes are scripted. Auditing utilities are scripted. These scripts themselves are subject to review and kept in version control. Tying it all together gives us reliable, secure systems built with verifiable, repeatable and efficient processes.

Published by Joe Poniatowski

A full time IT consultant with over 20 years experience. Clients have included 2 of the big 3, financial institutions, and state and local governments.   View profile

15 Comments

Post a Comment
  • GEORGE 10/28/2008

    Without a good configuration control mechanism it is hard to achieve good project management. Very good article.

  • Sheri Fresonke Harper 1/25/2008

    Sounds like a nice product to work with. :) Sheri

  • Kat Vogel 1/24/2008

    Very technical, but I'm sure if I were in the business world this would be a valuable asset. =)

  • Veronica Davidson 1/22/2008

    Will pass this along. Thanks.

  • Amy Browne 1/20/2008

    thanks for sharing

  • Shannon Wilson 1/18/2008

    Well written.

  • Rebecca Foster 1/18/2008

    Good job! Whatever you said! LOL

  • Al W 1/16/2008

    I have done many a CM system in my day -- nice article.

  • Lucida Stevens 1/16/2008

    very well done. i don't understand most if it. but very well done.

  • Kelly Spies 1/16/2008

    interesting article. it's very technical but well written.

Displaying Comments
Next »

To comment, please sign in to your Yahoo! account, or sign up for a new account.