自动化运维的基石 CMDB

本贴最后更新于 2293 天前,其中的信息可能已经沧海桑田

更多精彩,请移驾『基础技术』继续阅读原文
http://www.jichujishu.com/articles/2018/07/12/1531364834034.html

CMDB 是什么?

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

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

我心中的 CMDB

.碎片整合

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

.元数据库

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

.场景驱动

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

自动扩容 + 自动监控

CMDB 如何建设?

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

存在的问题:

.建模粒度失去控制

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

.缺少行业实践参考

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

.模型调整太笨重

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

我们怎么干的–管理

.目标驱动

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

.行业参考

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

我们怎么干的

技术

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

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

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

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

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

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

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

存在的问题:

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

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

.数据来源多、存在冲突

我们怎么干的–管理

.确定地位

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

.职权划定

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

.定期审查

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

我们怎么干的

技术

.支持协同

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

.记录历史

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

.支持调和

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

.依赖工具

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

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

存在的问题:

.不清楚有哪些使用场景

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

.系统开放性差

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

我们怎么干的–管理

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

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

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

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

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

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

我们怎么干的–技术

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

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

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

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

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

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

CMDB

成功要素

能消费起来的 CMDB 才是好 CMDB!

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

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

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

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

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

  • CMDB
    1 引用
  • 运维

    互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

    150 引用 • 257 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • OpenCV
    15 引用 • 36 回帖 • 7 关注
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 384 回帖 • 9 关注
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    557 引用 • 675 回帖 • 1 关注
  • 微服务

    微服务架构是一种架构模式,它提倡将单一应用划分成一组小的服务。服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在独立的进程中。服务于服务之间才用轻量级的通信机制互相沟通。每个服务都围绕着具体业务构建,能够被独立的部署。

    96 引用 • 155 回帖 • 3 关注
  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    108 引用 • 295 回帖
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    495 引用 • 931 回帖
  • 叶归
    8 引用 • 36 回帖 • 17 关注
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    174 引用 • 538 回帖
  • Access
    1 引用 • 3 回帖 • 2 关注
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 758 关注
  • HHKB

    HHKB 是富士通的 Happy Hacking 系列电容键盘。电容键盘即无接点静电电容式键盘(Capacitive Keyboard)。

    5 引用 • 74 回帖 • 504 关注
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 400 关注
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 688 关注
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    24 引用 • 241 回帖
  • Pipe

    Pipe 是一款小而美的开源博客平台。Pipe 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    133 引用 • 1124 回帖 • 107 关注
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    6 引用 • 15 回帖 • 10 关注
  • AWS
    11 引用 • 28 回帖 • 7 关注
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    168 引用 • 597 回帖
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    345 引用 • 747 回帖
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    107 引用 • 127 回帖 • 336 关注
  • sts
    2 引用 • 2 回帖 • 230 关注
  • Follow
    4 引用 • 12 回帖 • 12 关注
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用
  • Dubbo

    Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是 [阿里巴巴] SOA 服务化治理方案的核心框架,每天为 2,000+ 个服务提供 3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

    60 引用 • 82 回帖 • 613 关注
  • Netty

    Netty 是一个基于 NIO 的客户端-服务器编程框架,使用 Netty 可以让你快速、简单地开发出一个可维护、高性能的网络应用,例如实现了某种协议的客户、服务端应用。

    49 引用 • 33 回帖 • 34 关注
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    6 引用 • 26 回帖 • 544 关注
  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    35 引用 • 200 回帖 • 29 关注