写点什么

与其说建设 CMDB,不如说建设 IT 资源图谱

  • 2020-03-16
  • 本文字数:3331 字

    阅读完需:约 11 分钟

与其说建设CMDB,不如说建设IT资源图谱

在运维人员看来,CMDB 是一个绕不开的字眼。在 ITIL 时代,太多的 CMDB 落地项目,但鲜有成功。而我之前有一个观点,CMDB 中的配置字眼要从这个里面去掉,重新给它设定一个边界。在这个边界划分上,我曾经提出过 CMDB 经历过三个阶段,资产管理、配置管理到今天我主张的 IT 资源管理。


资产管理围绕硬件属性、采购属性、成本属性、采购属性、固件管理等等;配置管理围绕服务管理、配置管理等等,但配置范畴太广,导致容易管理失控,比如说应用配置、环境配置、中间件参数管理等不适合进入 CMDB,分布式配置中心 Apollo、Nacos 便是佐证;IT 资源管理进一步缩小其管理能力范围,把不能够产生服务能力的东西都剥离出去,不纳入管理范围。


那到底什么是 IT 资源?一切能直接或者间接产生业务服务价值的 IT 实体都可以称之为资源,比如说应用系统的业务服务、网络带来的网络服务、F5 带来的负载均衡服务、存储资源带来的存储服务、主机带来的计算/网络/存储服务等等。那它和配置管理服务有什么区别?我认为配置是资源的版本化描述,比如说网络配置是对网络服务的版本化描述、主机上会有各类配置(CPU、网络和存储、环境配置)等等,而这种版本化的描述可以通过配置中心来管理。


一旦我们收敛了 CMDB 的管理边界是 IT 资源,此时就需要知道构成资源服务能力的不仅仅是资源自身,还有其关联的资源,资源图谱概念由此产生。资源图谱旨在描述 IT 世界中存在的各种实体与资源及其关系,构成一张复杂的实体与资源关系图,节点表示资源实体,边则由关系构成。


在资源图谱的概念中,对现实世界的图谱描述有两层,第一层是实体层,第二层是资源层,最后是他们的关系表达。实体是从真实的世界出发,直观看到的,比如说网络、防火墙、应用系统、数据库中间件等等,通常一个实体代表一类服务能力。再往下,实体构成对外的服务能力一定是其关联的资源实现的,比如说网络上的端口、应用系统的部署和服务资源、基础设施主机上的 CPU/网络/存储等等资源。这两者在过去,统一用 CI 来表达,我认为是欠妥的,容易对这个世界平面化的描述,但其实他们是层次化的。针对每一个实体和资源都要用结构化表达,这是另外技术建模的问题,在此不多讲。


其次说到关系,实体之间的关系是由资源的关系构成的,主机和主机之间没有关系,而是上面的端口资源访问产生的业务关系,交换机与主机没有关系,是因为交换机端口和主机之间物理连接产生的关系;A 和 B 应用系统因为他们之间的 API 服务访问产生的关系。


到底哪些应该纳入到资源图谱管理呢?上至服务、应用系统及组件,下到数据、基础设施架构等等,员工也属于资源的一种。API 是越来越重要的资源,行业也开始出现各类管理平台,如 swagger;应用系统是由 N 个组件组成,也是一种资源;组件从安装部署态算起,一直到运行态,由大量的关联资源组成,主机、制品包、关联的依赖库、关联的进程端口、提供的服务等等;数据服务关联了各类中间件服务信息,cache 类、DB 存储类等;基础架构的资源分解很简单,就是上面关联的核心资源管理,比如说交换机的端口、F5 上面的 vspool/irules 等。


CMDB 到底要不要建设?我觉得可以不要,但 IT 资源图谱平台要不要建设?我觉得很有必要。我会从 IT 资源图谱的四大定位和五大类场景谈谈他的必要性。


首先说说它的四大定位,这也是我一直在和客户不断说的四个方面:数据地图、基础数据、数据总线、数据治理:


一、数据地图(边界)

