# 项目部署管理 — 金山多维表格方案优化分析与完善文档 > **文档版本**: v1.0 > **日期**: 2026-03-06 > **目的**: 基于初始需求,对现有金山多维表格方案进行 **需求覆盖分析 → 缺口识别 → 优化建议 → 完善方案输出** --- ## 一、初始需求回顾与拆解 根据 [项目部署管理.md](项目部署管理.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 — 未覆盖) **问题**: 初始需求明确要求 "甘特图类似" 的部署台账和日历展示,但现有方案仅定义了表结构,未设计任何视图。 **优化建议**: 1. **在「项目本地化部署状态表」上创建以下视图**: | 视图名称 | 视图类型 | 用途 | 关键配置 | |---------|---------|------|---------| | 部署排期甘特图 | 甘特视图 | 直观展示每个部署任务的时间跨度 | 开始时间=部署开始时间,结束时间=部署结束时间,分组=部署状态 | | 部署日历 | 日历视图 | 按日查看部署安排 | 日期字段=部署开始时间,颜色=按部署状态区分 | | 全部部署列表 | 表格视图 | 默认列表,全量信息查看 | 默认按创建时间倒序 | | 进行中部署 | 表格视图(筛选) | 仅展示"部署中"的任务 | 筛选: 部署状态=部署中 | | 我的部署任务 | 表格视图(筛选) | 部署人员查看自己的任务 | 筛选: 部署人=当前用户 | 2. **甘特图配置要点**: - 横轴: 时间线(按周/按月切换) - 纵轴: 每个部署任务为一行 - 颜色编码: 排期中=灰色, 部署中=蓝色, 部署完成=绿色, 部署异常=红色 - 支持拖拽调整部署时间段 --- ### 3.2 🔴 部署排期与进度可视化(R3 — 部分覆盖) **问题**: 行业组需要"一目了然"查看部署进度,但现有方案缺少: - 进度百分比的概念 - 部署阶段的细化 - 可视化仪表盘 **优化建议**: 1. **细化部署状态枚举**(从 3 个扩展为 6 个): ``` 原方案: 排期中 → 部署中 → 部署完成 优化后: 待排期 → 已排期 → 环境准备中 → 部署中 → 验证中 → 已完成 ``` 补充异常状态:**部署异常** / **已暂停** / **已取消** 2. **新增「部署进度」公式字段**: - 类型: 公式字段 - 逻辑: 根据关联子表的填写完成度自动计算百分比 - 示例公式: ``` 进度 = (环境信息已填 × 25% + 网络信息已填 × 25% + 中间件信息已填 × 25% + 业务信息已填 × 25%) ``` 3. **新增仪表盘视图**(金山多维表格支持): - 部署状态分布饼图 - 本月部署任务数柱状图 - 平均部署耗时趋势线 - 各状态任务数统计卡片 --- ### 3.3 🟡 项目基本信息表优化(R1 — 需完善) **现有问题**: 1. 缺少「部署必要条件」相关字段(初始需求明确要求) 2. 省份/城市二级联动在多维表格中难以实现级联 3. 缺少项目紧急程度/优先级字段(影响排期) **优化建议**: 在「项目基本信息表」中 **新增以下字段**: | 字段名 | 字段类型 | 说明 | |-------|---------|------| | 部署优先级 | 单选 | P0-紧急 / P1-高 / P2-中 / P3-低 | | 期望部署日期 | 日期 | 行业组期望的上线时间 | | 部署必要条件说明 | 多行文本(富文本) | 描述部署前置条件,如:VPN 准备、服务器交付、License 等 | | 必要条件是否满足 | 单选 | 是 / 否 / 部分满足 | | 条件不满足说明 | 多行文本 | 记录哪些条件未满足 | | 项目类型 | 单选 | 新部署 / 升级 / 迁移 / 扩容 | | 省份 | 单选 | 保持下拉选择 | | 城市 | 文本 | 改为文本输入(多维表格暂不支持级联选择,备注关联省份) | | 特殊要求备注 | 多行文本(富文本) | 任何非标准化的部署需求 | --- ### 3.4 🟡 项目本地化部署升级信息表优化 **现有问题**: 1. 与基本信息表字段重复度高,且缺少升级场景的特有字段 2. 缺乏升级版本号的变更记录(从什么版本升级到什么版本) **优化建议**: | 字段名 | 字段类型 | 说明 | |-------|---------|------| | 项目名称 | 关联字段 | 关联「项目基本信息表」而非文本匹配 | | 升级类型 | 单选 | 全量升级 / 增量升级 / 热修复 / 回滚 | | 当前版本(飞服) | 文本 | 升级前的版本号 | | 目标版本(飞服) | 文本 | 升级后的版本号 | | 当前版本(监管) | 文本 | 升级前的版本号 | | 目标版本(监管) | 文本 | 升级后的版本号 | | 升级影响评估 | 多行文本(富文本) | 本次升级是否需要停机、预计影响范围 | | 回滚方案 | 多行文本(富文本) | 升级失败时的回滚策略 | | 期望升级时间窗口 | 日期范围 | 允许升级的时间窗口 | --- ### 3.5 🟡 项目本地化部署状态表优化(核心锚表) **现有问题**: 1. 状态粒度过粗(仅 3 个状态) 2. 缺少部署结果字段(成功/失败) 3. 「部署时长」应为自动计算而非手动填写 4. 缺少部署关联的来源类型标识(是首次部署还是升级) **优化建议**: | 字段名 | 字段类型 | 说明 | |-------|---------|------| | 部署编号 | 自动编号 | 唯一标识,格式如 `DEPLOY-2026-0001` | | 来源类型 | 单选 | 首次部署 / 升级部署 | | 关联项目 | 关联字段 | → 项目基本信息表 | | 关联升级记录 | 关联字段 | → 项目本地化部署升级信息表(当来源类型=升级时) | | 部署状态 | 单选 | 待排期 / 已排期 / 环境准备中 / 部署中 / 验证中 / 已完成 / 部署异常 / 已暂停 / 已取消 | | **部署结果** | 单选 | 成功 / 失败 / 部分成功 | | 部署优先级 | 引用字段 | 从项目基本信息表引用 | | 计划开始时间 | 日期时间 | 排期时确定 | | 计划结束时间 | 日期时间 | 排期时确定 | | 实际开始时间 | 日期时间 | 开始部署时记录 | | 实际结束时间 | 日期时间 | 部署完成时记录 | | **部署时长(小时)** | 公式 | `= 实际结束时间 - 实际开始时间`(自动计算) | | 部署进度 | 公式 | 基于关联子表填写状态自动计算 | | 命名空间 | 文本(唯一) | K8s Namespace | | 部署人 | 成员 | 使用成员字段而非文本 | | 部署人电话 | 引用字段 | 从成员信息自动引用 | | 备注 | 多行文本(富文本) | | --- ### 3.6 🟡 项目部署环境信息表优化 **现有问题**: 1. 关联方式写了 `todo`,未明确 2. SSH 密码标记为"不允许填写",但未说明密码如何管理 3. 缺少主机状态字段 **优化建议**: | 改动 | 说明 | |------|------| | 关联方式 | 通过「所属部署」关联字段 → 部署状态表(已在方案中提及,需明确为关联字段类型) | | 新增「主机状态」 | 单选: 待交付 / 已交付 / 已初始化 / 运行中 / 异常 | | 新增「操作系统」 | 单选: CentOS 7 / CentOS 8 / Ubuntu 20.04 / Ubuntu 22.04 / 其他 | | 新增「GPU信息」 | 文本(如有 GPU 需求的项目) | | 敏感信息处理 | SSH 密码字段 → 建议改为「密码存储方式」单选 (密码管理器/加密文档/其他),实际密码不存入多维表格 | | 新增「主机标签」 | 多选: 可标记主机用途组合 | --- ### 3.7 🟡 项目部署中间件信息表优化 **现有问题**: 1. "每行一个中间件实例,固定 7 个" — 这意味着每次部署需手动创建 7 行,效率低 2. 缺少中间件版本信息 3. 缺少中间件健康状态 **优化建议**: | 改动 | 说明 | |------|------| | 新增「中间件版本」 | 文本,如 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 关系图 ```mermaid 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 多视图设计一览 ```mermaid 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 数据迁移路径 ```mermaid 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 集成设计 + 数据迁移准备 | 迁移方案文档 | --- ## 九、总结 ### 现有方案的优点 ✅ 1. **数据建模思路正确** — 以部署状态表为核心锚表的设计符合一对多关系 2. **表结构划分合理** — 环境、网络、中间件、业务分表管理,职责清晰 3. **关联关系设计到位** — 子表通过「所属部署」字段关联核心表 ### 需要重点补强的方面 🔧 1. **视图层面** — 必须增加甘特图、日历、看板、仪表盘视图(核心差距) 2. **流程自动化** — 状态变更触发、自动化创建、通知机制 3. **权限管控** — 不同角色的数据可见性和可编辑性 4. **用户体验** — 行业组通过表单提交,看板查询进度 5. **安全策略** — 敏感信息不入表,统一密码管理 6. **状态精细化** — 部署状态从 3 个细化到 6+3 个,增加部署结果字段 7. **远期集成** — 提前规划 RMDC 数据迁移路径