什么是 CMDB?
“CMDB 即配置管理数据库,通过获取、维护,检查企业的IT资源,从而高效控制与管理不断变化的 IT 基础架构与 IT 服务,并为其它系统,例如任务调度、运维工单、发布管理等系统提供准确的配置信息。”
早期 CMDB 是以数据存储为驱动来进行建设的,现在比较主流的 CMDB 的建设方式,是以应用和业务驱动的,需要什么数据,就创造什么数据,通过灵活数据建模,来实现以需求为导向的 CMDB 建设。
通过完善的 Web API 来进行各个流程或应用之间的数据通信,例如:数据上报,验证,获取,更新等等。
CMDB 建设中需要做到的几点要求:
01、灵活性
灵活配置数据字段,现在的系统或者平台多样化,例如:云平台、Docker、物理机、虚拟机等等,这些在数据存储上字段都是有区别的,因此需要灵活配置字段可以兼容这些系统或平台。
02、安全性
对于 CMDB来说,数据的安全是非常重要的,不能随意的去更改,因此一定要注意安全保障,如:设定严格的权限访问控制。
03、准确性
CMDB是数据存储的集合,是建设其他系统的数据基石,因此就需要保证CMDB的数据的准确性,否则会引起一些不必要的问题。
04、实时性
其实这个事项,在有些人里面觉得不太重要,甚至认为以天级来收集、更新数据即可,但是我认为,虽然 CMDB 对数据的实时性要求不高,但是还是需要达到最优的实时性。
CMDB 数据存储需要注意的事项
对于数据的建模,应该从使用数据的角度考虑,而不是从数据的提供角度考虑,一旦形成数据建模,数据提供者应该按照既定的规则进行数据的提供。
CMDB 的目的是为了在其他流程或应用之间共享数据的,如果一个应用或流程需要对某类数据单独使用的话,则不建议将这类数据存入 CMDB 中,存在自身应用即可。
对于业务服务的建模,建议粒度尽可能的小。
动态数据,如服务器当前负载,CPU 使用率,这类数据建议不存储在 CMDB 中,因为这类数据更新过于频繁。
如果没有任何流程、应用及人员,需要对特定的数据进行使用,则没有必要放到CMDB 中进行存储。
“建设CMDB一定要把握一个核心逻辑关系:所有 CMDB 所管理的资源一定要有使用场景;要想各种场景被正确执行,就会要求 CMDB 所提供的资源是准确且实时的;这样运维人员才会有动力去努力维护和更新 CMDB 的数据,以确保运维的工作能够顺利开展。这样一个需求关系要时刻铭记。”
各种使用场景还有很多,但是要把握一个前提,管理的资源一定要能对应到工作中的需求场景。
整理的 CMDB 流程图:https://www.processon.com/view/link/5829a24be4b00c4fc8a221b1?pw=51reboot#map
CMDB 在线项目截图:
閱讀更多 Python學習 的文章