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

94 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Micro-Recovery (微恢复)"
tags: [devops, disaster-recovery, reliability, feature-management]
created: 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]] 实现:
```javascript
// 结账流程示例
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团队需要知道
## 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 是现代灾备的重要组成部分
## Sources
- [[sources/rto-vs-rpo-key-differences-for-modern-disaster-recovery.md]]