CMDB到底如何建设?

Wesley13
• 阅读 434

CMDB到底如何建设?

随着自动化运维的火热,CMDB建设项目不断的涌现,正是因为CMDB就是自动化运维的基石。关于CMDB的概念、定位、价值、与周边的关系、企业面临的痛点等,这里不做阐述,总结来说就是CMDB很基础、很重要又很复杂。本文直入主题,主要讲述CMDB具体应该如何建设,内容包括建设目标、框架和指引。

CMDB的建设目标

CMDB的本质是建数据,而数据就必须是准确和可用的才有价值。因此CMDB最核心的建设目标是建立一套高质量的IT资源配置主数据。

CMDB的建设框架

我们利用一个分层框架,来对整个CMDB的实施过程进行思考和分析。如下图:

CMDB到底如何建设?

  • 框架从纵向来看分为五层,包括管理域、管理协同、制品协调、生产域和工具,管理域定义了CMDB相关的管理工作。生产域定义了CMDB相关的执行工作,底层工具是对执行的支撑,管理和制品协同是管理和执行之间的衔接扭转;
  • 横向是一个时间维度,可以清晰的看到整个CMDB的生产过程是怎么样的。其中模型设计、数据梳理及初始化、CMDB维护体系的建立和推行是过程的重点环节,完整准确的数据是后续做数据分析和可视化、外部系统集成消费的前提。

CMDB的建设指引

一、模型设计

CMDB到底如何建设?

模型设计CMDB建设的重要环节,是CMDB的骨架。它是一个抽象建模的过程,并且应该基于企业IT资源现状以及消费诉求而进行抽象。具体过程如下:

1)环境调研:对企业的组织架构、IT资源类型和规模、IT流程等进行调研,充分了解企业IT资源的现状。

2)模型设计:根据调研的情况进行设计,内容包含模型的对象、模型的属性、模型的关系,这些我们称之为元数据。在构建元数据的过程中,我们遵循以下原则:

  • 以应用为中心原则,围绕应用自上而下的进行详细设计;
  • 最小化设计原则,即只实现当前运维场景所需要的最小模型集合,避免建模的颗粒度失去控制(强调没有消费场景的对象/属性/关系,不应该存储);

3)模型评审:模型设计好后,需形成规范文档。以便和领导、各个领域的运维管理员进行最终沟通评审,目的是形成一份大家都认可的模型设计,为后续CMDB推行打下基础。

4)模型建立:模型设计评审通过后,我们就可以在CMDB工具中进行建模。因此,CMDB的工具必须具备足够的灵活性,能够根据企业不同的环境灵活定义模型对象、属性及关系。

二、 数据的梳理及初始化

CMDB到底如何建设?

设计好的模型在CMDB工具中建立之后,下一步就是进行数据的梳理和初始化。注意的是数据梳理应该以应用为单位进行,即每次梳理一个或多个应用系统相关的配置数据进行录入,同时沉淀梳理的过程方法,以便扩展到其它应用,是一个1到N的过程。以应用为单位梳理的好处在于:

  • 可以快速的沉淀出整体的梳理方法,一个应用弄好,其它应用都可以参考复制;
  • 可以快速验证模型的设计是否合理;
  • 可以快速的产出效果,易于展示和汇报;

三、维护体系建立

CMDB到底如何建设?

数据质量的保证关键在于数据维护体系的建立、数据的消费,自动化和数据校验等技术手段仅是辅助作用。数据维护体系主要包含两方面:

a)角色定义

指定一个配置经理角色,配置经理是对CMDB的整体负责。包括流程、模型、角色权限的定义和维护。

b)流程定义

各配置项的入库流程;

各配置项的变更流程,配置项的每个属性值都必须理清楚其来源及流程;

各配置项的删除流程。

数据维护体系的是CMDB建设的重点和难点,是配置数据质量的重要保证手段。此环节因涉及到企业各方的参与,单纯由乙方实施人员推动是比较困难的,需要和甲乙双方一起设计好,并推动落实。

四、系统集成

系统集成是CMDB的最后一个环节,依赖CMDB工具提供良好的开放接口。因为CMDB核心价值是将配置数据供给外部系统集成消费,所以必须提供丰富、易用的API接口,方便与第三方系统低成本的集成。

高质量的数据是CMDB建设的终极目标,而只有把其骨架(模型)构建好,并注入灵魂(维护与消费),才能让CMDB真正的活起来

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
CMDB到底如何建设?
!(https://oscimg.oschina.net/oscnet/8bf091e5bbea12b6a9b2dca3c6a37d9b0e5.gif)点击蓝字关注我们随着自动化运维的火热,CMDB建设项目不断的涌现,正是因为CMDB就是自动化运维的基石。关于CMDB的概念、定位、价值、与周边的关系、企业面临的痛点等,这里不做阐述,总结来说就是C
Stella981 Stella981
2年前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有time,和datetime两个,本文先说time模块。关于时间戳的几个概念时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。时间元组(struct_time),包含9个元素。 time.struct_time(tm_y
Stella981 Stella981
2年前
DOIS 2019 DevOps国际峰会北京站来袭~
DevOps国际峰会是国内唯一的国际性DevOps技术峰会,由OSCAR 联盟指导、DevOps时代社区与高效运维社区联合主办,共邀全球80余名顶级专家畅谈DevOps体系与方法、过程与实践、工具与技术。会议召开时间:2019070508:00至2019070618:00结束会议召开地点:北京主办单位:DevOps
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Nacos v0.7.0:对接CMDB,实现基于标签的服务发现能力
!(https://oscimg.oschina.net/oscnet/46fa65776788e1e3af4ca4689de733377a5.jpg)Nacos近期发布了0.7.0版本,该版本支持对接第三方CMDB获取CMDB数据、使用Selector机制来配置服务的路由类型、支持单机模式使用MySQL数据库、上线Node.js客户端,并修复了一些
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
4个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这