特来电CMDB应用实践
配置管理数据库(Configuration Management Database,以下简称CMDB)是一个老生常谈的话题,不同的人有不同的见解,实际应用时,因为企业成熟度以及软硬件规模不同,别人的成功经验很难直接复制,因此用好了会成为整个应用系统的基石,用不好就成了鸡肋。特来电云平台在规划伊始,便意识到了CMDB的重要性,在实践中不断丰富完善其内容,探索出了一条行之有效的轻量级CMDB建设之路,下面笔者具体谈一下应用实践思路,希望能给感兴趣的同行带来一些共鸣。
一、整体架构
特来电云平台是互联网架构的分布式应用平台,但CMDB的设计初衷却是中心化的,这样便于为上面的应用层提供统一的数据变更处理,保证各应用系统共享一致性的配置数据,整体架构如下所示:
1.应用层
特来电云平台是CMDB支撑的上层分布式高并发高可用系统,作为一个支持“全生命周期管理”的技术服务平台,主要由三大子平台构成:开发交付平台、公共技术平台、运维管理平台,分别对应一个应用系统全生命周期中的开发时、运行时以及运维时,整体架构图如下所示:
2.管理层
硬件资产管理主要管理物理的数据中心、应用主机,以及逻辑上划分出的服务单元、应用集群、应用节点等;软件资产管理主要管理关键应用以及应用程序定义、应用程序实例(进程);应用配置管理主要管理应用运行时需要用到的各种静态或动态参数;软硬件资产申请主要管理各产品研发团队发布应用时,需要用到的硬件资产,以及需要注册的软件资产基础数据,通过与自动运维系统打通,申请通过后,可以进行应用主机的部署以及应用程序的初始化;数据准确性校验一是通过初期对软硬件资产的正确盘点,二是通过与监控系统打通,定时将收集上来的数据与CMDB存储的基础数据进行自动校对,必要时根据校验的异常信息进行人工校对,从而保证CMDB基础数据的绝对准确;数据统计分析报表主要从运营的角度对软硬件资产及应用配置进行如数家珍的图形化展示,以及统计应用主机利用率、分析使用成本等,为机器升降配置、扩缩容量提供有力的数据支撑。
3.存储层
作为轻量级的CMDB系统,考虑到集中存储以及数据一致性,通过关系型数据库即可满足应用配置以及访问查询需求。
二、核心模型
传统应用中,CMDB作为ITIL(Information Technology Infrastructure Library,信息技术基础设施库)关键模块中的基础,主要面向硬件资产,涉及的内容及流程模型比较重,而一些创新型的中小型互联网公司,大部分采用的是公有云,不需要管理自建机房,更多关注软件资产,因此如果直接使用标准的CMDB系统,往往会感到水土不服,失败案例比较多。通过研究业界主流做法以及结合自身实践,特来电云平台经过不断探索,认为构建一个轻量级的CMDB系统,应该以关键应用为抓手,将云上轻量的硬件资产以及软件资产进行统一协调管理,核心模型如下:
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应用实践的更多相关文章
- 魅族CMDB运维自动化实践
一.简介 原创:梁鹏 本文是根据魅族系统架构师梁鹏10月20日在msup携手魅族.Flyme.百度云主办的第十三期魅族技术开放日< 魅族CMDB运维自动化实践>演讲中的分享内容整理而成. ...
- 基于.net的微服务架构的开发测试环境运维实践
眼下,做互联网应用,最火的架构是微服务,最热的研发管理就是DevOps, 没有之一.微服务.DevOps已经被大量应用,它们已经像传说中的那样,可以无所不能.特来电云平台,通过近两年多的实践,发现完全 ...
- 基于.net的微服务架构下的开发测试环境运维实践
眼下,做互联网应用,最火的架构是微服务,最热的研发管理就是DevOps, 没有之一.微服务.DevOps已经被大量应用,它们已经像传说中的那样,可以无所不能.特来电云平台,通过近两年多的实践,发现完全 ...
- 【容器云】传统金融企业的 Docker 实践
基于 Docker 的容器云-Padis 目前市面上基于容器云的产品有很多,对于平安而言,则是基于 Docker 的 Padis 平台.所谓 Padis,全称是 PingAn Distribution ...
- Python之路【第二十二篇】CMDB项目
浅谈ITIL TIL即IT基础架构库(Information Technology Infrastructure Library, ITIL,信息技术基础架构库)由英国政府部门CCTA(Central ...
- Python学习路程CMDB
本节内容 浅谈ITIL CMDB介绍 Django自定义用户认证 Restful 规范 资产管理功能开发 浅谈ITIL TIL即IT基础架构库(Information Technology Infra ...
- 2016,除了 DevOps,企业还应该知道 CMDB!
CMDB 是 Configuration Management Database(配置管理数据库)的简称,CMDB 存储与管理企业 IT 架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧密 ...
- 构建CMDB的一些启发
开篇感言: 自从学习python自动化开发以来,一直都是从技术的角度来看待一切.以为技术就是王道.但显然我是一只井底之蛙.其实技术只不过是实现功能的工具而已,仅此而已.后来学习了解CMDB,越来越发现 ...
- Python之路,Day19 - CMDB、CMDB、CMDB
Python之路,Day19 - CMDB.CMDB.CMDB 本节内容 浅谈ITIL CMDB介绍 Django自定义用户认证 Restful 规范 资产管理功能开发 浅谈ITIL TIL即IT ...
随机推荐
- 07-01 Java 封装
1:成员变量和局部变量的区别 /* 成员变量和局部变量的区别? A:在类中的位置不同 成员变量:在类中方法外 局部变量:在方法定义中或者方法声明上 B:在内存中的位置不同 成员变量:在堆内存 局部变量 ...
- 这两周服务器被攻击,封锁了600多个IP地址段后今天服务器安静多了
这两周服务器被攻击,封锁了600多个IP地址段后今天服务器安静多了 建议大家在自己的服务器上也封杀这些瘪三的地址 iptables -I INPUT -s 123.44.55.0/24 -j DROP ...
- c3p0配置文件
配置文件 名称必须为c3p0-config.xml,否则找不到: 标签名称 <c3p0-config> <default-config > 具体配置内容 </defaul ...
- 如何查看第三方apk的信息
很多时候,我们需要获取别人的apk的信息.但是我们看不到apk的代码,对于apk的信息并没有直接的方法获取.那么,我们要怎么获取apk信息呢? 这里,我整理了两个方法,亲测可用. 第一种,直接使用An ...
- iis7 bug解决
只需重新注册下AspNet就可以了,具体步骤如下 1 打开运行,输入cmd进入到命令提示符窗口. 2 进入到C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727 ...
- [Java初探07]__关于面向对象的简单认识
前言 类和对象,在我们学习Java语言的过程中,它们无时无刻不存在着,在我们还远未详细弄明白它们的意义之前,在我们不知不觉的下意识里,我们都会直接或间接的用到它们,这是因为Java是一门面向对象的语言 ...
- docker cgroup 技术之memory(首篇)
测试环境centos7 ,内核版本4.20 内核使用cgroup对进程进行分组,并限制进程资源和对进程进行跟踪.内核通过名为cgroupfs类型的虚拟文件系统来提供cgroup功能接口.cgroup有 ...
- j2ee高级开发技术课程第三周
一.分析Filter例子(轻量级javaee企业应用实战p132) // 执行过滤的核心方法 public void doFilter(ServletRequest request, ServletR ...
- 关于VS2017的安装和WDK的选择问题
首先就是关于VS2017的安装,我们可以通过微软的官网去寻找我们想要安装的VS版本 我们可以随便选择一个我们需要的版本进行下载,任意版本的VS都可以. 然后下载安装的时候,要进行一下这个安装选项的选择 ...
- piplinedb 安装配置
piplinedb不能使用root用户操作,提前建好用户 [root@yzh-jkb-privatization /]# useradd steven [root@yzh-jkb-privatizat ...