服务配置管理IT运维管理自动化中的CMDB
IT运维管理自动化中的CMDB
在IT运维管理自动化领域,其范畴极为广泛,涵盖了系统IT运维管理和应用IT运维管理的自动化场景。我们主要聚焦于这两类应用场景的分析。实施自动化之前,必须确保数据的准确性和对称性,同时需要构建一个统一的管控平台,实现对远程大量主机的并发控制和操作。这一措施有效解决了操作系统层面的操作问题。
然而,对于应用层面的管理,还需与应用研发人员规范相关接口,以确保兼容性。对于开源组件应用而言,通常不会遇到显著问题。因此,若从零开始构建自动化系统,我们认为配置管理数据库(CMDB)、管控平台、业务进程管理工具是基础架构的三大支柱。
在此基础上,可以针对IT运维管理的各类场景和业务逻辑开发相应的垂直功能系统。进一步地,可以利用流程引擎等组件实现业务IT运维管理流程的纵向整合,最终达成IT运维管理各类业务流程的全面线上自动化。在这一过程中,DevOps的相关理论和实践是不可或缺的参考。
应用目的:
降低人工干预和人员成本是IT运维管理执行工作的核心目标。在业务规模扩大后,运维管理操作的密集度随之增加,导致需求激增。例如,公司内部某款游戏业务部署在近百台主机上,每次维护都需要对这些主机逐一执行操作。若通过人工方式完成,将耗费大量时间和精力,效率低下,并可能影响业务的可用性。因此,IT运维管理面临的主要挑战包括:
现状
问题
应用类型各异
如何跨平台,如何固化并复用IT运维管理操作任务
设备数量越来越多
如何集中地并发地批量操作机器
操作需求增多
如何在分布各IDC的机器上批量执行脚本任务
操作类型日益复杂
如何向大规模分布的机器上分发文件
业务场景各种各样
如何根据IT运维管理需求任意编排任务并行执行
应用场景分析:
·故障处理自动化
在此应用场景中,通过实时监测告警、预诊断分析以及自动恢复故障等操作步骤的集成联动,实现了对已具备明确故障处理方案的故障进行自动化处理,从而达到故障自愈的目的。典型的可自动化处理的故障包括磁盘清理、执行预定义的作业脚本、自动化替换备用资源上线、设备重启等。
为了实现此场景的执行与落地,需要清单的CMDB提供支持,必须对需要自动化操作的对象进行合理的CI类别和CI属性设计,并记录其关联关系,以便于批量执行脚本、特定设备的重启命令、CI关系的重新更新等操作。
·应用部署自动化
在此场景下,主要运用DevOps理念,基于统一资源CMDB,运用自动化工具,实现软件安装自动化和应用部署自动化。例如,IT运维管理人员可以在界面定义好一个版本发布作业:xx业务发布,将整个发布流程分解至每一步骤,并编写脚本或调用外部接口来实现具体的操作。
最终线上操作仅需在页面点击开始执行即可。
如下图的操作自动化执行步骤:
序号
步骤名称
步骤类型
步骤执行人
状态
1
查看单据及更新说明
文本步骤
人工执行
执行完成
2
分发服务端更新包
分发文件
系统自动执行
执行中
3
关闭游戏进程
执行脚本
系统自动执行
未执行
4
关闭防火墙
执行脚本
系统自动执行
未执行
5
优先程序备份
执行脚本
系统自动执行
未执行
6
DB备份
执行脚本
系统自动执行
未执行
7
服务端程序更新
执行脚本
系统自动执行
未执行
8
DB更新
执行脚本
系统自动执行
未执行
9
开启游戏进程
执行脚本
系统自动执行
未执行
10
开启周边系统
执行脚本
系统自动执行
未执行
11
确认成功开启
文本步骤
人工执行
未执行
12
通知内测
文本步骤
系统自动执行
未执行
13
正式对外
文本步骤
人工执行
未执行
图:自动化执行步骤说明
研究问题:
·平台与业务逻辑的解耦
理念源自于企业服务总线(ESB)的架构思想,鉴于业务种类繁多、操作逻辑各异,我们并不追求开发一款能融合所有具体操作逻辑的产品。平台的定位并非工具箱,而是作为统一的通道,利用IT运维管理中熟练和灵活的脚本技术,屏蔽业务和场景的差异性。平台仅承担执行引擎的角色,从而避免了无休止的重复开发工作。
·共性需求的提取与去重
在当前业务形态多样化的背景下,游戏、Web应用等多业务环境已成为常态。通过对IT运维管理工作的全面审视,我们发现其最基本的需求是对一台或多台设备执行特定的技术操作,这一需求对所有业务形态而言是共通的。这正是平台作为统一解决方案的合理性所在,它满足了基本的共性需求,而差异化的部分则留给用户自行定义。
·最大化用户自由度
平台仅作为通道和执行引擎存在,用户可以自行定义所需执行的操作、目标对象以及执行方式。这一点正是为了解决众多业务和不同场景下的差异化IT运维管理需求,使得操作一批设备变得与操作单台设备一样简便快捷;同时,维护多种业务也变得与维护单一业务一样轻松。
·持续集成
自动化体系的构建需要全面的规划,逐案处理的方式最终会导致平台之间的割裂。作业仅是整个自动化体系框架中的一部分,它需要整合其他平台的能力,同时也能够被其他平台调用和集成。
核心功能:
·具备可扩展性和高灵活性的配置管理数据库(CMDB)建模功能,能够应对个性化和复杂的业务模型
·良好的纵向扩展(scale-up)和横向扩展(scale-out)能力,支持灵活的扩展性,以适应复杂的网络结构
·轻量级、高效的后端通信机制,能够支撑成千上万的管理规模
·跨平台支持,兼容Windows、类Unix等多种操作系统,无需重复开发
·对IT运维管理操作进行建模,将其分解为若干基本操作类型,通过基本操作的自由组合实现复杂的序列化操作逻辑,为用户提供灵活的操作方式
CMDB建设首先需要明确定位、统一规划和持续迭代。其中,明确定位和使用场景尤为关键,切忌盲目模仿,以免造成大量无效工作和功能建设,未能解决预期问题,反而引入新的问题,这也是导致CMDB项目失败的主要原因之一。
我们对项目中遇到的几类CMDB应用场景进行了总结,期望能够抛砖引玉,帮助大家找到真正需要解决的问题,选择合适的平台和系统,避免不必要的弯路。参考数字化IT运维管理体系建设指南等书籍资料
页:
[1]