CMDB经验分享之 – 剖析CMDB的设计过程

作为IT管理的核心,CMDB逐渐成为系统管理项目实施的热点。在很多的案例中,由于忽视了CMDB的因素,ITIL的深入应用受到了极大的挑战。同时,由于CMDB是IT管理信息的集中,CMDB也是一个重要的工具和手段。
在CMDB落地过程中需要注意的是,CMDB项目不是一个简单的软件安装过程,而是一个咨询、培训、实施、优化密切结合的综合过程,涉及到平台工具采购、咨询服务、实施服务、培训、甚至扩展开发等内容。同时,一个成功的CMDB项目不能一蹴而就,而是一个循序渐进、持续发展的过程,需要企业后续的投入和不断改进服务。
广通软件在2004年就开始ITIL落地的尝试,并独立自主持续研发积累,形成CMDB为核心的运维解决方案,这两年为海关总署、中国航信、铁路总公司、浙商银行、黑龙江农信等政企用户,提供了专业的CMDB咨询设计及落地实施服务,在整个过程中,笔者深深的体会到,CMDB项目的成功,重中之重在于CMDB模型的顶层设计,下面针对CMDB的设计过程进行深入剖析。
·了解企业政策
企业政策,是企业管理的行动指南和共同纲领,它使企业在认识上形成统一,减少了不必要的沟通成本,并使企业在流程执行上事半功倍。对于构建CMDB而言,主要有以下两类政策需要重点关注:
·宏观政策:主要是涉及IT部门层面指导性、方向性的政策,其目标是在IT部门自上而下形成统一认识,从而有利于项目的成功。
·运营政策:主要涉及到流程目标、人员、输入、输出、活动以及KPI(关键绩效指标)等各要素以及流程之间相互协调、信息交互方面的指导原则,其目标是使流程能够在政策的指引下稳健、有效地执行。
·确定配置项管理范围
·确定CI宽度和深度,建议遵循如下原则:
·企业IT服务的需要(为什么要实施CMDB)
·相关法案和法规对IT管理的需求
·IT库存和资产管理的需求
·服务目录的需求
·企业IT服务管理的水平(依据目前的管理水平能做到什么程度)
·有没有制定与配置项相关的管理规范和制度
·有多少人可以参与管理和维护
·有没有一套可落地的变更流程来对CI项必要的维护
·企业CMDB运营管理成本(后期能够投入多大的人力成本去维护和管理)
·为保障CI项的准确性和表单数据的鲜活性,配置项维护的人力成本
·部门间的内部沟通成本
·确定CI生命周期
ITIL规范认为,CI的生命周期是从CI的接收到最终报废退出的全过程,但在具体实施过程中,由于流程管理主体的差异化,不同项目对CI生命周期的划分和定义会有所不同,主要针对如下两个问题的确定。
·何时生?(识别CI并记录到CMDB)
·何时灭?(对CI记录进行删除)
·构建符合用户的CI模型分类
定义配置项属性(一个原则+一套结构)
·一个原则:“精而不多”。如果我们将大量的配置项或属性纳入到CMDB中,那么将存在大量信息需要进行维护,这无疑增加了成本。反之,如果属性过少,维护工作虽然减轻了,但是CMDB的有效性就大大降低了。因此,“精而不多”就是我们的平衡点,这个‘精’主要体现在对企业有实际意义。
·一套结构:我们通常可以把一个CI的属性分为五大来源
模型分类设计样例:
确定CI项的属性

针对模型中的每个CI的属性项进行调研,根据用户实际需求进行调整、扩充或修改,包括:属性项采用什么类型比较合理(易于展现和维护),需要用户提供哪些资料,例如:字典、默认值等信息。此过程同样遵循“精而不多”的原则。
属性设计样例:
定义CI项之间的关系

所有配置项都有存在的意义,而他们之间的内在关系是CMDB的重要价值体现之一,关系明确了,运维人员就能准确的找到相关实体资源,当发生故障时能够快速定位故障来源及其影响范围,从而迅速的解决各种隐患。
定义配置项关系,一般可使用两种方法:
·自上而下——通常要求企业先明确对外提供的服务目录,然后基于服务目录按照“业务服务→IT服务→IT系统→IT组件”的顺序进行梳理
·自下而上——则是逆流而上,先从对内部IT组件关系开始梳理,然后逐步将IT组件映射到IT服务
CMDB配置项关系设计样例(以某个业务系统为例):

