写点什么

我们的 CMDB 模型是不是都错了

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

    阅读完需:约 8 分钟

我们的CMDB模型是不是都错了

大家有没有想过,我们过去做的 CMDB 模型都是错的?也许真的错了,可以往下看看。

当前 CMDB 模型面临的问题

当前 CMDB 的模型问题

  • 首先是思考的深度不够,当今很多 CMDB 的模型还是聚焦在底层资源。这个底层资源指的一部分是 IaaS 层的资源管理,另一部分是 PaaS 层中间件的资源管理。到上层应用这块,其实它的模型表述特别简单,只有一些应用的基本信息。

  • 第二个要讲的问题是无应用视角。今天我们创建管理了这么多资源对象,但不知道是给谁用的,其实真正的着力点是应用。这个我将其总结为无应用层的理解力。

  • 模型的动态性不强。每个模型对象调整它的属性或者关系的时候,在传统数据库里技术端的特点带来的代价特别高。我把模型的动态性抽象成两个维度,第一是模型对象之间在 CI 级别的动态性,第二个就是实例级。

  • 第四个问题是场景的过度设计。我认为场景是可以预设的,但是细粒度的模型会带来很大的管理负担。有时候会把场景考虑得过于复杂,导致这里面的模型管理后续负担特别重。从简到繁很容易,但是从繁到简很难。

  • 技术限制想象力。受 CMDB 平台技术本身的能力限制,导致无法扩展这个模型。

  • 欠缺 IT 架构思考力。我要讲的是从业务架构到应用架构再基础架构。业务架构中还包含了基础设施架构和数据架构。弄清楚这三者的关系后,就能表达出在每一层架构上所带来的本质上的关系连接到底是什么。

CMDB 系统截图

构建 CMDB 模型的正确思路

新一代 CMDB 到底新在哪儿?

新思维:突破配置管理的认知,导致边界不清。配置往 IT 资源方向转变。


新方法:自上而下的推动 CMDB 落地,而不是自下而上。


新模型:模型重构,传统的关系模型无法满足。


新技术:使用新的技术,新的功能架构,重新定义功能边界。

CMDB 元数据的两类用途

CMDB 模型最终是要实例化数据和关系的,正确的模型构建可以为多变的场景提供数据基础。


1.面向管理层的 ITSM 流程。在很多传统企业里面,CMDB 还是要为 ITSM 的流程做好数据支撑服务。


2.面向执行层的 DevOps 过程。端到端整个 IT 交付过程需要完整的元数据,特别是应用层面的元数据。


总的来说,新一代 CMDB 应该能支撑整个 IT 过程管理(ITPM),所以 CMDB 可以成为:基础元数据平台、数据总线分享平台、共享实例数据平台、统一数据规则平台等等。

两层 CMDB,构建不同管理视角


CMDB 架构分基础资源层架构和应用资源层架构。应用层资源架构把相关的资源以应用为中心实现资源整合。资源及其资源的关系称之为拓扑(应用拓扑、物理拓扑),资源管理方式有人工维护和自动发现两种方式,从详细的事前、事中和事后来看,可以分成详细的四中模式:人工、IT 对象生命周期流程、场景化变更管理、自动发现等等。

基础 CMDB 建设五原则

1.面向 IaaS 和 PaaS 设计,能够管理底层的一切资源。


2.状态控制借助运维流程自动化完成。


3.CI 的维护要深度使用自动发现,而不是人工维护。


4.资源信息必须能为上层应用提供服务。


5.必须满足基础资源的 CI 管理需要。

应用 CMDB 建设七原则

1.提供统一的应用元数据管理能力,和应用类型无关。


2.核心诉求是应用生命周期管理。


3.以应用为中心,而非基础资源为中心。


4.从应用资源的角度构建起与 IT 资源的弹性关系。


5.为应用资源、动作、状态的统一管理提供支撑。


6.以统一的基础资源层 CMDB 作为基础。


7.核心场景就是持续交付。

应用 CMDB 模型层次化理解


应用 CMDB 是面向资源的完整描述,应用的资源分成应用的部署资源、服务资源和动作资源。


  • 部署资源是一次应用部署所依赖的资源,一般又称本地资源,比如说主机 Host、程序包等等。

  • 服务资源是应用运行依赖的资源,一般有称之为附加资源(来自于 12factor),比如说应用的服务接口、应用依赖的 PaaS 资源、应用依赖的应用资源等等。

  • 场景动作是资源其上附加的动作描述,是资源的管理方法。

新一代模型的标准化框架

新一代 CMDB 的资源模型框架


核心准则:一个资源能够提供服务,还要看它关联的资源,因此必须采用结构化模型方案。纷繁复杂的 IT 对象模型,其实只有两种:一种是硬件对象模型,一种是软件对象模型。这两种模型都要用新的模型表达方法来做——结构化模型定义方法,而非关系型平面表达模式。

IaaS 层硬件对象模型


针对每一个象实例化描述它们就可以了,无非就是属性和关系。

PaaS 层对象模型核心概念


一定要深刻理解服务、实例和主机之间的层次关系,并且要精确表达注意组件和集群的区别,例如 Mysql 组件和 Mysql 集群。待会儿和 SaaS 层对象一起详解。

