-
Notifications
You must be signed in to change notification settings - Fork 5
Open
Description
[PRD] OTA 灰度/分组升级策略引擎
子仓库实现 Issue
| 仓库 | Issue | 说明 |
|---|---|---|
rymcu/mortise-ota |
#3 | 灰度策略模型、决策引擎、控制 API |
rymcu/admin-ota |
#2 | 灰度策略配置 UI、批次执行看板 |
rymcu/mortise-aiot |
#18 | OTA 指令载荷与 AIoT 协同补强 |
问题陈述
当前 Mortise OTA 模块已经具备升级策略、升级批次、设备通知和实时进度监控能力,但升级过程仍然偏“单批次、粗粒度、一次性下发”。
从用户视角看,主要问题有:
- 灰度能力目前主要停留在
grayPercent这样的简单比例字段,没有真正的分阶段灰度执行逻辑。 - 平台缺少按设备标签、类别或条件进行升级分组的能力,无法实现更精细的风险控制。
- 当升级失败率上升时,系统还缺少“按阶段自动暂停、人工恢复、一键回滚”的策略闭环。
- OTA 与 MQTT 的协同已有基础通道,但还没有围绕灰度策略形成更完整的指令载荷和调度语义。
这意味着 OTA 虽然已经“能执行、能观察”,但还没有达到“可控、可分批、可止损”的成熟状态。
解决方案
在现有 OTA 与 AIoT 能力之上,补齐一轮“灰度/分组升级策略引擎”:
- 升级策略支持多阶段灰度配置,例如 5% → 20% → 100%。
- 支持按设备标签、设备类别或条件组合进行目标分组。
- 批次执行引擎能按阶段推进、根据失败率自动暂停,并支持人工恢复与回滚。
- 在既有 MQTT 下发能力上补齐 OTA 协同所需的指令载荷与调度语义。
- 管理端提供灰度策略配置、阶段状态查看和人工控制入口。
本期目标不是做通用实验平台,而是把 OTA 风险控制能力提升到“可运营”的水平。
用户故事
- 作为运维管理员,我希望定义多阶段灰度策略,以便先小范围验证,再逐步放量。
- 作为运维管理员,我希望按设备标签、类别或条件组合进行分组升级,以便针对不同风险群体分别控制节奏。
- 作为运维管理员,我希望在创建批次时直接选择灰度策略,由系统自动推进阶段,而不是手工重复建批次。
- 作为运维管理员,我希望当失败率超过阈值时系统自动暂停下一阶段,以便及时止损。
- 作为运维管理员,我希望能手工恢复、终止或回滚灰度批次,以便应对异常。
- 作为运维管理员,我希望查看每个阶段的设备数、成功率和介入记录,以便复盘策略效果。
- 作为产品经理,我希望 MQTT 下发能力能更好地承接 OTA 策略调度,而不只是停留在简单通知。
实现决策
一、模块范围
mortise-ota-domain:扩展灰度/分组策略模型与批次阶段状态。mortise-ota-application:实现灰度决策引擎、阶段推进、自动暂停与回滚逻辑。mortise-ota-admin:提供批次控制与灰度执行详情接口。admin-ota:扩展策略配置页与批次执行看板。mortise-aiot:补充 OTA 指令载荷和 AIoT 协同适配。
二、灰度策略方向
本期将灰度能力从“一个比例字段”升级为“阶段化策略”:
- 每个阶段具备目标比例、进入条件和健康检查门槛。
- 阶段推进可由系统自动判断,也支持人工介入。
- 分组策略作为灰度执行的过滤器,而不是额外新建并行批次模型。
三、分组能力边界
首期优先支持:
- 标签分组
- 设备类别分组
- 基础条件组合
复杂的表达式编排、实验系统级流量控制和跨业务域标签联动不在本期范围内。
四、OTA 与 MQTT 协同
本期不重写 MQTT 网关,而是在现有 OTA 通知与 AIoT 指令下发能力之上补齐更清晰的协同语义:
- 灰度阶段推进触发更明确的 OTA 指令下发
- 设备侧可感知阶段化升级上下文
- 指令载荷围绕 OTA 场景增强,而不是从零设计新链路
五、管理端策略
- 继续沿用现有 OTA 页面,不新建独立入口
- 策略配置、批次执行和阶段看板在现有页面体系内扩展
测试决策
- 后端覆盖灰度策略解析、阶段推进、失败阈值判断、人工控制和回滚路径。
- AIoT 覆盖 OTA 指令载荷和下发协同行为。
- 前端覆盖灰度策略表单、阶段状态展示和控制操作提交流。
- 至少保留一条端到端链路:选择灰度策略建批次 → 阶段推进 → MQTT 协同下发 → 监控面板看到阶段结果。
垂直切片拆分
切片 1:灰度策略与分组模型
覆盖的用户故事:1、2
验收标准:
- 升级策略支持多阶段灰度配置。
- 支持基础分组定义与校验。
- 策略可被批次创建时引用。
切片 2:灰度决策引擎与阶段推进
覆盖的用户故事:3、4
验收标准:
- 批次可按阶段自动或半自动推进。
- 失败率达到阈值时可自动暂停。
- 阶段状态可被查询与审计。
切片 3:批次控制 API 与执行详情
覆盖的用户故事:5、6
验收标准:
- 管理端可执行暂停、恢复、终止或回滚。
- 可查询灰度阶段详情、统计和介入记录。
切片 4:AIoT 协同补强与管理端展示
覆盖的用户故事:6、7
验收标准:
- OTA 指令下发与灰度阶段语义对齐。
- 管理端可看到阶段看板和分组统计。
范围外
- 通用实验平台
- 复杂多租户灰度治理
- MQTT 网关大重构
- 自动化场景与 OTA 深度联动
补充说明
这是跨仓库需求,提交后请保留本 PRD Issue 作为 Parent PRD,子仓库实现 Issue 统一引用本 Issue。
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels