21 KiB
项目部署管理 — 金山多维表格方案优化分析与完善文档
文档版本: v1.0
日期: 2026-03-06
目的: 基于初始需求,对现有金山多维表格方案进行 需求覆盖分析 → 缺口识别 → 优化建议 → 完善方案输出
一、初始需求回顾与拆解
根据 项目部署管理.md 的原始需求,可以拆解为以下 6 大核心诉求:
| # | 核心诉求 | 关键细节 |
|---|---|---|
| R1 | 项目部署信息表(行业组 / 交付人员填写) | 必须包含部署必要条件等信息 |
| R2 | 项目部署台账 / 甘特图视图 | 日历/列表双视图,支持可视化部署排期 |
| R3 | 部署排期表功能 | 行业组能一目了然查看项目状态、部署进度 |
| R4 | 部署基本信息记录 | 项目名称、版本、时间、状态、人员、结果 |
| R5 | 工具要求 | 富文本、附件上传、客户端简洁免安装 |
| R6 | 远期目标 | 最终在 RMDC 系统中实现 |
二、现有方案覆盖分析
2.1 覆盖矩阵
| 需求编号 | 需求摘要 | 现有方案覆盖情况 | 覆盖评级 |
|---|---|---|---|
| R1 | 部署信息表(行业组填写) | ✅ 项目基本信息表 + 升级信息表 | ⭐⭐⭐⭐ 基本覆盖 |
| R2 | 甘特图/日历视图 | ⚠️ 方案中未明确提及视图配置 | ⭐⭐ 未覆盖 |
| R3 | 部署排期进度可视化 | ⚠️ 部署状态表有状态字段,但缺少排期/进度可视化设计 | ⭐⭐ 部分覆盖 |
| R4 | 部署基本信息记录 | ✅ 部署状态表包含核心字段 | ⭐⭐⭐⭐ 基本覆盖 |
| R5 | 富文本/附件/免安装 | ✅ 金山多维表格天然支持 | ⭐⭐⭐⭐⭐ 完全覆盖 |
| R6 | 远期 RMDC 集成 | ⚠️ 未涉及数据迁移/API 对接规划 | ⭐ 未覆盖 |
2.2 覆盖得分: 约 60%
Warning
现有方案在 数据建模层面 做得比较扎实(表结构、关联关系设计合理),但在 视图层面、流程自动化、权限管控、用户体验 方面存在明显缺口。
三、逐项差距分析与优化建议
3.1 🔴 甘特图 / 日历视图(R2 — 未覆盖)
问题: 初始需求明确要求 "甘特图类似" 的部署台账和日历展示,但现有方案仅定义了表结构,未设计任何视图。
优化建议:
-
在「项目本地化部署状态表」上创建以下视图:
视图名称 视图类型 用途 关键配置 部署排期甘特图 甘特视图 直观展示每个部署任务的时间跨度 开始时间=部署开始时间,结束时间=部署结束时间,分组=部署状态 部署日历 日历视图 按日查看部署安排 日期字段=部署开始时间,颜色=按部署状态区分 全部部署列表 表格视图 默认列表,全量信息查看 默认按创建时间倒序 进行中部署 表格视图(筛选) 仅展示"部署中"的任务 筛选: 部署状态=部署中 我的部署任务 表格视图(筛选) 部署人员查看自己的任务 筛选: 部署人=当前用户 -
甘特图配置要点:
- 横轴: 时间线(按周/按月切换)
- 纵轴: 每个部署任务为一行
- 颜色编码: 排期中=灰色, 部署中=蓝色, 部署完成=绿色, 部署异常=红色
- 支持拖拽调整部署时间段
3.2 🔴 部署排期与进度可视化(R3 — 部分覆盖)
问题: 行业组需要"一目了然"查看部署进度,但现有方案缺少:
- 进度百分比的概念
- 部署阶段的细化
- 可视化仪表盘
优化建议:
-
细化部署状态枚举(从 3 个扩展为 6 个):
原方案: 排期中 → 部署中 → 部署完成 优化后: 待排期 → 已排期 → 环境准备中 → 部署中 → 验证中 → 已完成补充异常状态:部署异常 / 已暂停 / 已取消
-
新增「部署进度」公式字段:
- 类型: 公式字段
- 逻辑: 根据关联子表的填写完成度自动计算百分比
- 示例公式:
进度 = (环境信息已填 × 25% + 网络信息已填 × 25% + 中间件信息已填 × 25% + 业务信息已填 × 25%)
-
新增仪表盘视图(金山多维表格支持):
- 部署状态分布饼图
- 本月部署任务数柱状图
- 平均部署耗时趋势线
- 各状态任务数统计卡片
3.3 🟡 项目基本信息表优化(R1 — 需完善)
现有问题:
- 缺少「部署必要条件」相关字段(初始需求明确要求)
- 省份/城市二级联动在多维表格中难以实现级联
- 缺少项目紧急程度/优先级字段(影响排期)
优化建议:
在「项目基本信息表」中 新增以下字段:
| 字段名 | 字段类型 | 说明 |
|---|---|---|
| 部署优先级 | 单选 | P0-紧急 / P1-高 / P2-中 / P3-低 |
| 期望部署日期 | 日期 | 行业组期望的上线时间 |
| 部署必要条件说明 | 多行文本(富文本) | 描述部署前置条件,如:VPN 准备、服务器交付、License 等 |
| 必要条件是否满足 | 单选 | 是 / 否 / 部分满足 |
| 条件不满足说明 | 多行文本 | 记录哪些条件未满足 |
| 项目类型 | 单选 | 新部署 / 升级 / 迁移 / 扩容 |
| 省份 | 单选 | 保持下拉选择 |
| 城市 | 文本 | 改为文本输入(多维表格暂不支持级联选择,备注关联省份) |
| 特殊要求备注 | 多行文本(富文本) | 任何非标准化的部署需求 |
3.4 🟡 项目本地化部署升级信息表优化
现有问题:
- 与基本信息表字段重复度高,且缺少升级场景的特有字段
- 缺乏升级版本号的变更记录(从什么版本升级到什么版本)
优化建议:
| 字段名 | 字段类型 | 说明 |
|---|---|---|
| 项目名称 | 关联字段 | 关联「项目基本信息表」而非文本匹配 |
| 升级类型 | 单选 | 全量升级 / 增量升级 / 热修复 / 回滚 |
| 当前版本(飞服) | 文本 | 升级前的版本号 |
| 目标版本(飞服) | 文本 | 升级后的版本号 |
| 当前版本(监管) | 文本 | 升级前的版本号 |
| 目标版本(监管) | 文本 | 升级后的版本号 |
| 升级影响评估 | 多行文本(富文本) | 本次升级是否需要停机、预计影响范围 |
| 回滚方案 | 多行文本(富文本) | 升级失败时的回滚策略 |
| 期望升级时间窗口 | 日期范围 | 允许升级的时间窗口 |
3.5 🟡 项目本地化部署状态表优化(核心锚表)
现有问题:
- 状态粒度过粗(仅 3 个状态)
- 缺少部署结果字段(成功/失败)
- 「部署时长」应为自动计算而非手动填写
- 缺少部署关联的来源类型标识(是首次部署还是升级)
优化建议:
| 字段名 | 字段类型 | 说明 |
|---|---|---|
| 部署编号 | 自动编号 | 唯一标识,格式如 DEPLOY-2026-0001 |
| 来源类型 | 单选 | 首次部署 / 升级部署 |
| 关联项目 | 关联字段 | → 项目基本信息表 |
| 关联升级记录 | 关联字段 | → 项目本地化部署升级信息表(当来源类型=升级时) |
| 部署状态 | 单选 | 待排期 / 已排期 / 环境准备中 / 部署中 / 验证中 / 已完成 / 部署异常 / 已暂停 / 已取消 |
| 部署结果 | 单选 | 成功 / 失败 / 部分成功 |
| 部署优先级 | 引用字段 | 从项目基本信息表引用 |
| 计划开始时间 | 日期时间 | 排期时确定 |
| 计划结束时间 | 日期时间 | 排期时确定 |
| 实际开始时间 | 日期时间 | 开始部署时记录 |
| 实际结束时间 | 日期时间 | 部署完成时记录 |
| 部署时长(小时) | 公式 | = 实际结束时间 - 实际开始时间(自动计算) |
| 部署进度 | 公式 | 基于关联子表填写状态自动计算 |
| 命名空间 | 文本(唯一) | K8s Namespace |
| 部署人 | 成员 | 使用成员字段而非文本 |
| 部署人电话 | 引用字段 | 从成员信息自动引用 |
| 备注 | 多行文本(富文本) |
3.6 🟡 项目部署环境信息表优化
现有问题:
- 关联方式写了
todo,未明确 - SSH 密码标记为"不允许填写",但未说明密码如何管理
- 缺少主机状态字段
优化建议:
| 改动 | 说明 |
|---|---|
| 关联方式 | 通过「所属部署」关联字段 → 部署状态表(已在方案中提及,需明确为关联字段类型) |
| 新增「主机状态」 | 单选: 待交付 / 已交付 / 已初始化 / 运行中 / 异常 |
| 新增「操作系统」 | 单选: CentOS 7 / CentOS 8 / Ubuntu 20.04 / Ubuntu 22.04 / 其他 |
| 新增「GPU信息」 | 文本(如有 GPU 需求的项目) |
| 敏感信息处理 | SSH 密码字段 → 建议改为「密码存储方式」单选 (密码管理器/加密文档/其他),实际密码不存入多维表格 |
| 新增「主机标签」 | 多选: 可标记主机用途组合 |
3.7 🟡 项目部署中间件信息表优化
现有问题:
- "每行一个中间件实例,固定 7 个" — 这意味着每次部署需手动创建 7 行,效率低
- 缺少中间件版本信息
- 缺少中间件健康状态
优化建议:
| 改动 | 说明 |
|---|---|
| 新增「中间件版本」 | 文本,如 MySQL 8.0.32, Redis 7.0 等 |
| 新增「部署方式」 | 单选: 容器化 / 主机部署 / 云服务 |
| 新增「所在主机」 | 关联字段 → 项目部署环境信息表(明确中间件运行在哪台主机上) |
| 新增「管理后台地址」 | URL 类型(如 RabbitMQ/NACOS/K8S Dashboard 的管理界面) |
| 自动化创建 | 建议通过多维表格的「表单模板」或「自动化」功能,在新建部署时自动创建 7 条中间件记录 |
3.8 🔴 权限与角色设计(未覆盖)
问题: 原始需求中有明确的角色分工(行业组填写 vs 特战队填写),但现有方案未设计权限体系。
优化建议 — 权限矩阵:
| 表名 | 行业组人员 | 交付部署特战队 | 小组长 |
|---|---|---|---|
| 项目基本信息表 | ✏️ 可编辑 | 👁️ 只读 | ✏️ 可编辑 |
| 部署升级信息表 | ✏️ 可编辑 | 👁️ 只读 | ✏️ 可编辑 |
| 部署状态表 | 👁️ 只读 | ✏️ 可编辑 | ✏️ 可编辑 |
| 部署环境信息表 | 🚫 不可见 | ✏️ 可编辑 | ✏️ 可编辑 |
| 部署网络信息表 | 🚫 不可见 | ✏️ 可编辑 | ✏️ 可编辑 |
| 部署中间件信息表 | 🚫 不可见 | ✏️ 可编辑 | ✏️ 可编辑 |
| 部署业务信息表 | 🚫 不可见 | ✏️ 可编辑 | ✏️ 可编辑 |
| 项目信息汇总表 | 👁️ 只读 (部分) | 👁️ 只读 | 👁️ 只读 |
| 仪表盘 | 👁️ 只读 | 👁️ 只读 | ✏️ 可编辑 |
实施方式:
- 金山多维表格支持「协作者权限」和「字段级权限」
- 对行业组使用 表单视图 提交信息,限制其只能填写特定字段
- 敏感字段(密码类)设置为仅管理员查看
3.9 🔴 自动化流程设计(未覆盖)
问题: 方案中提到了"自动化触发"的概念,但未设计具体的自动化规则。
优化建议 — 自动化规则清单:
| # | 触发条件 | 执行动作 | 说明 |
|---|---|---|---|
| A1 | 新建「项目基本信息」记录 | 自动在「部署状态表」创建一条记录(状态=待排期) | 首次部署自动关联 |
| A2 | 新建「升级信息」记录 | 自动在「部署状态表」创建一条记录(来源类型=升级,状态=待排期) | 升级部署自动关联 |
| A3 | 「部署状态」变更为"部署中" | ① 自动记录「实际开始时间」 ② 检查「环境信息表」是否已填(否则阻止切换) | 状态守卫 |
| A4 | 「部署状态」变更为"已完成" | ① 自动记录「实际结束时间」 ② 检查网络/中间件信息是否已填 ③ 自动计算部署时长 | 完成守卫 |
| A5 | 「部署状态」变更为"部署异常" | 发送通知给小组长和部署人 | 异常告警 |
| A6 | 新建「部署状态」记录 | 自动创建 7 条中间件记录模板 | 减少手动操作 |
| A7 | 「部署优先级」为 P0 且超过 24h 未排期 | 发送催办通知 | 优先级预警 |
注意: 金山多维表格的「自动化」功能支持上述大部分规则,但 状态守卫(A3/A4 的条件检查阻止切换) 可能需要通过 AirScript 脚本 实现,建议优先验证此能力。
3.10 🟡 通知机制设计(未覆盖)
| 通知场景 | 通知对象 | 通知方式 |
|---|---|---|
| 新部署需求提交 | 特战队全员 | 多维表格通知 + 企微/飞书机器人 |
| 部署排期确认 | 行业组提交人 | 多维表格通知 |
| 部署状态变更 | 行业组提交人 + 部署人 | 多维表格通知 |
| 部署异常 | 小组长 + 部署人 | 多维表格通知 + 企微/飞书机器人 |
| 部署超时预警 | 小组长 | 多维表格通知 |
四、完善后的表结构总览
4.1 ER 关系图
erDiagram
PROJECT_INFO["项目基本信息表"] {
string 项目名称
string 行业组人员
string 电话
string 省份
string 城市
enum 部署优先级 "P0-P3"
date 期望部署日期
text 部署必要条件说明
enum 必要条件是否满足
enum 项目类型
file 部署资源信息
}
UPGRADE_INFO["部署升级信息表"] {
ref 项目名称 "关联项目基本信息"
enum 升级类型
string 当前版本_飞服
string 目标版本_飞服
string 当前版本_监管
string 目标版本_监管
text 升级影响评估
text 回滚方案
daterange 期望升级窗口
file 部署资源信息
}
DEPLOY_STATUS["部署状态表(核心锚表)"] {
auto 部署编号
enum 来源类型
enum 部署状态
enum 部署结果
ref 部署优先级 "引用"
datetime 计划开始时间
datetime 计划结束时间
datetime 实际开始时间
datetime 实际结束时间
formula 部署时长
formula 部署进度
string 命名空间
member 部署人
text 备注
}
ENV_INFO["部署环境信息表"] {
string 公网IP
bool 能否访问公网
string 内网IP
int SSH端口
string SSH用户名
enum 主机功能
enum 主机状态
enum 操作系统
int CPU核心数
string CPU型号
string 内存大小
string 系统盘大小
string 数据盘大小
string GPU信息
text 备注
}
NET_INFO["部署网络信息表"] {
string 访问地址
bool 是否开启SSL
text 端口信息说明
enum 网络环境
enum 主机管理方式
string 管理后台地址
string VPN下载地址
text 备注
}
MIDDLEWARE_INFO["部署中间件信息表"] {
enum 中间件类型
string 中间件版本
enum 部署方式
bool 是否暴露公网
string 公网端口
string 内网IP
string 内网端口
string 用户名
string 管理后台地址
}
BIZ_INFO["部署业务信息表"] {
string 微服务名称
string 微服务分支
string 微服务镜像
string 微服务版本
enum 部署状态
}
PROJECT_INFO ||--o{ DEPLOY_STATUS : "触发创建"
UPGRADE_INFO ||--o{ DEPLOY_STATUS : "触发创建"
UPGRADE_INFO }o--|| PROJECT_INFO : "关联"
DEPLOY_STATUS ||--o{ ENV_INFO : "1:N 关联"
DEPLOY_STATUS ||--o{ NET_INFO : "1:N 关联"
DEPLOY_STATUS ||--o{ MIDDLEWARE_INFO : "1:N 关联"
DEPLOY_STATUS ||--o{ BIZ_INFO : "1:N 关联"
ENV_INFO ||--o{ MIDDLEWARE_INFO : "所在主机"
4.2 多视图设计一览
graph LR
A["部署状态表"] --> B["表格视图 - 全量列表"]
A --> C["甘特视图 - 部署排期"]
A --> D["日历视图 - 按日查看"]
A --> E["看板视图 - 按状态分列"]
A --> F["表单视图 - 行业组提交入口"]
A --> G["仪表盘 - 统计概览"]
style C fill:#4CAF50,color:#fff
style D fill:#2196F3,color:#fff
style E fill:#FF9800,color:#fff
style G fill:#9C27B0,color:#fff
五、行业组用户体验优化
5.1 提交入口设计
行业组人员不应直接操作表格,而应通过 表单视图 提交部署需求,降低使用门槛。
行业组填写流程:
┌─────────────────────────────────────┐
│ 部署需求提交表单(表单视图) │
│ │
│ ① 选择: 新部署 / 升级 │
│ ② 填写项目基本信息 │
│ ③ 上传部署资源附件 │
│ ④ 填写必要条件说明 │
│ ⑤ 选择优先级 │
│ ⑥ 填写期望部署日期 │
│ ⑦ 提交 │
│ │
│ → 自动触发创建部署状态记录 │
│ → 自动通知特战队 │
└─────────────────────────────────────┘
5.2 查询入口设计
行业组查询流程:
┌─────────────────────────────────────┐
│ 部署进度看板(看板视图) │
│ │
│ 待排期 │ 已排期 │ 部署中 │ 已完成 │
│ ┌───┐ │ ┌───┐ │ ┌───┐ │ ┌───┐ │
│ │P01│ │ │P03│ │ │P02│ │ │P05│ │
│ │P04│ │ │ │ │ │ │ │ │P06│ │
│ └───┘ │ └───┘ │ └───┘ │ │P07│ │
│ │ │ │ └───┘ │
│ │
│ 点击卡片 → 查看部署详情 │
│ 包含: 状态、部署人、进度、时间线 │
└─────────────────────────────────────┘
六、敏感信息安全策略
| 信息类型 | 处理方式 | 说明 |
|---|---|---|
| SSH 密码 | ❌ 不存入多维表格 | 使用密码管理器(如 1Password / Vault)单独管理 |
| 管理后台密码 | ❌ 不存入多维表格 | 同上 |
| VPN 账号密码 | ❌ 不存入多维表格 | 同上 |
| 公网 IP | ⚠️ 字段权限控制 | 仅特战队和小组长可见 |
| 内网 IP | ⚠️ 字段权限控制 | 仅特战队和小组长可见 |
安全提醒: 金山多维表格作为在线协作工具,严禁在表格中存储任何明文密码。建议统一使用 密码管理平台 管理所有凭据,表格中仅存储「密码存储路径/编号」的引用。
七、远期 RMDC 集成规划
7.1 数据迁移路径
graph LR
A["金山多维表格(当前方案)"] -->|API导出| B["数据清洗 ETL"]
B -->|API导入| C["RMDC系统(远期目标)"]
A -->|阶段1| D["业务验证期 跑通流程"]
D -->|阶段2| E["模板固化期 优化表结构"]
E -->|阶段3| C
7.2 设计原则
- 字段命名规范化: 当前表格的字段命名应与 RMDC 数据库 Schema 保持一致,降低迁移成本
- 状态枚举统一: 部署状态的枚举值应提前定义常量表,一致对齐
- API 预留: 利用金山多维表格的开放 API,定期将数据同步到内部数据库备份
八、实施计划
| 阶段 | 时间 | 内容 | 交付物 |
|---|---|---|---|
| Phase 1 | 第 1 周 | 创建优化后的表结构 + 基础视图 | 7 张数据表 + 5 个视图 |
| Phase 2 | 第 2 周 | 配置自动化规则 + 权限设置 | 自动化规则 7 条 + 权限矩阵 |
| Phase 3 | 第 3 周 | 创建表单入口 + 仪表盘 | 表单视图 2 个 + 仪表盘 1 个 |
| Phase 4 | 第 4 周 | 试运行 + 收集反馈 + 调整 | 试运行报告 |
| Phase 5 | 持续 | RMDC 集成设计 + 数据迁移准备 | 迁移方案文档 |
九、总结
现有方案的优点 ✅
- 数据建模思路正确 — 以部署状态表为核心锚表的设计符合一对多关系
- 表结构划分合理 — 环境、网络、中间件、业务分表管理,职责清晰
- 关联关系设计到位 — 子表通过「所属部署」字段关联核心表
需要重点补强的方面 🔧
- 视图层面 — 必须增加甘特图、日历、看板、仪表盘视图(核心差距)
- 流程自动化 — 状态变更触发、自动化创建、通知机制
- 权限管控 — 不同角色的数据可见性和可编辑性
- 用户体验 — 行业组通过表单提交,看板查询进度
- 安全策略 — 敏感信息不入表,统一密码管理
- 状态精细化 — 部署状态从 3 个细化到 6+3 个,增加部署结果字段
- 远期集成 — 提前规划 RMDC 数据迁移路径