应用层对象模型核心概念


对于 PaaS 和 SaaS 对象来说,他们都是软件对象。我们把其对象模型整理成三个层次,这三个层次中必须要包含服务、组件服务节点和主机三层,而他们又分别对应三层、四层和七层模型。



  • 最底下的层次其实应该叫做部署资源,主机只是其中的一种。

  • 服务运行过程中起了哪些运行实例、这些实例进程在哪些主机上,主机延伸出来就是 IP 列表。组件实例有两种,一种是自有实例,当程序运行的时候需要的应用包实例化。一种是依赖实例,就是将依赖组件实例化。

  • 自有服务是自己启动的服务对外提供的时候以怎样的方式暴露出去。依赖服务则是运行时还关联了哪些服务。

  • 应用层和 PaaS 对象都要深刻理解服务、实例和主机之间的层次关系,并且要精确表达。

一个应用架构的示例

接下来,我们以一个真实的应用系统架构为例子,如下:



通过我们讲的模型,最终表达如下:



在 CMDB 模型中,必须要表达这些元素的横向和纵向关系,才能构建一个真正的应用系统完整的视图,其中包括应用架构视图、应用访问视图、应用部署视图等等。


这是我要讲的新一代 CMDB 模型的全部,为什么我说以前的 CMDB 模型可能都是错的,大家也应该看出构建模型的思路有所不同。这个地方还有一个关键的技术问题没讲:是否应该关系数据库来实现 CMDB?我的答案是否定的。但如果选择一个非关系型数据库,如何选型?考虑什么要素?这些数据库的坑怎么填?这里面有涉及到实践经验了。


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


原文链接:https://mp.weixin.qq.com/s/k3vp_CBDHmB_aRER591ZIw


2020-03-16 20:343344

评论

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

大数据培训Flink 运行架构

@零度

flink 大数据开发

OpenHarmony 官网文档有哪些上新?下篇:设备开发文档上新

OpenHarmony开发者

Open Harmony

有了钉钉和企业微信,企业还需要专属IM吗?

BeeWorks

解决方案| 快对讲综合调度系统

anyRTC开发者

音视频 快对讲 语音对讲 调度系统 视频对讲

墨天轮访谈 | 叶金荣:GreatSQL开源社区——做中国广受欢迎的开源数据库

墨天轮

数据库 开源数据库 国产数据库

开发者能力大赏,谁是技术知识达人?

华为云开发者联盟

华为云

使用 eBPF 增强监控和可观测性

观测云

一个 Angular 程序员两年多的远程办公经验分享 | 社区征文

汪子熙

程序员 远程办公 Slack 6月月更 初夏征文

详解Cache缓存与DB数据库一致性

分治实践

数据一致性 缓存Redis

开源等于免费吗?

源字节1号

开源

PingCAP 与阿里云达成合作 云数据库 TiDB 上线阿里云心选商城

极客天地

2022年中国露营市场专题洞察

易观分析

露营

ABAP BDC常见问题-FICO

桥下本有油菜花

abap

InfoQ 极客传媒 15 周年庆征文|【Docker最佳实践】Windows上安装Docker及常见问题解决

迷彩

Docker 架构 运维 6月月更 InfoQ极客传媒15周年庆

java培训MyBatis动态SQL

@零度

mybatis JAVA开发

十分钟带汝入门大数据开发语言Scala

百思不得小赵

scala 大数据 6月月更

华为云发布新伙伴体系,携手伙伴及开发者共建新生态,共创新价值

郝俸🦁好棒

华为云 生态

得物质量度量之“三级指标体系”及其应用实践

得物技术

质量保障 指标监控 工程效能 质量指标 效能平台

盲盒APP开发新玩法,盲盒APP需具备的模块

WDL22119

盲盒商城 盲盒开发 盲盒APP开发 盲盒源码 盲盒H5开发

Vue-11-条件渲染

Python研究所

6月月更

Windows/Linux系统下python的安装与环境配置

左手の明天

Python Python库安装 python安装

基于宽表的数据建模应用

百度Geek说

大数据 数据建模

PingCAP 与阿里云达成合作 云数据库 TiDB 上线阿里云心选商城

PingCAP

分布式数据库 TiDB

java开发技术培训MyBatis的缓存

@零度

mybatis JAVA开发

【直播回顾】Hello HarmonyOS系列应用篇完美收官!

HarmonyOS开发者

HarmonyOS

摆脱五彩斑斓的黑,成为七彩程序员!

禅道项目管理

InfoQ 极客传媒 15 周年庆征文 | 跨系统数据一致性问题

架构精进之路

数据一致性 构架 InfoQ极客传媒15周年庆

现场办公VS居家办公——我的2022居家办公经验分享| 社区征文

No Silver Bullet

经验分享 居家办公 6月月更 初夏征文

自主研发不断突破!索信达AI技术再获国家发明专利授权

索信达控股

支持 M3U8 格式播放的方法

CRMEB

React Suspense 尝鲜,处理前后端IO异步操作

葡萄城技术团队

大前端 SpreadJS 表格控件 纯前端表格组件

我们的CMDB模型是不是都错了_文化 & 方法_成哥的世界_InfoQ精选文章