首页/开发/CI/CD 与发布速查/固件/系统 OTA 灰度发布
发布策略60 条

固件/系统 OTA 灰度发布

固件与系统更新按设备人群分批推送:借助 A/B 双分区保证失败可回退,先小批量验证升级成功率与稳定性,再逐批扩大;异常时暂停批次并保留回退通道。

CI/CD 与发布速查开发更新于 2026-10-13

固件 OTA 灰度是什么

固件与系统更新按设备人群分批推送:借助 A/B 双分区保证失败可回退,先小批量验证升级成功率与稳定性,再逐批扩大;异常时暂停后续批次并保留回退通道。推送条件(电量、网络、空闲时段)与观测指标一起定义,是 OTA 灰度的两个基本盘。

基本信息

回退机制A/B 双分区升级失败可回退到旧分区
灰度批次按设备标识或人群标签分批
观测指标升级完成率、回退率、重启与功耗异常
暂停异常时停止后续批次推送
前置条件电量、网络与空闲时段约束
速率限制服务端限速推送,避免峰值带宽打满

批次与核对

环节动作达标表现
小批验证先推少量设备完成率高且无回退
扩批核对指标后放大比例稳定性指标无劣化
异常暂停停止推送并保留回退问题设备可复原
全量批次全部完成持续观测无异常

批次示意

批次示意
# 灰度批次
批次 1% → 5% → 20% → 50% → 100%
# 每批核对后再放量
每批核对:升级完成率、回退率、稳定性指标达标后扩批
# 异常:暂停后续批次并检查回退通道

典型使用场景

  • 系统大版本升级:先小批验证兼容性,再逐批覆盖存量设备
  • 安全补丁推送:按批次限速,避免集中下载压垮服务端
  • 不可逆设备谨慎:无回退通道的设备按不可逆变更对待
  • 灰度观测:升级完成后继续观察一段时间,覆盖重启与功耗变化
  • 暂停与恢复:发现异常先停批次,定位后再决定继续或回退
没有回退通道(单分区设备)的固件灰度要按不可逆对待:先广验回退路径再开批次。
设备上报是观测基础:升级结果与运行状态要能回传,否则批次决策靠猜。

易错点

  • 无视电量与网络条件推送:下载中断抬高失败率,应设置前置条件
  • 只盯升级成功率:回退后的设备状态与耗电异常同样要纳入观测
  • 批次条件一刀切:大电量与弱网设备同批推送,失败率被拉高
  • 回退通道未演练:真需要回退时发现引导与分区配置不可用

数据来源与参考

  • Android Developers 文档《A/B (Seamless) System Updates》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