Give me CMDB before I die
Rather more than just a trendy new acronym
If there's a fashionable topic in the enterprise at the moment, it's ITIL (the IT Infrastructure Library, a collection of best practices for managing IT operations) and its contribution to IT Governance. For developers, it's all about designing holistic systems, with operational resilience, upgrade, maintenance and even change management processes built in.
The Configuration Management Database, or CMDB, is fundamental to ITIL (see page 17 in the Introduction to ITIL here). This is an interesting little database design exercise in itself, and there's a lot of hype around CMDB at the moment, with lots of claimed CMDB products and precious few real-world practical implementations of the concept.
The CMDB concept also has a potentially rich future, since one could envisage it storing metadata relating to the quality of the information in it (how up-to-date, how reliable) and not only managing the operational infrastructure as it is now but also providing the basis of “what if” impact analysis of future changes. Ultimately, it could power a risk management process, identifying areas that are poorly managed now and forewarning of potential operational issues in the future. Now, there's a chance for developers to write some interesting applications!
So I was keen to meet with Jim White and Dustin McNabb of Managed Objects, to talk about the general design issues behind its fully-functional CMDB 360 product (it's had a CMDB for a while, but its earlier model wasn’t exactly “live” – the information in it had to be exported to other tools). This looks like a welcome addition to the current crop of CMDBs, typified by BMC's Atrium, but I don’t want to review CMDBs just now, I want to talk about some of the database design issues.
For a start, you probably already have all the information needed for your CMDB already, although the CMDB is more than an asset list, it stores the relationships between configuration items too. You really ought to have an automatically-maintained asset management database these days (surely you didn’t just through away all that expensive effort you put in for Y2k – that’s irony, by the way) and every bit of infrastructure technology has its own configuration file. However, Jim White points out, just applying “extract, transform and load” (ETL) to all this stuff and dumping it a relational database doesn’t give you a real CMDB (and the ETL process is probably going to be harder than you expect anyway).
ETL gives you duplicate data, collected in batch somewhat after the event – so which is the authoritative version of the data? The original data, wherever it is, of course, which means that the CMDB will first stop being trusted and then become neglected. However, before then it will become very big and deliver a classic “single point of failure” – if all configuration changes are made through the CMDB (as they must be, if it is to mean anything), if it fills up or fails, or slows to a crawl, operational systems slow down and stop. Not a good idea and probably the final nail in this kind of CMDB’s coffin.
So, let's start again and look at the CMDB requirements. These come from analysis of ITIL processes, of course, but Jim and Dustin directed me to research white papers from Ronni J. Colville of Gartner (ID Number: G00136977, 3 February 2006) and Thomas Mendel & Jean-Pierre Garbani (with Peter O’Neill and Reedwan Iqbal) of Forrester (Best Practices: The “Just Enough” CMDB, April 12, 2006, available here – free registration required), which provide usefully independent summaries.
Colville points out that configuration management and the CMDB are separate things - the CMDB is the data and metadata repository underlying configuration management, but it doesn't deliver configuration management of or by itself. Gartner seems to identity 3 key CMDB requirements:
- Federation, the ability to link to and logically integrate multiple existing, physical, sources of configuration data without moving them;
- Reconciliation, to rationalize conflicting instances of configuration items or components from different sources;
- Visualization, to provide users of the CMDB with logical and/or physical illustrations of the peer-to-peer and hierarchical relationships between configuration items.
Colville goes on to outline the configuration management process and the importance of getting this worked out before you try to choose and implement a CMDB product, which seems like good advice.
In The “Just Enough” CMDB; Implementing A CMDB Is Not A Five-Year Project, Thomas Mendel et al of Forrester remind us that experience suggests that significant long-term projects that cut across organisational boundaries and have significant political implications, can be career limiting:
“While most organizations have bought into the benefits of the CMDB and business service management (BSM) approaches by now, implementation is, as always, a sore spot”, the Forrester team says. “Corporations are reluctant to embark on a broad, sweeping strategy that may take years to implement and wonder if a more tactical and process-driven approach would be more effective.”
Mendel and team discusses some of the issues around a practical CMDB:
- Implementation is complex. Resolving the issues with integrating information “owned” by different departments (and dealing with “ownership” itself) will be difficult and time consuming.
- CMDBs have scalability issues. It will fold a lot of information and, if it is successful, more will be added.
- Firms expect technology to deliver immediate business value these days, not a utopian future.
Forrester suggests that CMDB creation will need to be a top-down, rather than bottom-up, process-driven “work in progress”. In other words, a framework will be needed, within which the implementation details can evolve and be extended (I’d feel that you’d need both top-down and bottom up design – both have a cohesive vision and also something which is workable in detail, in practice).
So, what does this all mean for the design of a CMDB? According to Jim White, the keys are the object model at its centre and support for federation. Not only can you federate existing sources (eliminating rip-and-replace or duplicate data) but the federation can include derived data held in the CMDB repository itself and you can federate CMDBs, giving you the required scalability. And, of course, the federation must be open; just federating your own technology products will be limiting.
Federation is largely achieved through an object model implemented with the ObjectDB OODBMS (Object Oriented Database Management System; although ObjectDB refers to itself as an ODBMS, ObjectDBMS), although the data in the CMDB, as always, can be mapped into an existing RDBMS such as DB2, and others, for persistence.
At a time when Microsoft, say, is promising to use the SQL Server RDBMS (Relational Database Management System) everywhere, this is an interesting design decision: an OODBMS is simply more appropriate than what is (ostensibly) an RDBMS, for data structures which have a fundamentally hierarchical structure, such as directories and configuration databases. Of course, mapping into RDBMS is always possible but this introduces extra overhead and complexity.
With an OODBMS, federation and a mixture of top-down and bottom-up design can be implemented naturally – and scalability and near-real-time performance are comparatively easy to achieve. OODBMS has its own issues (maintaining integrity has implementation implications and dealing with accesses which don’t match its underlying object model might be an issue), but this is an application for which it is entirely suitable.
The first hurdle CMDB must jump is what Gartner calls the “hype cycle” – there's a lot of talk about CMDB, and some (successful) early implementations; but it will be some time before CMDB is a routine commodity, delivering business benefit to run-of-the-mill companies. There is a danger that disappointment will set in as people realise how much effort is needed to set up a useful CMDB - and general acceptance could be as much as 10 years out (although Managed Objects seems to anticipate significant acceptance much earlier.
The second hurdle may be the need to change company culture, so that you a metrics- and process-focused company, to get the best out of CMDB.
However, once you have a functioning, federated, extensible CMDB, it can be the foundation for real transparency of your operational processes. And that implies an opportunity for developers, writing customised presentation and visualisation routines for operational managers and strategic planners. ®
David Norfolk is the author of IT Governance, published by Thorogood. More details here.