文档章节

自动化运维的基石:CMDB

优云双态运维
 优云双态运维
发布于 2016/06/20 14:03
字数 2078
阅读 207
收藏 2

 

CMDB是什么?
 

运维百花齐放繁荣景象的同时,也让碎片化问题产生;每个人都想整合运维平台,但是往往事与愿违。

 

 

wKiom1dg_FXRN4GoAABaf57MyPA717.jpg

 

CMDB就像一个人的大脑核心,是一个信息协调库,其存储的资料是协调身体完成各种复杂运动的信息来源。

 

我心中的CMDB

 

. 碎片整合

面向运维工具的碎片化场景,是盘活整个运维管理的数据核心

. 元数据库

提供运维活动的基础元数据,是唯一可信的运维配置数据服务

. 场景驱动

为运维联动提供数据驱动,可协调工具来完成各类自动化场景

 wKioL1dg_Wiz-sUwAABeT_eO5U4124.jpgwKioL1dg_WmSJiEtAABQIZBZHzM652.jpg

自动扩容+自动监控

 

 

CMDB如何建设?

 

痛点现象与对策 I 模型建不好

存在的问题:

. 建模粒度失去控制

粒度若建得太细,连网线、内存条都变成配置项,最后CMDB中存储的70%数据没有作用,只是做了大量无用功。

. 缺少行业实践参考

国内很多时候都是根据BMCHP等模型来建立一个模型库,但实际上老外的思路与国人迥异,往往会做出过于复杂的模型体系。

. 模型调整太笨重

使用关系型数据库,模型中每一个类型的属性都是一个列,最后调整总是要动用研发,完成一次调整需要2天的时间,而这种调整在数据补充阶段,往往要经常进行,耗时耗力。

 

我们怎么干的管理

 

. 目标驱动

持续迭代的方式推进,只实现当前目标需要的最小模型集合。建议不要使用传统软件研发大瀑布模式来建设模型,而是使用持续迭代的方式,每次都设定一下较小的目标,按这个目标去建立刚好满足要求的模型库。

. 行业参考

寻找和借鉴行业最佳实践。寻找行业内的最佳实践,去学习他们的模型,尤其也是学习其演进路线,切不可一口吃成一个胖子。

 wKiom1dg_Fawzuf1AABQVKlN7EY748.jpg



 

我们怎么干的技术

 

第一步,数据类型标签化 ,支持多重身份

传统的CMDB系统,往往使用科学分类法的思路,按界、门、纲、目等树型结构去严格划分,但这样给建模带来了非常巨大的挑战,因为一定有一些数据四不像。比如虚拟机,到底是划到传统的计算设备资源下,还是划到虚拟资源下?所以我们提议使用数据类型标签化的方式来进行分类。比如虚拟机,我可以同时打上计算设备与虚拟资源这样两个标签。

第二步,使用关系建立联系 ,分清关系与属性

使用弱类型约束的关系,而不是属性。因为属性往往要提前建模,但实际上很多配置项在建立时,是想不清楚它可能与哪些配置项产生联系的,所以使用关系可以更轻量化。

第三步,易于调整模型 ,支持动态属性

CMDB系统的技术设计过种中,要注重使用能快速调整的存储模型,比如使用支持scheme调整友好的数据库,或postgresql这样支持json扩展字段的数据库,可以实现动态属性。

 

痛点现象与对策 II数据不准确

 

存在的问题:

. 人工录入数据、准确率低

. 没有及时维护、数据过期

. 数据来源多、存在冲突

 

我们怎么干的管理

 

. 确定地位

确定CMDB作为唯一数据源,若上下数据流不准确,应从CMDB开始修正

. 职权划定

自定原则,例如谁提供,谁维护

. 定期审查

从制度上需要确定团队能定期对CMDB中的数据进行审计,寻找错误数据并改进问题。如同一些仓储管理,需要定期核查帐面与实际库存,CMDB也需要定期审查数据与生产环境的实际符合度。

 wKiom1dg_FahsZCXAABJ3T2p3LU698.jpg

我们怎么干的技术

 

. 支持协同

配置变更热点,订阅我关注的配置项变更。每个人都可以查看他人的数据足迹,配置项也允许按变更次数或者被使用次数,作成热点图,最后也应允许订阅我关心的配置项,这样可以在配置项变更时,相关负责人可以及时收到通知。

. 记录历史

允许随时查询数据的变迁历史,并可回溯基线。在每一次数据入库后,都能记录数据的变更历史,以便可以随时对比版本变更的内容,以及在纠错时回溯基线。

. 支持调和

利用策略、规则实现多数据源的调和。数据来源过多,也会导致出现数据冲突。在数据出现冲突时,能显示不同数据来源的冲突,并支持人为调和,同时CMDB系统也应学习这些人为的调和依据,可以形成自动化调和。

. 依赖工具

在数据的采集和补充上,以使用监控与自动化工具为主,它们可以减少大量的录入工作,并且避免人为的错误。

 

痛点现象与对策 III数据不好用

 

存在的问题:

. 不清楚有哪些使用场景

经常有这样的情形:为了CMDBCMDB,导致最后CMDB只是当资源台帐使用,最常使用的功能也仅仅变成了EXCEL导入与导出。而实际上,我们需要建设的是一个服务型的CMDB

. 系统开放性差

CMDB开放性差,往往只是提供了读写API,把CMDB当成一个普通的数据库来使用。

 

我们怎么干的管理

 

1.   积极寻找场景,消费数据,让数据产生价值。

