Files
nexus/wiki/concepts/Micro-Recovery.md

3.7 KiB
Raw Blame History

title, tags, created
title tags created
Micro-Recovery (微恢复)
devops
disaster-recovery
reliability
feature-management
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 单个功能 秒级 近零

实践建议

  1. 功能分级:不是所有功能都需要 Micro-Recovery 能力,关键路径必须有
  2. Fallback 路径:每个 Feature Flag 需要有明确的降级路径Fallback
  3. 可观测性:每次切换需要有清晰的日志和监控
  4. 文档化:哪些功能支持 Micro-Recovery团队需要知道
  • Feature Flag — Micro-Recovery 的技术基础
  • Kill Switch — Micro-Recovery 的紧急实现方式
  • RTO — Micro-Recovery 将 RTO 从小时降至秒级
  • RPO — Micro-Recovery 保护 RPO不触碰数据层
  • Progressive Rollout — Micro-Recovery 与渐进式放量结合实现精细化风险控制
  • Disaster Recovery — Micro-Recovery 是现代灾备的重要组成部分

Sources