您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 【平台篇】运维平台之CMDB系统建设
【平台篇】运维平台之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系统建设
链接地址:https://www.777doc.com/doc-2341616 .html