运维平台之CMDB系统建设
CMDB是运维的基础核心系统,所有的元数据和共享数据管理源,类似于业务中的账号平台的作用。本篇文章,我将从概念篇、模型篇、到实现与实施篇具体的进行阐述。
CMDB也称配置管理,配置管理一直被认为是 ITIL 服务管理的核心,因为其他所有流程均需要使用配置管理数据库 (CMDB)。在上篇的平台体系中,CMDB位于最底层的支持系统位置上,可见其作用。配置管理为什么起到核心的作用,这个地方不做逐一介绍,简单举个例子,比如说变更系统发起了一个部署请求,要部署某个版本到现网,部署完成之后,上层的变更系统会把变更的结果写到CMDB中,对配置进行归档;在某个机器down机,此时可以快速的知道该机器的具体用途,确定影响的业务;当机器需要重新恢复的时候,可以快速的根据CMDB中的信息进行恢复。
一、概念篇
1、配置管理和配置文件管理。
ITIL所讲的配置管理是从软件工程管理角度出发的,把一切对象都当做配置,比如说源代码、文档、人员、服务器甚至硬盘和内存等等。所以说他和业务程序的配置管理有着本质的不同,为了有效区分,我们又习惯说业务程序的配置管理叫配置文件管理。但又有着一定的联系,在ITIL中,业务程序的配置可能会以一个配置项存在,附属在应用程序上,具体什么是配置项后面再解释。
2、配置管理和资产管理
既然把一切资源对象都当做配置来看待,特别是服务器、机房、机柜等等,那他和我们的资产管理又有着什么样的不同呢?其实这两个系统的区别在很多时候大家都不是很清楚,会混为一谈。具体的区别我之前做过一个总结,如下:
在上图中,你把握核心的区别点就是导向,配置管理是面向业务管理,而非成本,这个会决定配置管理的粒度。当前如果业务非常简单,不需要对服务器端口进行管理,此时则不需要考虑纳入端口的管理,否则增加管理的代价。
3、配置项
配置项是指要在配置管理控制下的资产、人力、服务组件或者其他逻辑资源。从整个服务或系统来说,包括硬件、软件、文档、支持人员到单独软件模块或硬件组件(CPU、内存、SSD、硬盘等等)。配置项需要有整个生命周期(状态)的管理和追溯(日志)。对配置项的分类,我一般从逻辑资源和物理资源两个角度来分解,然后层次化分解,这个思路会让你特别清晰,不会混乱。
4、属性
一个配置项就是一个对象,有对象便有属性,属性是一个配置项的具体描述。比如说服务器这个配置项,他的具体描述有在哪个机房、哪个机柜的哪个位置、现在是否有业务运行、具体谁负责等等。在后面的模型篇里会对属性做全面的梳理,完成现实世界到模型世界的转换。另外配置项和属性可以转换,比如说IP地址,他肯定是一个资源对象存在。但是从服务器的角度来说,它作为一个属性存在,更准确的说是网卡的属性。
二、模型篇
我为什么把模型单独提取出来,因为它是CMDB建设的核心,缺少对业务的准确理解,则没法准确的提取配置项及其属性。在这个环节中,模型的核心职责,就是把配置项和属性逐条的梳理出来。本人在模型整理的时候,重点做了四个方面工作,然后形成规范手册。
1、配置管理系统的角色
可以简单分成几类角色,第一、应用运维,负责服务器上的业务信息维护;第二、基础运维,负责机房、机柜及其服务器物理信息的准确性;第三、配置管理员,负责基础信息的维护,比如说业务分类,人员信息;第四、查询类角色,比如研发。CMDB是核心的资源信息管理系统,一般不轻易开放权限。
2、配置项识别与定义
这是重点工作,没有简单的方法可循,细致活,基于上图的【配置项】的物理资源和逻辑资源的不断分解,根据业务需要最终识别出要管理的配置项。然后对每一个配置项进行整理,确定要管理的属性。形成类似的下表:
就拿最核心的服务器资源来说,会形成如下表的信息整理:
逐个进行整理,在上表中有几个方面需要注意:
第一、每个配置项目确定了维护角色,他在后续的过程中,需要对这个准确性负责,确定维护的职责边界。
第二、要整理出配置项的关联,比如说上表中的所属机房、所属机柜。
第三、这个表不是数据库的设计表,具体数据库的设计表是开发人员根据这个模型参考实现。
3、基于场景的配置管理规范
配置管理的核心目的是为了确保配置信息集中管理,并且是准确的管理。在这个里面需要做两个核心的工作。
第一、配置项的规范化管理;
第二、面向配置项的流程规范化管理,没有一套与之匹配的配置流程,最后配置管理都会混乱不堪,这个系统也就形同虚设。
此时没有捷径,识别配置管理的场景,把每个流程清晰的画出来,比如说服务器管理,它就涉及到服务器上架、服务器搬迁、服务器下线、服务器申请、服务器回收等流程。比如拿服务器回收流程来说,流程图如下:
注意上图中,在服务器回收的过程中,行是角色,列是阶段,在每个阶段,服务器的状态可能发生变化,此时也需要做备注。方便后续开发人员在做相应的流程实现的时候,控制这类状态。状态的转换对监控也有影响。
4、状态变迁图
用一张图来说明资源状态的变化,便于更好的基于场景和变更来控制配置项状态的变更,其实也就是它的生命周期管理。举例如下:
这些方法都是以前面向对象设计里面的内容,我觉得在CMDB配置管理工作中,有很大的作用,在一张纸上,你就可以看到状态如何变化,然后是哪个场景促使变化,这些场景最终就会转换成CMDB的某个功能或者某个流程。
三、实现篇
系统实现非常简单,简单理解就是一个配置的信息管理+流程管理,一个开发熟手,一个月就可以开发完成。难点还是在配置项识别,一定要做足功夫,把配置项的属性、流程、状态都整理清楚,最后按照这个来系统实现就OK了。不过在系统建设中,有一个经验大家可以参考:CMDB一定要变成运维和运维研发的共同项目,并且具体的配置项管理人要全程参与,比如说需求讨论、测试、上线验收等等(运维研发项目都可以遵循该模式)。像上面的配置项最好能找一个对全局了解的人来做,不一定是研发。
四、实施篇
其实CMDB真的是非常简单的系统,至少在两家公司做的CMDB都是非常短的时间完成,最多两个月。但是其实施的过程很多经验可以分享。
1、导致CMDB失败的因素
A、缺少管理层承诺----没有管理层的承诺,CMDB不可能成功。
B、在复杂流程上消耗太多的时间---我们是创建一个CMDB库,不是一个流程系统。
C、没有创建相应的工作指导文档---指导如何管理和维护CMDB。
D、没有指定配置项负责人----确保配置项有人专职维护。
E、目标过大,涵盖太多的功能----比如说IT采购和预算管理等等。
F、颗粒度不合适----配置合理的CMDB的配置项层次和粒度非常重要。
G、存在组织隔阂----CMDB是一个集成体系,靠流程中的每一个人通力协作,而不是某个人。
2、导致CMDB成功的因素
A、业务导向。比如说我们在CMDB的新的系统中实时加入QR码技术,为了降低资产盘点的工作量。
B、能自动发现就自动发现,降低配置管理的成本,但自动发现的信息不能用来做告警。
C、配置项的管理员必须全程参与,需求定型、测试及验收等等。
D、CMDB系统建设完成之后,其他系统必须和他联动。比如说监控、质量、容量等等,用场景驱动配置项的管理。
E、流程一定要平台化,不要让流程脱离CMDB存在,比如说搞一个OA流程,这个是很致命的。
F、CMDB要持续演进,特别是云端资源的管理。
G、配置项和流程必须要文档化,后期要进行CMDB培训。
运维平台之CMDB系统建设的更多相关文章
- 【I·M·U_Ops】------Ⅱ------ IMU自动化运维平台之CMDB
说明本脚本仅作为学习使用,请勿用于任何商业用途.本文为原创,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. #A 我理解的 CMDB CMDB翻译过来,Configuratio ...
- 【IMU_Ops】------III------ IMU自动化运维平台之CMDB(admin)
说明本文中所有内容仅作为学习使用,请勿用于任何商业用途.本文为原创,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明. #A 首先启用admin 通过python manage.p ...
- saltstack---自动化运维平台
https://github.com/ixrjog/adminset[自动化运维平台:CMDB.CD.DevOps.资产管理.任务编排.持续交付.系统监控.运维管理.配置管理 ] https://ww ...
- 运维平台cmdb开发-day1
序读项目由来 终极目标,运维平台.自动化.装机,监控,安装软件,部署基础服务,资产管理,之前是excel,现在是客户端自动获取,变更记录 后台管理 api 采集资产 四种模式agent 定时,每天执行 ...
- #研发解决方案#iDB-数据库自动化运维平台
郑昀 创建于2015/12/2 最后更新于2015/12/2 关键词:数据库,MySQL,自动化运维,AutoDDL,刷库,帐号授权,审核,回滚 提纲: 数据库自动化运维什么?别人家是怎么玩的? 我们 ...
- 《开源安全运维平台:OSSIM最佳实践》内容简介
<开源安全运维平台:OSSIM最佳实践 > 李晨光 著 清华大学出版社出版 内 容 简 介在传统的异构网络环境中,运维人员往往利用各种复杂的监管工具来管理网络,由于缺乏一种集成安全运维平台 ...
- 《开源安全运维平台OSSIM最佳实践》
<开源安全运维平台OSSIM最佳实践> 经多年潜心研究开源技术,历时三年创作的<开源安全运维平台OSSIM最佳实践>一书即将出版.该书用80多万字记录了,作者10多年的IT行业 ...
- sso 自动化运维平台
单点登录SSO(Single Sign-On)是身份管理中的一部分.本文中作者开发了一个自动化运维平台中的统一认证接口,单点登录平台通过提供统一的认证平台,实现单点登录.因此,应用系统并不需要开发用户 ...
- 智和网管平台SugarNMS助力网络安全运维等保2.0建设
智和信通智和网管平台SugarNMS结合<信息安全技术 网络安全等级保护基本要求>(GB/T 22239-2019)等国家标准文件以及用户提出的网络安全管理需求进行产品设计,推出“监控+展 ...
随机推荐
- 搜索 || DFS || POJ 1321 棋盘问题
棋盘上#可以放,.不可以放,每行每列只能放一个 *解法:类似八皇后问题 dfs+回溯,考虑每一行和每一列 [[[[dfs的样子]]]]最前面写达到目标状态or不能走下去了 然后return #incl ...
- centOS出现 -bash: vim: command not found
问题描述 用centos 的主机的時候, 用 vim 时出现 -bash: vim: command not found. 只能使用 vi. 那么如何安裝 vim 呢? 解决步骤 1.查看是否安装 输 ...
- 《3+1团队》【Alpha】Scrum meeting 2
项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 团队名称 3+1团队 团队博客地址 https://home.cnblogs.com/u/3-1group ...
- mongodb windows 开机启动
1)新建存放db E:\mongodb\data\db 2)新建日志文件 E:\mongodb\logs\log.txt 3)管理员运行Cmd 4)CD mongodb安装路径 5)运行命令 mong ...
- koa源码解读
koa是有express原班人马打造的基于node.js的下一代web开发框架.koa 1.0使用generator实现异步,相比于回调简单和优雅和不少.koa团队并没有止步于koa 1.0, 随着n ...
- selenium 浏览器基础操作(Python)
想要开始测试,首先要清楚测试什么浏览器.如何为浏览器安装驱动,前面已经聊过. 其次要清楚如何打开浏览器,这一点,在前面的代码中,也体现过,但是并未深究.下面就来聊一聊对浏览器操作的那些事儿. from ...
- SANBA服务和FTP服务
1.samba服务 Smb主要作为网络通信协议:Smb是基于cs(client/server)架构(架构还有bs,broswer/server):完成linux与windows之间的共享:linux与 ...
- LeetCode(81) Search in Rotated Array II
题目 Follow up for "Search in Rotated Sorted Array": What if duplicates are allowed? Would t ...
- zoj 1251 Box of Bricks
Box of Bricks Time Limit: 2 Seconds Memory Limit: 65536 KB Little Bob likes playing with his bo ...
- 【数据传输 1】服务器—>客户端之间的数据类型转换
导读:在做项目的时候,在controller中,将List数据类型转换为了JSON字符串,那么,为什么要将其数据转换为JOSN呢?这样的转换是否是必须的,在这个转换过程中,又经过了那些步骤?注:本篇博 ...