IT 资源图谱需要构建一个数据地图的能力,全面构建资源实体对象及对象关系,这个定位有利于控制它的边界。在现实中有各类地图,地图本身维护各类经纬度数据(点)以及点到点之间的路径关系,而基于地图的应用则很多,比如说衣食住行类应用等等。IT 平台也是如此。在一体化运维平台体系中,上层的场景丰富多样,需要底层这样的一个数据地图来描述数据和数据之间的关系。

二、基础数据(能力)

基础数据是一种可供数据消费的能力,IT 资源图谱需要开放所有的数据供外围场景平台消费,比如监控平台、自动化平台、安全平台等等。基础数据平台要解决数据的生成和数据的消费两个方面问题。数据生成一方面依赖自动发现,另外一方面就要依赖流程;数据消费要基于开放式的 API 能力,供外围场景平台和它联动。

三、 数据总线(整合)

在 IT 运行过程中,很多地方,比如说自动化和场景平台,自动发现发现某条记录进入 IT 资源图谱、云管平台分配一台主机进入 IT 资源图谱,此时外围安全、4A 平台、监控等诸多平台需要消费,此时需要一对多的数据发布能力,IT 资源图谱平台是最好的数据聚合点。在这个聚合点,可以在数据入库前做相应的校验,数据发布后做发布的确认等等。

四、数据治理(治理)

它也是一个 IT 资源数据治理的平台。随着 IT 应用系统和基础设施架构越来越复杂,资源及其关系错综复杂,纳入这么多的资源数据进入到平台,需要对原始数据进行数据的甄别、数据清洗、数据转换和数据融合的过程,从而变成高质量外围平台可消费的数据。还有一个场景化的数据治理思路,是和上面的变更服务耦合在一起的。


很多人会说,费这么大的力气建设一个 IT 资源图谱平台,到底是干嘛呢?一定是价值/场景消费导向,我把场景分成五大类:



一、流程服务类


ITIL 里面包含很多流程类的服务,如服务台、事件、问题、变更等等,这些流程服务都可以和 CMDB 关联起来,在不同的流程服务里面需要消费的数据不一样。不知道大家有主要到没有,配置服务流程是 ITIL 里面实施最差的流程,为什么?从流程设计上来说,变更流程执行完成之后,发起配置流程修改配置,但是很少人这么做,一次变更触发了哪些配置项修改,估计实施的人都不知道,别说发起流程选择变更的配置项和属性了,特别是全流程自动化场景。这就牵扯到 ITIL 轻量化的话题,在此不展开。


二、可视化


CMDB 里面很多数据是被关系理解的,这个关系从不同的角色角度去看,需要看到的拓扑和关系视图是不一样的,网络管理员、主机管理员、系统管理员等等,他们都是实例资源拓扑的场景化表达。上层应用架构拓扑是非常复杂的,不容易场景化理解的。可视化的核心是把关系数据有意义的表达出来。


三、自动化类


自动化是变更的主要实现,在这个场景之下一般都会触发资源变更,因此和自动化场景的关联是一种强关系。


IT 自动化可以从资源交付自动化到应用交付自动化两层去分解。资源交付自动化可以从资产到资源自动化整个生命周期过程来分解;应用交付自动化就是今天行业所说的 DevOps CICD 过程,从持续集成开始一直上线到持续反馈,应用作为一个核心的 IT 资源对象,它自身有新上线、升级、运营服务、下线这样一个生命周期过程。覆盖如此复杂的 IT 过程,需要有一个基础 IT 资源数据平台存在,串联整个过程。这套方法我给写进了证券行业的自动化运维规范之中。



四、数据化类


监控、IT 运营分析(容量、性能、可用性、连续性、成本、用户体验、质量)等各类数据场景都和资源图谱平台紧密关联。本质上来说,所有的数据都是这些资源的状态数据,而资源图谱提供了一个元数据基础,它首先解决的是一个到底有多少资源需要数据化。孤立的数据价值越来越小,关联整合的数据价值越来越高。关系是维度的体现,基于维度的数据聚合是很常规的运维需要,比如说从机房、从业务系统、从集群的角度去聚合流量。


五、智能化类


