特来电CMDB应用实践
配置管理数据库(Configuration Management Database,以下简称CMDB)是一个老生常谈的话题,不同的人有不同的见解,实际应用时,因为企业成熟度以及软硬件规模不同,别人的成功经验很难直接复制,因此用好了会成为整个应用系统的基石,用不好就成了鸡肋。特来电云平台在规划伊始,便意识到了CMDB的重要性,在实践中不断丰富完善其内容,探索出了一条行之有效的轻量级CMDB建设之路,下面笔者具体谈一下应用实践思路,希望能给感兴趣的同行带来一些共鸣。
一、整体架构
特来电云平台是互联网架构的分布式应用平台,但CMDB的设计初衷却是中心化的,这样便于为上面的应用层提供统一的数据变更处理,保证各应用系统共享一致性的配置数据,整体架构如下所示:
硬件资产管理主要管理物理的数据中心、应用主机,以及逻辑上划分出的服务单元、应用集群、应用节点等;软件资产管理主要管理关键应用以及应用程序定义、应用程序实例(进程);应用配置管理主要管理应用运行时需要用到的各种静态或动态参数;软硬件资产申请主要管理各产品研发团队发布应用时,需要用到的硬件资产,以及需要注册的软件资产基础数据,通过与自动运维系统打通,申请通过后,可以进行应用主机的部署以及应用程序的初始化;数据准确性校验一是通过初期对软硬件资产的正确盘点,二是通过与监控系统打通,定时将收集上来的数据与CMDB存储的基础数据进行自动校对,必要时根据校验的异常信息进行人工校对,从而保证CMDB基础数据的绝对准确;数据统计分析报表主要从运营的角度对软硬件资产及应用配置进行如数家珍的图形化展示,以及统计应用主机利用率、分析使用成本等,为机器升降配置、扩缩容量提供有力的数据支撑。
二、核心模型
传统应用中,CMDB作为ITIL(Information Technology Infrastructure Library,信息技术基础设施库)关键模块中的基础,主要面向硬件资产,涉及的内容及流程模型比较重,而一些创新型的中小型互联网公司,大部分采用的是公有云,不需要管理自建机房,更多关注软件资产,因此如果直接使用标准的CMDB系统,往往会感到水土不服,失败案例比较多。通过研究业界主流做法以及结合自身实践,特来电云平台经过不断探索,认为构建一个轻量级的CMDB系统,应该以关键应用为抓手,将云上轻量的硬件资产以及软件资产进行统一协调管理,核心模型如下:
先看硬件资产模型:在强调高可用的互联网领域,建设多个数据中心(一主多从),构建多地多活应用,越来越成为主流趋势,并且同一个数据中心的鸡蛋也不是放在一个篮子里,而是通过服务单元进行Set化管理,每个篮子(Set)作为一个更细粒度的封闭部署单元,都可以对外提供同样服务,这种多Set化方式,更加灵活的提高了应用的可用性;同时一个Set又继续细分为多个应用集群,为了能最大化复用应用主机,每个物理的应用主机上抽象出了多个逻辑的应用节点,就像在一个机器上,部署了多个虚拟的应用容器,因此每个应用集群不是由应用主机直接构成,而是由应用节点构成。
再看软件资产模型:一个复杂的业务应用平台,必定是由很多应用构成的,识别出这些具有技术及业务功能属性的关键应用,就是抓住了整个应用平台的牛鼻子。关键应用可以按业务线进行划分,既包括可视化的系统,也包括非可视化的系统,每个系统都由一定数量的应用程序构成,每个应用程序都会有对应的实例,也就是最终运行在每个应用节点上的应用进程,每个应用进程可以通过应用主机、进程名以及部署路径进行唯一确定。通过这种从上到下的模型抽象,为准确监控应用系统运行状态并且及时定位应用系统运行故障,提供了深入到进程级别的有力支撑。
三、应用实践
特来电云平台基于CMDB在应用层面做了大量实践,积累了很多典型应用场景,以下概要谈一下在运维方面的应用场景。
整个监控预警系统完全架构在CMDB之上,一方面监控预警的对象来自于CMDB中的基础数据,另一方面监控收集上来的基础数据,要定时与CMDB中的基础数据进行校对,如果有异常时,会通过预警通知运维人员,以保证CMDB数据的绝对准确。
应用拓扑大屏是对CMDB系统的实时展现,可以全方位查看整个系统的运行状态,同时与预警系统打通,当有预警发生时,会将对应应用节点标红,点击该节点,可以查看预警信息,并进一步联查全链路信息,直至钻取到存储在大数据系统中的异常信息,实现了多个系统数据联动。
智能运维是目前运维界的主流发展趋势,目的是通过机器学习的方式来进一步解决自动化运维所未能解决的问题,提高系统的预判能力、稳定性、降低IT成本,并提高企业的产品竞争力。特来电云平台在系统智能运维方面进行了探索性尝试,目前已经初见成效。当有预警发生时,通过计算预警携带的CMDB信息,一方面通过自动运维进行场景化处理,比如回收Web站点应用程序池、重启应用程序、转储应用日志等,通过这种点杀方式,防止预警事件进一步恶化为系统故障,另一方面利用机器学习算法,对预警发生时的数据进行决策分析,尝试找到预警发生的根因,以期后面从源头上切断预警发生的条件。
四、总结
基于公有云的CMDB建设需要采用集中化的轻量级解决方案,以业务线的关键应用为抓手,打通业务系统与CMDB之间的数据通道,让数据流动起来,最大化发挥CMDB的价值;同时要保证CMDB基础数据的绝对准确,为上层应用提供一致性的数据支撑。
五、特来电云计算与大数据微信公众号
1.微信公众号名称:特来电云计算与大数据
2.二维码: