特来电CMDB应用实践

摘要:
在规划之初,特伦云平台认识到CMDB的重要性,在实践中不断丰富和改进其内容,并探索了构建轻量级CMDB的有效途径。现在,笔者具体谈谈应用实践思路,希望能给感兴趣的同行带来一些共鸣。

        配置管理数据库(Configuration Management Database,以下简称CMDB)是一个老生常谈的话题,不同的人有不同的见解,实际应用时,因为企业成熟度以及软硬件规模不同,别人的成功经验很难直接复制,因此用好了会成为整个应用系统的基石,用不好就成了鸡肋。特来电云平台在规划伊始,便意识到了CMDB的重要性,在实践中不断丰富完善其内容,探索出了一条行之有效的轻量级CMDB建设之路,下面笔者具体谈一下应用实践思路,希望能给感兴趣的同行带来一些共鸣。

一、整体架构

        特来电云平台是互联网架构的分布式应用平台,但CMDB的设计初衷却是中心化的,这样便于为上面的应用层提供统一的数据变更处理,保证各应用系统共享一致性的配置数据,整体架构如下所示:

特来电CMDB应用实践第1张

        1.应用层

        特来电云平台是CMDB支撑的上层分布式高并发高可用系统,作为一个支持“全生命周期管理”的技术服务平台,主要由三大子平台构成:开发交付平台、公共技术平台、运维管理平台,分别对应一个应用系统全生命周期中的开发时、运行时以及运维时,整体架构图如下所示:

 特来电CMDB应用实践第2张

        2.管理层

        硬件资产管理主要管理物理的数据中心、应用主机,以及逻辑上划分出的服务单元、应用集群、应用节点等;软件资产管理主要管理关键应用以及应用程序定义、应用程序实例(进程);应用配置管理主要管理应用运行时需要用到的各种静态或动态参数;软硬件资产申请主要管理各产品研发团队发布应用时,需要用到的硬件资产,以及需要注册的软件资产基础数据,通过与自动运维系统打通,申请通过后,可以进行应用主机的部署以及应用程序的初始化;数据准确性校验一是通过初期对软硬件资产的正确盘点,二是通过与监控系统打通,定时将收集上来的数据与CMDB存储的基础数据进行自动校对,必要时根据校验的异常信息进行人工校对,从而保证CMDB基础数据的绝对准确;数据统计分析报表主要从运营的角度对软硬件资产及应用配置进行如数家珍的图形化展示,以及统计应用主机利用率、分析使用成本等,为机器升降配置、扩缩容量提供有力的数据支撑。

        3.存储层

         作为轻量级的CMDB系统,考虑到集中存储以及数据一致性,通过关系型数据库即可满足应用配置以及访问查询需求。

二、核心模型

        传统应用中,CMDB作为ITIL(Information Technology Infrastructure Library,信息技术基础设施库)关键模块中的基础,主要面向硬件资产,涉及的内容及流程模型比较重,而一些创新型的中小型互联网公司,大部分采用的是公有云,不需要管理自建机房,更多关注软件资产,因此如果直接使用标准的CMDB系统,往往会感到水土不服,失败案例比较多。通过研究业界主流做法以及结合自身实践,特来电云平台经过不断探索,认为构建一个轻量级的CMDB系统,应该以关键应用为抓手,将云上轻量的硬件资产以及软件资产进行统一协调管理,核心模型如下:

 特来电CMDB应用实践第3张

        1.硬件资产模型

        在强调高可用的互联网领域,建设多个数据中心(一主多从),构建多地多活应用,越来越成为主流趋势,并且同一个数据中心的鸡蛋也不是放在一个篮子里,而是通过服务单元进行Set化管理,每个篮子(Set)作为一个更细粒度的封闭部署单元,都可以对外提供同样服务,这种多Set化方式,更加灵活的提高了应用的可用性;同时一个Set又继续细分为多个应用集群,为了能最大化复用应用主机,每个物理的应用主机上抽象出了多个逻辑的应用节点,就像在一个机器上,部署了多个虚拟的应用容器,因此每个应用集群不是由应用主机直接构成,而是由应用节点构成。

        2.软件资产模型

        一个复杂的业务应用平台,必定是由很多应用构成的,识别出这些具有技术及业务功能属性的关键应用,就是抓住了整个应用平台的牛鼻子。关键应用可以按业务线进行划分,既包括可视化的系统,也包括非可视化的系统,每个系统都由一定数量的应用程序构成,每个应用程序都会有对应的实例,也就是最终运行在每个应用节点上的应用进程,每个应用进程可以通过应用主机、进程名以及部署路径进行唯一确定。通过这种从上到下的模型抽象,为准确监控应用系统运行状态并且及时定位应用系统运行故障,提供了深入到进程级别的有力支撑。

