作者:嘉维蓝鲸产品总监,贺勇

针对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本身不具备很高的业务价值,只有它的数据被各种运维工具消费才会产生更高的业务价值。​​​​

 
 
 

浅谈中大型企业CMDB的建设的更多相关文章

  1. 庞玉栋:浅谈seo优化对于网站建设的重要性

    根据最近做SEO优化经验而写  写的也都是我的方法 大神勿喷 SEO:英文Search Engine Optimization缩写而来, 中文意译为搜索引擎优化 如果你连个网站都没有那就点这里:如何拥 ...

  2. 浅谈 Docker 安全合规建设

    通过阅读网上帖子及浏览相关信息,大家可能会产生一种错觉:Docker 安全性不足,对 Docker 导入生产环境持保守态度.不过实际情况是,虽然我们需要对容器的安全性高度关注,但只要使用得当,完全可以 ...

  3. 浅谈Java中的equals和==(转)

    浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str ...

  4. 浅谈Linux中的信号处理机制(二)

    首先谢谢 @小尧弟 这位朋友对我昨天夜里写的一篇<浅谈Linux中的信号处理机制(一)>的指正,之前的题目我用的“浅析”一词,给人一种要剖析内核的感觉.本人自知功力不够,尚且不能对着Lin ...

  5. 浅谈Java中的对象和引用

    浅谈Java中的对象和对象引用 在Java中,有一组名词经常一起出现,它们就是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然.今天我们就来一起 ...

  6. 浅谈Java中的equals和==

    浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: String str1 = new String("hello"); String str2 = ...

  7. 转【】浅谈sql中的in与not in,exists与not exists的区别_

    浅谈sql中的in与not in,exists与not exists的区别   1.in和exists in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表 ...

  8. 浅谈iOS中的userAgent

    浅谈iOS中的userAgent   User-Agent(用户代理)字符串是Web浏览器用于声明自身型号版本并随HTTP请求发送给Web服务器的字符串,在Web服务器上可以获取到该字符串. 在公司产 ...

  9. 浅谈JavaScript中的闭包

    浅谈JavaScript中的闭包 在JavaScript中,闭包是指这样一个函数:它有权访问另一个函数作用域中的变量. 创建一个闭包的常用的方式:在一个函数内部创建另一个函数. 比如: functio ...

随机推荐

  1. webstorm 介绍

    最新版2017 破解 注册时,在打开的License Activation窗口中选择“License server”,在输入框输入下面的网址: http://idea.iteblog.com/key. ...

  2. WebDriver与文件系统

    1.屏幕截屏操作:其接口函数是TakesScreenshot.该功能是在运行测试用例的过程中,需要验证某个元素的状态或者显示的数值时,可以将屏幕截取下来进行对比:或者在异常或者错误发生的时候将屏幕截取 ...

  3. 常见web UI 元素操作 及API使用

    1. 链接(Link) // 找到链接元素,这个方法比较直接,即通过超文本链接上的文字信息来定位元素,这种方式一般专门用于定位页面上的超文本链接 WebElement link1 = driver.f ...

  4. spring重要知识点总结

    一.面向切面编程 配置applicationContext.xml文件 <beans xmlns="http://www.springframework.org/schema/bean ...

  5. 七、UIViewController导航栏

    概述 上一节我们算是跟UIViewController打了个招呼,同时也表示我们正式介入iOS开发.本节我们将介绍UI界面的一个常用元素:导航栏. iOS为UIViewController提供了内置导 ...

  6. 13.C# 定义类成员

    1.定义字段 class MyClass { public int MyInt; } 字段可以用readonly修饰,表示该字段只能在构造函数中赋值,还可以用static表示该字段是静态字段 clas ...

  7. 关于12C中optimizer_adaptive_features参数介绍

    optimizer_adaptive_features参数在OLAP数据仓库环境中可以获得较好的效果,实际在重上传轻查询的OLTP系统上,可以关闭这项新功能. 其主要功能是为了在语句执行过程中实时收集 ...

  8. cookies增删改擦操作

    //判断是否存在名为aaa的cookie function hasSetCookie(name){ var strCookie = document.cookie; var arrCookie = s ...

  9. php中获取中文首字母程序代码

    年会抽奖,要求一等奖的中奖概率是0.12%,二等奖中奖概率是3%,三等奖中奖概率是12%,其他中奖概率是都是谢谢惠顾. <?php /** * 抽奖 * @param int $total */ ...

  10. vim 命令学习(高级篇)

    [1]打开文件方式 (1)vim +n filename 作用:打开文件,并定位到第n行 例如:vim +103 2019-02-26-errorrepeat.txt 效果:打开2019-02-26- ...