资源管理模型抽象:运维对象涉及机房、机器、网络设备、应用程序等多种资源对象,如何对这些运维资源进行抽象和建模以支持更多运维场景?
资源数据整合同步:运维资源需要经历复杂的流程和生命周期来支撑整个运维工作,例如一台机器从预算申请到采购入库,再到上架、部署服务,进行业务监控,整个流程会涉及资产、部署、监控等多个运维平台,如何对资源数据进行整合以提升运维效率并保证数据的一致性和准确性?
支撑上层业务运维:运维CMDB建设好之后并不等于结束,相反,这只是开始,数据一定要有价值/场景消费导向,才能为业务发挥更大的作用,例如在数据可视化方面,自动化、智能化运维方面、数据化运营方面等等,CMDB应该怎样支撑上层业务运维以使资源数据的价值达到最大化呢?
基本属性信息,如:SN、厂商、型号等硬件信息,生产日期、保修期等维保信息;
配置信息,如:安装的操作系统、分配的IP地址等;
运行时状态信息,如:机器运行状态、资源利用率等。
基本属性信息,如:服务名、服务描述信息、负责人、维护人等;
配置信息,如:部署版本、部署路径、启动参数、开放端口等;
运行时状态信息,如:服务运行状态、资源使用率等。
基本属性属性:用来对资源进行描述;
配置信息:用来表示对资源使用的方式;
运行时状态信息:表示资源当前的状态。
基础设施资源:同样拿机器运维来举例,对于故障维修场景,我们需要对机器按厂商进行分类管理,对于硬件监控场景,我们需要对一批支持相同采集协议的服务器批量配置监控,因此机器需要进行不同维度的分组管理。
业务资源:通常会复杂一些,对于一个业务系统,可能会包含大量应用程序,多个应用程序还可能组成业务子系统。业务监控通常以模块为配置单元,生效在模块下所有实例上,业务部署却不一样,可能按照环境不同分集群部署,也可能按照机房粒度分级发布,或者按照用户分类进行A/B测试,这实际对应了不同运维场景对不同资源视图的管理需求。
设备:交换机、路由器、防火墙、服务器等物理设备的统称。可对应上面资源建模里面的各类物理设备模型。
设备组:根据运维需求划分出来的若干设备的集合,如机器运维人员可以按照机器型号划分机器,网络运维人员可以按照类型对网络设备进行分组等。
实例:实例是部署和监控的最小单元,实例上可以打Tag组合成服务满足灵活的管理需求。例如业务监控场景会对同机房的实例数据进行汇聚,业务部署场景会根据测试环境、生成环境分别进行部署升级等。
应用:应用是一类提供相同服务实例的集合,概念上和日常所说的模块概念类似,例如一个Web应用。
服务:服务是由一组具有相同维度组合实例的集合,由Tag Selector决定,代表应用的某个维度视图,例如按集群划分为开发环境集群、测试环境集群、生产环境集群;按机房分为南京机房、上海机房;按版本分为V1、V2、V3等等。
子系统:对于大的业务系统,可能会部署很多应用模块,子系统是应用的分组,方便进行组织和管理。
系统部运维人员职责:机器运维分厂商监控全公司机器,确保机器处于正常运转状态,网络运维保障所有网络设备处于正常工作状态。
运维部运维人员职责:业务运维负责网上商城系统业务的变更管理、监控管理、容量规划和故障管理,并且为了安全性希望对不同的应用设置不同人员管理,对应的资源管理模型如下图所示:
有了资源组织管理的方式,下面就要考虑资源数据的维护,通常情况下我们采用人工+流程+自动发现三种方式进行资源数据的维护:
对于资源的基本信息数据维护通常会使用人工维护的方式,例如业务模块的命名和组织管理方式只能人工自行定义,好在这部分数据的维护成本较低,一次性创建且后续变动较小。且这部分资源数据只会在CMDB中定义和维护。
运维离不开人的参与,有人参与的活动都难免出现各种差错,所以对于资源的配置属性通常需要流程的严格定义,例如:机器上下架、改名、重装、网络规划等等,通过标准化的流程,配置信息数据在多个平台之间流动对接,保证了数据的一致性和准确性。
对于资源的状态属性通常有监控系统自动更新,部分配置属性,例如机器运行的系统环境变量等信息也可由监控系统自动采集上报;服务关系拓扑可由RPC(远程过程调用协议)间的调用关系链进行自动更新;网络拓扑可以通过网络设备的自动发现机制进行自动更新等等。自动注册/发现机制提升了数据管理的效率,也避免了人工干预造成的数据不一致或准确性问题。
业务全景图:在可视化场景为运维人员提供业务拓扑、业务树、网络拓扑等组织管理形式,方便运维人员对整个业务系统运行状态和部署架构全局一览,清晰便捷。
运维场景联动:构建自动化运维流程,打造业务联动场景,如:在业务升级部署前自动屏蔽报警,升级完成后解屏蔽报警,实现自动化服务部署升级和监控进行联动等。
智能化运维:根据服务拓扑和变更历史记录进行辅助故障诊断、根因定位。例如某个应用故障时查询依赖的关联服务是否有故障;如果某个应用的故障实例集中在某个机房,则可以进一步定位该机房的其他服务是否有变更等。
数据化运营:支持服务容量规划、成本核算、业务运营分析。例如根据上下游服务调用量分析,监控系统可提供服务整体资源利用率数据和分业务使用量分析数据等。