← 返回博客列表
产品设计2026-05-28·5 分钟阅读

Update 风险分级:9 个信号决定告知多严

扫描器对比新旧描述符触发对应信号,映射 Green / Yellow / Red 风险等级。按 severity 分色如实告知,只有硬不可逆项真阻断,其余知情授权即可继续。

Update 这件事的核心矛盾是:你既要快(每天甚至每小时迭代),又要稳(失败不能丢数据 / 不能停服 / 不能误操作)。这两者天然冲突。

我们的解法是:把每次 Update 自动算一个「风险等级」,按 severity 分色如实告知影响,告知力度随等级递增。低风险一眼看完即可继续,中风险多列几条需你确认的影响,高风险逐条告知后果。只有「硬不可逆」项才真阻断,其余知情授权即可继续 — 不卡脖子。

9 个信号

扫描器对比新旧描述符,触发以下任一信号:

  • runtime_changed — Node.js → Python 这类运行时大类变化(几乎一定要 yellow)
  • runtime_version_jump — node 18 → 20 主版本号跨越
  • start_command_changed — 启动命令从 pm2 改成 systemd 等
  • port_changed — 服务监听端口变化
  • new_required_env — 新增必填环境变量(缺值启动失败)
  • pre_deploy_added — 新增 pre_deploy 钩子
  • pre_deploy_has_unreversible — 包含 DROP COLUMN / RENAME TABLE 等不可逆操作
  • breaks_api — API 破坏式变更(删字段 / 改返回类型;由发起者声明)
  • major_dep_bump — 关键依赖主版本升级(react 17 → 18)

三级映射

Green · 低风险

单条信号 ≤ 1,绿色提示,影响一眼看完,勾选知情授权即可继续,无阻断。

Yellow · 中风险

≥ 2 条信号,黄色提示,逐条列出需你确认的影响(比如「新增的 NEW_ENV 需已在凭据托管中正确配置」),知情授权后继续,健康检查窗 ×1.5(45s)。

Red · 高风险

≥ 5 条信号 / 含不可逆操作,红色提示,逐条告知 X / Y / Z 不可逆操作的后果。只有「硬不可逆」这一类项目才真阻断、必须显式处理;其余项目知情授权即可继续。Red 段失败时不自动回滚(因为已经改了数据库 schema),需人工裁决。

我们不替你决定该不该上这个 Update。但我们能让你不在凌晨 3 点手抖点错按钮的时候搞砸事情。

失败回滚怎么办?

失败自动回滚靠部署前的版本快照备份点 + 健康检查(Pro / 交付版能力),回滚到上一可用版本;它属于 Update 语义,且我们不承诺成功率。Bootstrap 首次失败是清理重来、不回滚;Red 段含不可逆 schema 变更时同样不自动回滚,需人工裁决。

同类阅读

觉得有用?试试 中杼AIOps — 把 AI 写的代码安全送上你自己的生产服务器。

立即免费试用 →