36 lines
1.2 KiB
Markdown
36 lines
1.2 KiB
Markdown
---
|
||
title: "Feature Flag"
|
||
type: concept
|
||
tags: [持续交付, 特性管理, 发布工程]
|
||
sources: ["https://launchdarkly.com/blog/rto-vs-rpo/"]
|
||
last_updated: 2025-07-26
|
||
---
|
||
|
||
## Definition
|
||
Feature Flag(特性开关)是一种将代码部署与功能发布分离的技术,允许在不重新部署的情况下通过配置切换代码执行路径。
|
||
|
||
## Key Concepts
|
||
- Deploy != Release:部署代码但不立即向用户开放
|
||
- Kill Switch:紧急关闭机制,用于快速禁用问题功能
|
||
- 渐进式 Rollout:分阶段向用户群发布(1% → 5% → 25% → 100%)
|
||
|
||
## Benefits for RTO/RPO
|
||
- RTO:从小时级降至秒级(只需关闭开关)
|
||
- RPO:Rollback 时不丢失数据,只需切换代码路径
|
||
|
||
## Code Example
|
||
```javascript
|
||
if (featureFlag.enabled('new-checkout-flow')) {
|
||
return newCheckoutProcess();
|
||
} else {
|
||
return oldCheckoutProcess();
|
||
}
|
||
```
|
||
|
||
## Connections
|
||
- [[Kill Switch]] ← 紧急机制 → [[Feature Flag]]
|
||
- [[渐进式发布]] ← 发布策略 → [[Feature Flag]]
|
||
- [[RTO (Recovery Time Objective)]] ← 降低工具 → [[Feature Flag]]
|
||
- [[RPO (Recovery Point Objective)]] ← 保护工具 → [[Feature Flag]]
|
||
- [[LaunchDarkly]] ← 平台 → [[Feature Flag]]
|