3.6 KiB
3.6 KiB
title, tags, created
| title | tags | created | ||||
|---|---|---|---|---|---|---|
| Micro-Recovery (微恢复) |
|
2026-04-25 |
Micro-Recovery (微恢复)
Micro-Recovery(微恢复)是指不回滚整个部署,而是针对特定功能(Feature)进行精准恢复的能力。它是 Feature Flag 带来的核心理念转变:不再将整个应用视为单一恢复单元,而是按功能粒度进行风险管理。
Definition
"Don't treat your entire app like one big system. Different features have different risks and business impacts, so they should have different recovery targets."
传统灾备将整个系统作为恢复目标,而 Micro-Recovery 将恢复粒度缩小到单个功能模块。
传统方式 vs. Micro-Recovery
| 维度 | 传统全量回滚 | Micro-Recovery |
|---|---|---|
| 恢复粒度 | 整个部署/系统 | 单个功能 |
| RTO | 小时级 | 秒级 |
| RPO | 取决于备份频率 | 近零 |
| 影响范围 | 全局(所有用户) | 局部(可定向) |
| 用户体验 | 可能感知到中断 | 可能完全无感知 |
Feature-Level Recovery Targets
不同功能有不同的风险和业务影响:
| 功能类型 | RTO 目标 | RPO 目标 | 恢复策略 |
|---|---|---|---|
| 核心支付处理 | 秒级 | 零丢失 | Kill Switch → 备用提供商 |
| 新推荐引擎 | 5 分钟 | 15 分钟 | Feature Flag → 旧算法 |
| Beta 仪表盘功能 | 30 分钟 | 1 小时 | Feature Flag → 禁用该功能 |
Micro-Recovery 的优势
1. 精准止血
发现某功能异常时,只关闭该功能,其他正常功能不受影响。
2. 用户无感知
"Your checkout flow has a bug? Disable the new version and fall back to the old one in seconds. Users might not even notice."
3. 数据保护
Feature Flag 切换只改变代码执行路径,不触碰数据层,RPO 不受影响。
4. 定向恢复
如果某功能只影响特定地区或用户群,可以只针对该群体禁用,其他用户继续使用新功能。
实现方式
Micro-Recovery 通过 Feature Flag 实现:
// 结账流程示例
async function checkoutFlow(userId, cart) {
// Feature Flag 控制是否使用新版结账
if (await flags.enabled('new-checkout-v2', userId)) {
return newCheckoutProcess(cart); // 故障时 → 切换到旧版
}
return legacyCheckoutProcess(cart);
}
Micro-Recovery vs. 其他恢复模式
| 模式 | 恢复粒度 | RTO | RPO | 复杂度 |
|---|---|---|---|---|
| 传统灾备 | 系统/数据中心 | 小时级 | 取决于备份 | 高 |
| CI/CD 回滚 | 部署版本 | 分钟级 | 可能丢失 | 中 |
| Kill Switch | 组件/功能 | 秒级 | 近零 | 低 |
| Micro-Recovery | 单个功能 | 秒级 | 近零 | 低 |
实践建议
- 功能分级:不是所有功能都需要 Micro-Recovery 能力,关键路径必须有
- Fallback 路径:每个 Feature Flag 需要有明确的降级路径(Fallback)
- 可观测性:每次切换需要有清晰的日志和监控
- 文档化:哪些功能支持 Micro-Recovery?团队需要知道
Related Concepts
- Feature Flag — Micro-Recovery 的技术基础
- Kill Switch — Micro-Recovery 的紧急实现方式
- RTO — Micro-Recovery 将 RTO 从小时降至秒级
- RPO — Micro-Recovery 保护 RPO(不触碰数据层)
- Progressive Rollout — Micro-Recovery 与渐进式放量结合实现精细化风险控制
- Disaster Recovery — Micro-Recovery 是现代灾备的重要组成部分