2.   影响分析:使用消息盘,做配置变更演练,做故障演练。

3.   自动监控:当新增一些配置项时,可以通知到监控系统,自动产生监测策略。

4.   自动排障:在监测到故障时,可以自动排障。

5.   容量管理:在配置库中为应用记录扩容收容阈值,以便自动伸缩扩容。

6.   物联运维:CMDB中的数据,在现在的移动终端场景下,有特别好的消费场景,就是做二维码、RFID,并与手机结合,能在机房巡检与排障中产生很大的便利。

 

我们怎么干的技术

 

1.   关系推导:提供从一个配置项按关系提炼其它配置项的能力。

2.   全文检索:能便捷的使用关键字,搜索符合的配置项。

3.   变更通知:配置项变更不但提供对人的通知,更要利用MQ,提供对运维工具的通知,以触发一些自动化场景。

4.   事务控制:允许通过API建立沙箱,整个沙箱中的配置项是一起提交与一起回滚,这特别适用于应用的上线。

5.   版本对比:允许查询一个配置项的历史数据与变更情况。

6.   WEB集成:除了API,还应该提供应用间的界面集成还应该提供应用间的界面集成还应该提供应用间的界面集成。

wKioL1dg_WnBqqZ3AABggxhWU50778.jpg
 

 

CMDB成功要素

 

能消费起来的CMDB才是好CMDB

模型:定义了最小可用的CMDB模型结构与规则

数据:正确地维护了CMDB各类数据及其关系

API提供了开放友好的API服务

场景:利用CMDB的数据玩转各种运维场景

 

CMDB = 模型 + 数据 + API +场景

 

wKiom1dg_FXDTp4hAAAl3OBRafk150.jpg
▲作者蒋君伟

 任职广通软件新一代敏捷运维品牌优云,旗下包含CMDB、监控中心、操作中心、流程中心、度量中心一体化的一库四中心敏捷运维产品线,同时支持在线服务与私有部署。

© 著作权归作者所有

共有 人打赏支持
优云双态运维
粉丝 4
博文 85
码字总数 110714
作品 0
杭州
程序员
私信 提问
浅谈运维自动化的那些事儿

前言 运维管理兜兜转转十几余载,大家的运维管理再也不是小米加×××、人工费力拉线扛服务器的传统时代,如你所知,这些年大家张口闭口谈的都是运维自动化如何如何。一千个读者就有一千个哈...

勤智运维
2017/12/05
0
0
2017 Gdevops成都站干货,拿走不谢!

src="https://mmbiz.qlogo.cn/mmbizjpg/tibrg3AoIJTvHHwGoQE9BW3oSPq52uYzQDcSfwFqBibhzK7tRVvRqmchlavrPRG9msuRvnBHRsL0Q2bEPDyq3Efw/0?wx_fmt=jpeg" data-ratio="0.52890625" data-s="300,......

DBAplus社群
2017/05/15
0
0
2017 Gdevops成都站干货,拿走不谢!

src="https://mmbiz.qlogo.cn/mmbizjpg/tibrg3AoIJTvHHwGoQE9BW3oSPq52uYzQDcSfwFqBibhzK7tRVvRqmchlavrPRG9msuRvnBHRsL0Q2bEPDyq3Efw/0?wx_fmt=jpeg" data-ratio="0.52890625" data-s="300,......

DBAplus社群
2017/05/15
0
0
上海缔塔科技有限公司柳家宁:传统IT运维的变革之旅

9月8日,由上海市国资委指导,上海市国有资产信息中心主办,畅享网提供媒体支持的走进太平洋保险集团——信息化系统运维专场活动沙龙在太平洋保险大厦圆满举行。沙龙活动针对信息化系统运维工...

玄学酱
2018/03/02
0
0
如何针对性破解自动化运维落地的18个关键问题?

作者介绍 不久前,我做过一个关于企业自动化运维落地经验及工具对比的分享和介绍,其中很多场景是我根据实践经验对一线互联网公司和传统行业的做法进行的对比阐述:如何将自动化运维形成一个...

王洋
2018/10/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 升级中的一些常见问题

升级的时候遇到了问题了吗? 如果你想尝试重新进行升级的话,你需要首先重新恢复老的备份。不要尝试再次对 Confluence 进行升级或者在升级失败后重新启动老的 Confluence。 在升级过程中的一...

honeymoose
今天
2
0
C++随笔(四)Nuget打包

首先把自己编译好的包全部准备到一个文件夹 像这样 接下来新建一个文本文档,后缀名叫.nuspec 填写内容 <?xml version="1.0"?><package xmlns="http://schemas.microsoft.com/packaging/201......

Pulsar-V
今天
2
0
再谈使用开源软件搭建数据分析平台

三年前,我写了这篇博客使用开源软件快速搭建数据分析平台, 当时收到了许多的反馈,有50个点赞和300+的收藏。到现在我还能收到一些关于dataplay2的问题。在过去的三年,开源社区和新技术的发...

naughty
今天
3
0
Python3的日期和时间

python 中处理日期时间数据通常使用datetime和time库 因为这两个库中的一些功能有些重复,所以,首先我们来比较一下这两个库的区别,这可以帮助我们在适当的情况下时候合适的库。 在Python文...

编程老陆
今天
2
0
分布式面试整理

并发和并行 并行是两个任务同时进行,而并发呢,则是一会做一个任务一会又切换做另一个任务。 临界区 临界区用来表示一种公共资源或者说是共享数据,可以被多个线程使用,但是每一次,只能有...

群星纪元
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部