设计图中,完整的展现了一个业务系统所有与之相关的配置项,分析如下:
·逻辑关系——可以了解到,业务系统使用什么中间件、数据库用户、实例以及表空间,运行在哪个操作系统上,使用了什么IP地址等
·物理关系——可以了解到,业务系统安装在哪台PC服务器上,PC服务器是通过哪台交换机的什么端口连接网络的,同时PC服务器与存储如何连接的,PC服务器存放在哪个机柜和机房,以及PC服务器是通过哪个断路器和UPS供电的等
以上信息对于运维人员来说,能够更加清晰的掌握业务系统正常运转的支撑点和来龙去脉,从而做到掌控全局。
结束语:
CMDB的设计过程是一个复杂且与用户交互性非常强的过程,在此过程中需要充分让用户理解CMDB的概念以及相关原则,需要我们将后期维护CMDB可能带来的风险和成本跟用户做好充分的沟通,让用户去逐一去斟酌、考虑和规划,从而避免CMDB项目的失败,同时可以帮助用户优化和完善CMDB管理制度,定义人员角色,并结合变更流程来保持配置的准确性和鲜活性,真正帮助用户持续做好CMDB的维护,发挥CMDB应有的价值。
作者简介:本文作者谢亚涛,任职优云软件:秉承devops的理念,从监控、到应用体验,到自动化持续交付,全栈运维解决方案服务商。
CMDB经验分享之 – 剖析CMDB的设计过程的更多相关文章
- 【老司机经验】CC2530&STM8S105二合一嵌入式学习板设计思路与经验分享
CC2530&STM8S105二合一嵌入式学习板设计思路与经验分享 1.缘起 这些年来一直在其他公司的实验箱和别人的开发板上进行教学与开发工作,总是觉得功能设计不那么合意.心里突然冒出个 ...
- 领域驱动设计(DDD)的实践经验分享之ORM的思考
原文:领域驱动设计(DDD)的实践经验分享之ORM的思考 最近一直对DDD(Domain Driven Design)很感兴趣,于是去网上找了一些文章来看看,发现它确实是个好东西.于是我去买了两本关于 ...
- 领域驱动设计(DDD)的实践经验分享之持久化透明
原文:领域驱动设计(DDD)的实践经验分享之持久化透明 前一篇文章中,我谈到了领域驱动设计中,关于ORM工具该如何使用的问题.谈了很多我心里的想法,大家也对我的观点做了一些回复,或多或少让我深深感觉到 ...
- SOA架构设计经验分享—架构、职责、数据一致性
阅读目录: 1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DD ...
- [转]SOA架构设计经验分享—架构、职责、数据一致性
阅读目录: 1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DD ...
- 【转】SOA架构设计经验分享—架构、职责、数据一致性
1.背景介绍 最近一段时间都在做系统分析和设计工作,面对的业务是典型的重量级企业应用方向.突然发现很多以往觉得很简单的问题变得没有想象的那么容易,最大的问题就 是职责如何分配.论系统架 ...
- (转)CMOS Sensor的调试经验分享
CMOS Sensor的调试经验分享 我这里要介绍的就是CMOS摄像头的一些调试经验. 首先,要认识CMOS摄像头的结构.我们通常拿到的是集成封装好的模组,一般由三个部分组成:镜头.感应器和图像信号处 ...
- 关于启用 HTTPS 的一些经验分享(二)
转载: 关于启用 HTTPS 的一些经验分享(二) 几天前,一位朋友问我:都说推荐用 Qualys SSL Labs 这个工具测试 SSL 安全性,为什么有些安全实力很强的大厂家评分也很低?我认为这个 ...
- Expression Blend4经验分享:自适应布局浅析
今天分享一下Blend制作自适应分辨率布局的经验,大家先看下效果图: 这是一个标准的三分天下的布局,两侧的红色区域是背景区域,是用来干吗的呢,下面简单的分析一下,大家就明白了. 1.拿到一个项目,进行 ...
随机推荐
- Java Error: java.lang.UnsupportedClassVersionError: ...bad major version at offset=6
问题分析 报这个错误是指你的jar包或者class 的被编译的jdk版本比当前runtime的jdk版本高. 首先,确定你当前的运行版本: Java代码 Java -version java ve ...
- MathType编辑物理单位的方法
在用MathType编辑物理公式时,由于物理单位很多都是复合单位,所以在编辑时如果能够有这种复合单位直接使用的话,编辑效率就会大大提高.实际上这种想法在MathType中是可行的,MathType中也 ...
- Windows路径操作API函数学习
前言 在VC++开发过程中,经常需要用到一些路径操作,比如拼需要的文件路径,搜索路径中的内容等等.Windows提供了一套关于路径操作的API帮助我们更好的执行这些操作. 路径截断与合并API Pat ...
- js简单的弹出框有关闭按钮
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- PHP大小写是否敏感问题
一.大小写敏感 1. 变量名区分大小写 所有变量均区分大小写,包括普通变量以及$_GET,$_POST,$_REQUEST,$_COOKIE,$_SESSION,$GLOBALS,$_SERVER,$ ...
- NHibernate初学二之简单执行SQL及HQL、Linq
上篇文章简单介绍NHibernate之简单增删改查,本文将会简单介绍有关执行NHibernate的SQL.HQL及存储过程: 一:执行SQL语句实例,运用CreateSQLQuery方法 public ...
- mybatis由浅入深day01_5mybatis开发dao的方法(5.1SqlSession使用范围_5.2原始dao开发方法)
5 mybatis开发dao的方法 5.1 SqlSession使用范围 5.1.1 SqlSessionFactoryBuilder 通过SqlSessionFactoryBuilder创建会话工厂 ...
- org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFacto
控制台: 2016-4-1 16:32:06 org.hibernate.annotations.common.Version <clinit> 信息: Hibernate Commons ...
- POJ 1180 Batch Scheduling
BTW: 刚在图书馆借了本算法艺术与信息学竞赛. 我多次有买这本书的冲动, 但每次在试看之后就放弃了, 倒不是因为书太难, 而是写的实在是太差. 大家对这本书的评价很高, 我觉得多是因为书的内容, 而 ...
- json 数据分析
/* 健一健康头条 */ try { String url = "http://www.j1health.com/j1api.php/index/getJ1healthHotLists&qu ...