What is a CMDB?
The concept of the Configuration Management Database extends back at least 15 years, to the first version of the Information Technology Infrastructure Library (ITIL). It has proven a provocative concept for the management of enterprise information technology, attracting enthusiastic support, vendor investment and marketing, and fierce criticism.
ITIL continues to be the pre-eminent driver for enterprise interest in CMDB, but even without ITIL, CMDBs would exist. It is a natural human response to create systems to cope with complexity, and the large IT environment (tens of thousands of servers, thousands of applications, billions of dollars) is complex. It is a major consumer of capital, source of enterprise risk, and driver of business opportunity, and manifests dynamics clearly akin to better-understood manufacturing supply chains.
The CMDB's clearest analog in the manufacturing world is the Bill of Materials concept (commonly abbreviated BOM). Bills of material are routine in the product world. The MacBook Air I am writing this on had a complex Bill of Materials including its case, screen, CPU, keyboard, trackpad, and so forth. Bill of Materials data is critical to plan materials acquisition, processing, and delivery in manufacturing supply chains; the entire discipline of MRP (Materials Requirements Planning, or Manufacturing Resource Planning in its later incarnation) is based on the foundation of BOM management.
Just as BOM data is essential in manufacturing, so it is essential in IT service management. If we consider transactions as akin to manufactured products, then the IT service BOM is conceptually similar to its manufacturing cousin; both are templates supporting high volume production of value - goods in the one case, services in the other.
So how do we map BOM concepts onto the world of IT management?
Part of the problem lies in comparing manufacturing to transaction processing: each part in a manufacturing BOM typically implies a supply chain. That is to say, a screw in an assembly must be individually sourced, and if we are manufacturing 5000 assemblies, we need 5000 screws.
On the other hand, the IT service Bill of Materials is partly intangible. A complete Bill of Materials for a production application service would include:
- Functional Support
- Technical Support
- Operational Monitoring
- Application Code
- Middleware & Utility Services (transaction/data mgmt, messaging, backup, batch scheduling, etc)
- Operating System
- Computing hardware
- Network services
- Network hardware
- Rack hardware
- Power and cooling
There are both "good" and "service" aspects to all of those elements, which complicates understanding the BOM. The hardware is a physical, storable asset, but can only play a role in the BOM if it is powered on and delivering necessary services. (The use of the term "service" in the preceding sentence may even be controversial; in a subsequent post I intend to take a detailed look at the semantics of IT Service.) The software can be delivered as a storable good, but is only part of the service when executing on a supporting platform.
And at the top of the hierarchy, the customer is not taking delivery of anything physical, but rather an intangible representing all the subordinate component contributions.
As it turns out, there is another concept from manufacturing that is a better fit: while reading Steve Bell's excellent Lean Enterprise Systems I came across the lesser known idea of the Bill of Resources. Bills of Resources are a capacity planning concept, representing the available throughput of the various tools and work centers supporting the manufacturing line. The current Wikipedia definition appears consistent with Bell:
A bill of resources (BOR) describes a list of resources, such as labor, needed to complete a saleable product. It is used in capacity planning to prioritize and schedule work in manufacturing resource planning (MRP II) and enterprise resource planning (ERP) by highlighting critical resources. Critical resources are resources that are in short supply or that have long lead times.
The bill of resources complements the bill of materials (BOM), which lists physical sub-components of a product. Like a bill of materials, BORs are hierarchical with the top level representing the finished product or sub-assembly.
I take the view that enterprise information technology is essentially a factory producing transactions, which are the value added end state sought by the customer of the IT service. (More on this idea.) A transaction represents a repeatable logical state change on a computing machine. In that sense, one can see the computing infrastructure more as Resource - it is akin to the machine tools and work centers that physical products pass through.
If this analogy is useful, why does IT service BOM/BOR management (i.e. CMDB & related practices) lag manufacturing practice? And why is it at all controversial?
One possible reason: According to Steve Bell, MRP practices stipulate that BOM data needs to be 99% accurate, and this is a high data quality bar for CMDBs which are still early in their maturity. Other ideas?
Conclusion: the CMDB is an Operational Data Store primarily concerned with managing the IT Bill of Resources.