三、应用实践

        特来电云平台基于CMDB在应用层面做了大量实践,积累了很多典型应用场景,以下概要谈一下在运维方面的应用场景。

        1.监控预警

        整个监控预警系统完全架构在CMDB之上,一方面监控预警的对象来自于CMDB中的基础数据,另一方面监控收集上来的基础数据,要定时与CMDB中的基础数据进行校对,如果有异常时,会通过预警通知运维人员,以保证CMDB数据的绝对准确。

        2.应用拓扑大屏

        应用拓扑大屏是对CMDB系统的实时展现,可以全方位查看整个系统的运行状态,同时与预警系统打通,当有预警发生时,会将对应应用节点标红,点击该节点,可以查看预警信息,并进一步联查全链路信息,直至钻取到存储在大数据系统中的异常信息,实现了多个系统数据联动。

        3. 智能运维

        智能运维是目前运维界的主流发展趋势,目的是通过机器学习的方式来进一步解决自动化运维所未能解决的问题,提高系统的预判能力、稳定性、降低IT成本,并提高企业的产品竞争力。特来电云平台在系统智能运维方面进行了探索性尝试,目前已经初见成效。当有预警发生时,通过计算预警携带的CMDB信息,一方面通过自动运维进行场景化处理,比如回收Web站点应用程序池、重启应用程序、转储应用日志等,通过这种点杀方式,防止预警事件进一步恶化为系统故障,另一方面利用机器学习算法,对预警发生时的数据进行决策分析,尝试找到预警发生的根因,以期后面从源头上切断预警发生的条件。

四、总结

       基于公有云的CMDB建设需要采用集中化的轻量级解决方案,以业务线的关键应用为抓手,打通业务系统与CMDB之间的数据通道,让数据流动起来,最大化发挥CMDB的价值;同时要保证CMDB基础数据的绝对准确,为上层应用提供一致性的数据支撑。

五、特来电云计算与大数据微信公众号

1.微信公众号名称:特来电云计算与大数据

 2.二维码:

 特来电CMDB应用实践第4张

免责声明:文章转载自《特来电CMDB应用实践》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Yii路径总结[转]Windows 注册自定义的协议下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

解决录制视频播放正常,导入编辑软件后期编辑时声画不同步的问题

相信很多up在录制完游戏视频或其他一些视频后都会进行的一些后期剪辑,但是当我们把录出的视频导入到剪辑软件后却发现视频声画不同步,但用播放器观看源视频却没有不同步这个问题。这一般来说是因为我们录制出来的视频是【动态帧率】或,是因为在录制过程中由于电脑硬件跟不上,导致视频帧率出现严重跳动导致的声画不同步。主要原因:视频帧率不稳定解决方法:1、选择支持动态帧率的...

Android开发5:应用程序窗口小部件App Widgets的实现

前言   本次主要是实现一个Android应用,实现静态广播、动态广播两种改变 widget内容的方法,即在上篇博文中实验的基础上进行修改,所以此次实验的重点是AppWidget小部件的实现啦~   首先,我们简单说一下Widget是一个啥玩意~   应用程序窗口小部件(Widget)是微小的应用程序视图,可以被嵌入到其它应用程序中(比如桌面)并接收周期...

一文详解特征缩放、标准化、归一化的定义、区别、特点和作用

前言 我在学李宏毅的机器学习课程,助教给的回归作业代码中有数据标准化的操作。 我听过数据标准化,还有归一化、批量归一化等等,但不是很懂,不知道他们具体是什么、有什么区别。 百度上找了挺多文章,讲得都不是很系统,比如大多文章都没讲懂标准化和归一化的区别或者是不同文章讲的内容矛盾了。 用谷歌一搜,就找到了很多很有价值的相关文章,然后我也写了这篇文章做个记录。...

WINCE应用程序开机自运行方法总结(转载)

第一种:1.假定Windows CE.NET目标工程目录为D:\WINCE420\PUBLIC\MyWinCE,并且工程已经Build成功,假定Windows CE.NET的应用程序为MyApp.exe;2.将MyApp.exe复制到D:\WINCE420\PUBLIC\MyWinCE\SAMSUNG_SMDK2410_ARMV4Release目录下; 3...

Python 插入数据库的各种方式

我们在使用 python 写程序的时候,都会用到数据库,那么在操作过程中我们都会进行插入数据,那么现在我介绍几种 python 插入数据的方式。 add方式 from sqlalchemy.orm import scoped_session, sessionmaker db_conn = scoped_session(sessionmaker()) c...

Powerdesigner逆向工程从sql server数据库生成pdm (转载)

第一步:打开"控制面板"中的"管理工具" 第二步:点击"管理工具"然后双击"数据源(odbc)"   第三步:打开之后,点击"添加" 第四步:选择"sqlserver" 点击"完成" 第五步:跟据自身的情况填写 说明: 名称和描述可以自己命名,服务器就是你的数据库地址(下图) 第六步:填写好登录名和密码 第七步:完成所有配置后,打开PowerD...