跳转至

ADR-0004:保守灰度节奏 + 三防线本地回滚 + 人工指标回滚

日期:2026-07-20 状态:已接受

灰度

客户端侧分桶:hash(machine_id + 热修ID) % 100 < percent。节奏(保守,P0 标准周期 = 确认后次日全量):

档位 范围 观察窗口
canary 白名单内部设备 半天
灰度 10% 过夜
全量 100% 持续监控

canary 不可跳过(CrowdStrike 教训)。percent 调整 = 人工改清单 + Jenkins 流水线发布,留审计记录。第一版不做自动放量、不做管理后台。

回滚

故障模式分派:热修 exe 起不来 → 只有本地机制能救(客户端已失联网自愈能力);程序活着但指标差 → 服务端两层。

本地三防线: 1. 预提交自检:旧 exe 以子进程拉起新 exe --selftest,不通过不提交切换; 2. 启动标记:新 exe main() 头部写标记、健康检查通过后清除,连续 2 次未清除自动换回 safe exe 并上报; 3. 回退执行者(Windows 独立升级 exe 体系 / macOS 标记触发的自我替换逻辑)永不走热修通道更新。

服务端两层(人工):percent 归零截断扩散;发布"内容为旧版、清单版本号前进"的强制回滚(兼容防降级校验)。

指标回滚第一版走人工:ELK 看板按热修版本维度对比崩溃率/下载成功率,值班负责人或项目 DRI 判断,Jenkins 一键执行。自动阈值回滚留后续演进(业界无公开成熟规范)。