I am currently creating a CMDB of a company's system architecture and have gotten hung up about how the hierarchy should work in this tree-like CMDB. Originally, I set the database structure up like this:
Application Service
| |
Application Server Database Server
|
Database Instance
With the Application Service, Application Server, Database Server, and Database Instance. Further research has lead be to believe that I need to add both Mainframes and Load Balancers to this structure since some of the apps depend on these components in order to function. If I were to correctly display these 2 components, where would they fall into this structure? Each item in the tree has multiple attributes, so would these 2 components be attributes of existing items or their own new items?
Load Balancers and Mainframes are their own Configuration Items under the Load Balancers (cmdb_ci_lb
) and Mainframe Hardwares (cmdb_ci_mainframe_hardware
) tables.
The best place for Load Balancer information would be under the Servers. If a Load Balancer fails, you can follow the upstream relationships to discover what servers were affected, and from there what Services may have been impacted. One may use a similar layout for Network Switches, Routers, or other Network level CIs.
Mainframes have more use cases, so their location on the map is more open-ended. If they are performing a separate duty from the databases and servers (like data processing), they should be a third branch from Application Service.
When mapping out dependencies, a good rule of thumb is to ask yourself "What hardware will be impacted if I pull the plug on this device?"