作者:嘉维蓝鲸产品总监,贺勇
针对CMDB这个主题,之前一直想写一篇文章来表达我的看法,但是之前一直不敢写,为什么?因为CMDB这个主题属于一提大家都懂,但是深入讨论大家都晕菜的一个话题;在2018年实施了几十个自动化运维项目后,我对CMDB的理解又进一步加深,因此想谈谈我对CMDB的看法。
关于CMDB的两种截然相反的论调:
-
CMDB没什么卵用,就是国外厂商搞出来忽悠人的,我们企业之前花上百万上的CMDB,还没有我使用Excel表格管理方便;
-
CMDB是运维工具建设的核心,只有CMDB建设好了,建设完善了,才能够建设自动化。
我们不用讨论对错,其实上面两种观点在对应的场景下都可能是对的,如你的IT对象不多,IT管理系统和ITSM系统都没有建设,其实用Excle表格管理比较方便;如果你的IT对象非常多,并且变化快,IT管理系统也非常多,这种情况下,你发现没有建设好CMDB就会带来很大的问题。
我们理解的CMDB:
-
CMDB本质上就是一个数据库,可以开放数据服务给到各个系统来调用和访问的数据库;
-
CMDB本质上是现实世界的IT系统在数字世界的抽象。打个比方,我们每个人在现实世界是存在的,但是我们在*系统中抽象出来的存在就是我们的身份证信息,这一串信息代表了我们的个人信息,以及我们和家人之间的关联关系。
理解CMDB之后,现实中我们就不要对CMDB系统提出太高的要求,如要求CMDB系统为我们提供系统架构图、提供业务访问调用链关系等等。
一、站在更高的视角搞明白CMDB
有时候,我特别讨厌老外创建一堆的词汇,看到这些词汇让人感到头晕,比如我刚研究CMDB的时候就了解到CMDB相关的词汇如下:CMDB、CMS、ITSM、ITAM、ITOA、NSM、CM、ACM、SCM……哈哈,怎么样,头晕了吧!另外更让人郁闷的是CMDB和CMS都被中文翻译成配置管理,而CM也被中文翻译成为配置管理,我当时为了理解这些东西简直快要崩溃了。
CMDB和CMS,应该是要被放在一起讲的。CMS叫配置管理服务,是用来管理和维护CMDB,并且把CMDB数据的能力开放出去给到其他系统使用的服务;
ITSM是IT服务管理,IT服务管理系统需要调用到CMDB提供的数据,当然也有纯流程的ITSM和CMDB没有任何的耦合,也有ITSM系统中自己带了一个CMDB,需要用户手动维护数据;
ITAM是IT资产管理,资产管理和财务系统有一定的关系,主要关注硬件和软件资产信息的管理。ITAM需要使用到CMDB中的数据;
ITOA是IT运营数据分析,如Splunk这种商业软件和基于开源的ElasticSearch软件,ITOA可以消费CMDB数据为海量运营数据打上标签,提供各种数据分析的维度等;
NSM是网络及系统管理,主要是指我们通过监控、自动化等工具对运维对象进行运维管理的额各种操作;
CM、ACM、SCM这三个词应该放到一起讲,CM泛指针对IT对象的配置进行操作管理,如Puppet工具;ACM是应用配置管理,如Apollo配置管理中心;SCM是软件配置管理,如SVN等;SCM主要是给开发团队用的,ACM主要是运维团队使用,因此大家沟通的时候如果不理解就更容易混淆,CM、ACM、SCM事实上和CMDB没有非常紧密的关系,当然他们也可以去消费CMDB提供的数据。
二、CMDB建设的思路
1、业务需求分析
CMDB的建设也需要做业务需求分析?太扯淡了吧。其实我们在此说的业务不是指企业的“业务”,如快递业务、机票业务,而是指IT业务。把IT作为业务来看待,IT业务用来支撑企业“真实的业务”;把IT作为一项业务来看待后,可以进行如下的分析:
-
分析IT业务和“真实业务”之间的关系,如网上银行业务和网上银行IT系统是非常紧密耦合的关系,IT系统故障或使用体验不好,将会直接导致网上银行用户的不满和流失,当然也会导致企业的业务损失(也就是钱的损失);
-
分析IT业务的现状和未来的发展,如果说企业的业务正在进行互联网转型,那么你的IT服务器规模和云计算的使用都可能是未来要考虑的;
-
分析企业对IT管理的需求,我们是做好基础的监管控,保障稳定即可?还是说我们队IT服务的质量有更高的要求?
-
分析企业对IT安全的需求;
-
分析企业IT采用技术的情况;
-
分析企业目前IT业务面临最大的挑战和问题。
2、组织和人员安排
CMDB如此的重要,CMDB建设的组织和人员到底应该如何安排?根据CMDB落地比较好的企业,我们推荐CMDB建设的发起人应该是由IT运维总监或IT服务部门发起。
CMDB建设的负责人建议有一个人专门负责CMDB平台的建设及推广,并且制定CMDB对应的流程和规范,同时建议CMDB团队应该是由各领域技术团队和CMDB负责人组成的一个小组。
CMDB的组织和人员也需要根据IT业务发展的不同阶段进行动态的变化和调整。
3、工具平台建设
CMDB建设目前是以下三种现状混合的状态,根据我们的客户调研,我们认为选择“动态的CMDB”解决方案才是满足中大型企业未来业务需求的CMDB。
-
基础CMDB建设:
谁说用Excel构建的配置信息表就不叫CMDB?只要能满足IT业务的需求、维护方便、具备运维人员都遵守的流程,它就是合适的CMDB;
-
流程CMDB建设:
CMDB的建设仅仅是为了满足发布、变更等流程的需求,这样的CMDB建设难度是非常大的,维护准确的配置信息将会耗费运维人员很多的精力;
-
动态CMDB建设:
利用自动化的运维工具,构建动态的CMDB,并且能够实现配置管理服务的提供;动态的核心是能够自动的发现配置对象和配置信息,能够按照用户设定的规则进行配置信息入库,并且具备很好的开放能力,把CMDB作为服务开放给其他系统进行使用。
三、CMDB的价值
1、CMDB和CMS服务的技术价值
我们用SOA的技术理念去理解CMDB带来的技术价值:
如果没有构建CMDB服务,可能存在以下的情形,我需要修改一个配置信息,可能各个系统都要去做修改,并且还极容易导致配置数据的不准确;
如果构建了统一的CMDB,如下图所示:
2、CMDB和CMS的业务价值
CMDB是IT现实世界在数字世界的抽象,通过这个抽象,我们能够基于CMDB构建企业IT运营管理的各种场景,如更高效的发布系统、甚至未来我们实行AIOPS,CMDB仍然是基础;这就好像,我们把现实中的地理位置,抽象成为地图,我们可以结合GPS实现导航、送餐等便捷服务,甚至未来实现智慧城市都和电子地图有非常紧密的关系。
总之,中大型的企业构建一个“动态CMDB”,一定要从自己的IT业务需求出发,合理的安排人员、选择技术先进的技术平台就可以实现;另外,完善的CMDB不是通过一个项目,2~3个月就构建出来的,CMDB要具备较强的灵活性,方便管理人员进行扩展,通过持续的优化和改善才能够达到目标;CMDB本身不具备很高的业务价值,只有它的数据被各种运维工具消费才会产生更高的业务价值。