DevOps实体建模设计

概述

在 DevOps 全流程打通方案中,实体建模是整个数据架构的核心基础。本文档详细介绍各个实体的建模思路、字段设计原则和最佳实践,帮助理解如何在UModel 中构建完整的 DevOps 数据模型。

  • 注意:下述是示例架构和实施方式,实际业务场景中可针对性调整和优化。

案例素材

当前应用案例相关素材,请参考:umodel-full-devops.zip

建模原则

1. 域分离原则

  • 组织域(organization):聚焦于研发组织结构、代码管理、AI工具使用等开发态数据。

  • 运维域(ops):聚焦于基础设施、服务部署、运行时状态等运维态数据。

  • 跨域关联:通过EntitySetLink实现域间数据的有机连接。

2. 语义化设计

  • 字段命名:使用业务语义明确的字段名称,避免技术术语。

  • 多语言支持:提供中英文描述,增强可读性。

  • 类型规范:严格定义字段类型,确保数据一致性。

3. 可扩展性

  • 预留扩展:考虑未来业务发展需要,预留扩展字段。

  • 动态支持:支持动态字段添加,适应业务变化。

  • 版本管理:通过schema版本控制实现平滑升级。

组织域实体设计

1. 研发人员(organization.developer)

业务意义

研发人员实体是DevOps流程的核心参与者,承载了人员组织结构、岗位信息、管理关系等关键数据,是连接代码贡献和服务归属的重要桥梁。

字段设计分析

字段名

类型

业务意义

设计考量

work_no

string

工号(主键)

使用工号作为唯一标识,确保人员身份的准确性

show_name

string

显示名称

用于UI展示的友好名称,支持中文显示

dept_name

string

部门名称

支持组织维度的效能分析和管理

job_code_name

string

岗位名称

用于分析不同岗位的工作特点和效能

super_work_no

string

主管工号

构建组织层级关系的关键字段

super_show_name

string

主管名称

提供主管信息的友好显示

2. 代码仓库(organization.code_repo)

业务意义

代码仓库实体代表了软件项目的源代码管理单元,是代码变更追踪、版本管理和发布溯源的基础。

字段设计分析

字段名

类型

业务意义

设计考量

project_id

integer

项目ID(主键)

使用整数ID确保唯一性和查询效率

project_path

string

项目路径

提供人类可读的项目标识,如"group/project"

project_url

string

项目URL

支持直接跳转到代码仓库页面

3. 代码发布(organization.code_release)

业务意义

代码发布实体记录了从代码到可部署版本的转换过程,是连接开发活动和运维部署的关键节点。

字段设计分析

字段名

类型

业务意义

设计考量

buildid

string

构建ID

CI/CD系统生成的唯一构建标识

commit_id

string

提交ID

Git提交的SHA值,确保代码版本追溯

repo_id

integer

仓库ID

关联到具体的代码仓库

repo_name

string

仓库名称

提供仓库的友好显示名称

release_title

string

发布标题

发布版本的人类可读标识

release_note

string

发布说明

详细的发布变更说明,不支持过滤排序

4. AI工具(organization.ai_tool)

业务意义

AI工具实体是DevOps流程中的新兴元素,用于统计和分析AI技术对研发效能的提升效果。

字段设计分析

字段名

类型

业务意义

设计考量

name

string

工具名称(主键)

简洁明确的工具标识,如"Claude"、“Copilot”

运维域实体设计

1. 集群(ops.cluster)

业务意义

集群实体代表了基础设施的顶层组织单元,承载了区域、业务、管理等多维度的基础设施信息。

字段设计分析

字段名

类型

业务意义

设计考量

cluster

string

集群名称(主键)

集群的唯一标识符

region

string

区域代码

技术层面的区域标识

region_show_name

string

区域显示名称

用户友好的区域名称

zone

string

可用区/应用名

业务维度的分区信息

business

string

所属业务

业务线归属信息

2. 主机(ops.host)

业务意义

主机实体代表了基础设施的基本计算单元,是服务运行的物理载体。

字段设计分析

字段名

类型

业务意义

设计考量

hostname

string

主机名(主键)

主机的唯一标识符

ip

string

IP地址

网络访问地址,支持过滤查询

cluster

string

所属集群

与集群实体的关联字段

zone

string

可用区

物理位置信息

3. 服务角色(ops.server_role)

业务意义

服务角色实体是运维管理的核心概念,代表了具有特定功能的服务单元,连接了服务定义和实际部署。

字段设计分析

字段名

类型

业务意义

设计考量

aliasName

string

服务角色别名(主键)

业务层面的服务标识

serverRole

string

服务角色名

技术层面的角色定义

cluster

string

所属集群

部署位置信息

zone

string

区域信息

地理位置信息

role

string

角色类型

服务类型分类

template_md5

string

模板MD5

配置版本校验

template_commit_msg

string

版本提交信息

版本变更说明

template_modify_timestamp

time

版本修改时间

版本时间戳

4. 服务模板(ops.service_template)

业务意义

服务模板实体定义了服务的标准化配置模板,是服务标准化和复用的基础。

字段设计分析

字段名

类型

业务意义

设计考量

name

string

模板名称(主键)

模板的唯一标识

group

string

所属分组

模板的分类组织

description

string

模板描述

详细的功能说明

type

string

模板类型

模板的类别分类

modify_user

string

最后修改人

变更责任人信息

modify_timestamp

timestamp

修改时间

变更时间记录

5. 服务版本(ops.service_version)

业务意义

服务版本实体记录了服务的具体版本信息,是连接服务模板和代码发布的桥梁。

字段设计分析

字段名

类型

业务意义

设计考量

template_name

string

模板名称

关联到服务模板

md5

string

版本MD5校验码

版本唯一性保证

commit

string

提交ID

关联到代码提交

message

string

提交信息

版本变更说明

submit_timestamp

timestamp

提交时间

版本创建时间

audit

string

审核状态

版本审核流程状态