浅谈中大型企业CMDB的建设
作者:嘉维蓝鲸产品总监,贺勇
针对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的建设的更多相关文章
- 庞玉栋:浅谈seo优化对于网站建设的重要性
根据最近做SEO优化经验而写 写的也都是我的方法 大神勿喷 SEO:英文Search Engine Optimization缩写而来, 中文意译为搜索引擎优化 如果你连个网站都没有那就点这里:如何拥 ...
- 浅谈 Docker 安全合规建设
通过阅读网上帖子及浏览相关信息,大家可能会产生一种错觉:Docker 安全性不足,对 Docker 导入生产环境持保守态度.不过实际情况是,虽然我们需要对容器的安全性高度关注,但只要使用得当,完全可以 ...
- 浅谈Java中的equals和==(转)
浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str ...
- 浅谈Linux中的信号处理机制(二)
首先谢谢 @小尧弟 这位朋友对我昨天夜里写的一篇<浅谈Linux中的信号处理机制(一)>的指正,之前的题目我用的“浅析”一词,给人一种要剖析内核的感觉.本人自知功力不够,尚且不能对着Lin ...
- 浅谈Java中的对象和引用
浅谈Java中的对象和对象引用 在Java中,有一组名词经常一起出现,它们就是“对象和对象引用”,很多朋友在初学Java的时候可能经常会混淆这2个概念,觉得它们是一回事,事实上则不然.今天我们就来一起 ...
- 浅谈Java中的equals和==
浅谈Java中的equals和== 在初学Java时,可能会经常碰到下面的代码: String str1 = new String("hello"); String str2 = ...
- 转【】浅谈sql中的in与not in,exists与not exists的区别_
浅谈sql中的in与not in,exists与not exists的区别 1.in和exists in是把外表和内表作hash连接,而exists是对外表作loop循环,每次loop循环再对内表 ...
- 浅谈iOS中的userAgent
浅谈iOS中的userAgent User-Agent(用户代理)字符串是Web浏览器用于声明自身型号版本并随HTTP请求发送给Web服务器的字符串,在Web服务器上可以获取到该字符串. 在公司产 ...
- 浅谈JavaScript中的闭包
浅谈JavaScript中的闭包 在JavaScript中,闭包是指这样一个函数:它有权访问另一个函数作用域中的变量. 创建一个闭包的常用的方式:在一个函数内部创建另一个函数. 比如: functio ...
随机推荐
- 【WordCount】实现(重做)
Gitee项目地址: https://gitee.com/LIUJIA6/wordcount_implementation 需求说明: WordCount的需求可以概括为:对程序设计语言源文件统计字符 ...
- Cocoa 框架 For iOS(一) 框架的介绍,Objectivie-C运行时能力的解析等 (转载)
http://blog.csdn.net/totogo2010/article/details/8081253 Cocoa框架是iOS应用程序的基础,了解Cocoa框架,对开发iOS应用有很大的帮助. ...
- PHP日常模拟业务的小工具
随机生成姓名 public function getChar($num=2) // $num为生成汉字的数量 { $first = array('赵','钱','孙','李','周','吴','郑', ...
- Java-idea-mybatis plugin插件使用
方案一.免费插件[推荐] Free Mybatis plugin 方案二.破解插件 安装路径 File→Setting→plugin→Install plugin 搜索需要插件即可 搜索Mybati ...
- java框架之SpringCloud(6)-Zuul路由网关
介绍 Zuul 包含了对请求的路由和过滤两个最重要的功能: 其中路由功能服务将外部请求转发到具体的微服务实例上,是实现外部访问统一入口的基础.而过滤的功能则负责对请求的处理过程进行干预,是实现请求校验 ...
- Linux常用总结
CentOS 7.0中一个最主要的改变,就是切换到了systemd.它用于替代红帽企业版Linux前任版本中的SysV和Upstart,对系统和服务进行管理.systemd兼容SysV和Linux标准 ...
- 利用python脚本(re)抓取美空mm图片
很久没有写博客了,这段时间一直在搞风控的东西,过段时间我把风控的内容整理整理发出来大家一起研究研究. 这两天抽空写了两个python爬虫脚本,一个使用re,一个使用xpath. 直接上代码——基于re ...
- OfficeOpenXml:World、Excel导出导入库
基础库:EPPlus 根据模版:OfficeOpenXml.Entends
- C语言进阶之路(二)----字符串操作常见模型
1.while模型 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #includ ...
- 微信小程序scroll-view不能实现下拉刷新
一般在列表展示页面,会使用到上拉加载和下拉刷新功能,在scroll-view中有bindscrolltolower事件,可以实现上拉加载功能,但是却没法实现下拉刷新. 如需同时使用两种功能,解决步骤如 ...