随着 AIOps 应用越来越多,在一些智能化运维场景中,比如说故障根因分析、事件关联分析等等,需要和资源图谱的数据全面关联,相当于一个知识标签库,相比较 AIOps 的标签库,资源图谱是基于场景维护产生的标签库,有着准确性高,实时性好,全面性广等特点。


我们今天正在在招商银行实践从 CMDB 到 IT 资源图谱的升级,改变过去的配置管理思维,全面落地 IT 资源图谱。



建设 IT 资源图谱,需要从四个定位出发,强调它的职能边界、数据生产和消费能力、基于数据总线的整合和面向多源数据的治理。同时要面向五个消费场景,强调这份数据建设的价值——流程和可视化是最基本的场景,也可以说是弱场景;自动化是一种强场景,直接影响资源数据变更;数据化消费资源图谱数据的重要场景,直观体现这部分数据价值;智能化是一个资源语义网络,理解资源和资源关系,提升特定智能场景的价值。


本文转载自成哥的世界公众号。


原文链接:https://mp.weixin.qq.com/s/6DnP5whv2Cih8K-GuE3RYg


2020-03-16 20:281269

评论

发布
暂无评论
发现更多内容

我与游戏相伴【自我访谈】

叶阳夏烟

系列 游戏 游戏观 访谈录

力扣题 - 29 解析大佬题解

Geek_663541

Java算法

LeetCode152-乘积最大子数组-medium

书旅

LeetCode 动态规划

SecureBoost算法

soolaugust

学习 同态加密 secureboost

Docker入门与简单使用

Simon

Docker Linux

疫情按下快进键,电商抢占市场红利需可靠的助力

华为云开发者联盟

高并发 电商 华为云 流量 云服务器

TypeScript 设计模式之发布-订阅模式

Geek_z9ygea

typescript 大前端 设计模式

一个域名值百万, 现在不注册,未来价更高

华为云开发者联盟

备案 商标 DNS 域名配置 SSL证书

Docker从入门到放弃---基础篇

书旅

Docker 容器

学习笔记2

Qx

学习

GrowingIO 数据采集 iOS SDK 测试实践

GrowingIO技术专栏

ios 数据采集 sdk

MySQL中几种常见的日志

Simon

MySQL 日志

云上攻击太多怎么办?不妨试试这些工具

华为云开发者联盟

黑客 云服务 数据安全 华为云 企业上云

高效程序员的45个习惯:敏捷开发修炼之道(4)

石云升

读书笔记 敏捷开发

领导发表的报告,你真的读懂了吗?

罗小龙

工作经验

安全系列之——RSA的公钥私钥有多少人能分的清楚?RSA的签名验签与加密解密如何使用公私钥?

诸葛小猿

加密解密 非对称加密 rsa 签名验签

学习源码的第八个月,我成了Spring的开源贡献者

程序员DMZ

spring 开源

Flink任务执行-3

小知识点

大数据 flink

LeetCode题解:11. 盛最多水的容器,while循环双指针,JavaScript,详细注释

Lee Chen

大前端 LeetCode

带着面试题学习红黑树操作原理,解析什么时候染色、怎么进行旋转、与2-3树有什么关联

小傅哥

Java 数据结构 小傅哥 红黑树 2-3树

常用SQL语句分享

Simon

MySQL sql

CDN百科11 | 担心纸质病例被洪水淹没?ECS+CDN+OSS如何助力医疗上云

阿里云Edge Plus

CDN 存储 云服务器

不完满的选择,要不要放弃

zhoo299

随笔杂谈

Apache Pulsar 在 BIGO 的性能调优实战(上)

Apache Pulsar

糖果不需要意义

zhoo299

随笔杂谈 电影

MySQL容器化详细教程

Simon

MySQL Docker 容器

不说再见

太以

疫情 毕业季 遗憾 大学

Docker 架构及工作原理

哈喽沃德先生

Docker 容器 微服务

ARTS打卡第一周(200511-200517)

老胡爱分享

ARTS 打卡计划 ARTS活动

MySQL下的DB Link

Simon

MySQL

CSS属性整理

kidd

与其说建设CMDB,不如说建设IT资源图谱_语言 & 开发_成哥的世界_InfoQ精选文章