概述
实体关系建模是 UModel 的核心优势之一,通过 EntitySetLink 将分散的实体连接成有机的业务网络。在 DevOps 全流程打通方案中,关系建模不仅连接了开发态和运维态的数据,还为 AI 分析提供了丰富的上下文信息。
注意:下述是示例架构和实施方式,实际业务场景中可针对性调整和优化。
案例素材
当前应用案例相关素材,请参考:umodel-full-devops.zip
关系建模原则
1. 业务语义优先
明确关系语义:每个关系都应该有清晰的业务含义。
符合直觉:关系命名和方向符合业务人员的认知习惯。
可解释性:AI系统能够理解和解释关系的含义。
2. 跨域连接
打破数据孤岛:连接不同业务域的实体。
端到端追溯:支持从开发到运维的全链路追踪。
双向关联:考虑关系的双向查询需求。
3. 层次化设计
优先级设定:通过priority控制关系的重要程度。
关系分类:不同类型的关系承载不同的业务语义。
可扩展性:为新的关系类型预留扩展空间。
关系类型体系
1. 包含关系(contains)
语义定义
表示一个实体在物理或逻辑上包含另一个实体,体现层级和归属关系。
应用场景
源实体 | 目标实体 | 业务含义 | 价值 |
|
| 集群包含主机 | 基础设施层级管理 |
|
| 集群包含服务角色 | 服务部署位置追踪 |
|
| 服务角色部署在主机上 | 服务-主机映射 |
|
| 服务角色包含服务版本 | 版本部署关系 |
|
| 服务模板包含多个版本 | 版本管理 |
2. 来源关系(sourced_from)
语义定义
表示一个实体来源于另一个实体,体现数据血缘和溯源关系。
应用场景
源实体 | 目标实体 | 业务含义 | 价值 |
|
| 服务版本来源于代码仓库 | 版本代码溯源 |
|
| 服务版本来源于代码发布 | 部署发布关联 |
|
| 代码发布来源于代码仓库 | 发布源码关联 |
3. 调用关系(calls)
语义定义
表示服务间的调用依赖关系,体现系统架构和运行时依赖。
应用场景
源实体 | 目标实体 | 业务含义 | 价值 |
|
| 服务角色间的调用 | 服务依赖分析 |
4. 使用关系(use)
语义定义
表示一个实体使用另一个实体的服务或功能。
应用场景
源实体 | 目标实体 | 业务含义 | 价值 |
|
| 开发人员使用AI工具 | AI工具效能分析 |
5. 管理关系(manage)
语义定义
表示责任归属关系,明确资源的负责人或负责团队。
应用场景
源实体 | 目标实体 | 业务含义 | 价值 |
|
| 开发人员拥有服务角色 | 责任制管理 |
6. 直属关系(direct)
语义定义
表示组织层级中的直接上下级关系。
应用场景
源实体 | 目标实体 | 业务含义 | 价值 |
|
| 开发人员的直属关系 | 组织结构分析 |
7. 相关关系(related_to)
语义定义
表示实体间的一般性关联,用于建立松耦合的关系。
应用场景
源实体 | 目标实体 | 业务含义 | 价值 |
|
| AI工具与代码仓库相关 | 工具使用上下文 |
|
| 代码发布与开发人员相关 | 发布贡献者关联 |
跨域关系设计
1. 开发-运维桥梁关系
跨域关系是DevOps全流程打通的核心,主要体现在以下几个关键连接点:
版本溯源链路
ops.service_version ──sourced_from──► organization.code_repo
ops.service_version ──sourced_from──► organization.code_release
organization.code_release ──sourced_from──► organization.code_repo
设计价值:
实现从运行问题到源代码的直接追溯。
支持影响分析:代码变更对服务的潜在影响。
为AI分析提供完整的变更上下文。
责任归属链路
organization.developer ──manage──► ops.server_role
organization.developer ──related_to──► organization.code_release
设计价值:
建立人员与服务的责任关系。
支持故障时的快速定位和通知。
为绩效分析提供数据基础。
AI效能链路
organization.developer ──use──► organization.ai_tool
organization.ai_tool ──related_to──► organization.code_repo
设计价值:
分析AI工具对不同项目的效能提升。
个人和团队AI工具使用分析。
为AI工具推广提供数据支撑。