Feature Flags
Flags decouple deploy from release—and become debt if never removed. Taxonomy, ownership, and retirement matter as much as targeting.
When to Offer This Workflow
Trigger conditions:
- - Gradual rollouts, kill switches, or experiments behind flags
- Flag sprawl and unknown defaults
- Client vs server evaluation and hydration flicker
Initial offer:
Use six stages: (1) taxonomy, (2) targeting rules, (3) evaluation & consistency, (4) safety & ops, (5) lifecycle & cleanup, (6) governance). Confirm provider (LaunchDarkly, Unleash, ConfigCat, homegrown).
Stage 1: Taxonomy
Goal: Separate short-lived release flags, long-lived config flags, and experiment flags tied to analytics.
Exit condition: Naming convention and expected TTL per type.
Stage 2: Targeting Rules
Goal: Percentage rollouts, segments (tenant, plan, region), deterministic bucketing (stable user key).
Stage 3: Evaluation & Consistency
Goal: Server-side authoritative for security and billing; client flags for UX only; avoid UI flicker on hydration (SSR/CSR agreement).
Stage 4: Safety & Ops
Goal: Kill-switch runbook; audit trail for changes; safe defaults when provider unavailable (often “off”).
Stage 5: Lifecycle & Cleanup
Goal: Tickets to remove flags after full rollout; periodic audits; metric for stale flags.
Stage 6: Governance
Goal: Approvals for broadening exposure; promotion across environments; break-glass access for incidents.
Final Review Checklist
- - [ ] Flag types and naming documented
- [ ] Targeting and bucketing deterministic
- [ ] Server vs client boundaries clear
- [ ] Kill switches and defaults documented
- [ ] Cleanup process and ownership
Tips for Effective Guidance
- - Never put security-only gates solely in client-side flags.
- Pair with ab-testing when experiment analysis is primary.
Handling Deviations
- - Align with release-management for communication cadence.
功能开关
功能开关将部署与发布解耦——若从不移除则会成为技术债务。分类体系、所有权归属和退役机制与目标定位同等重要。
何时提供此工作流
触发条件:
- - 渐进式发布、熔断开关或基于开关的实验
- 功能开关泛滥及未知默认值
- 客户端与服务端评估及水合闪烁问题
初始方案:
采用六个阶段:(1) 分类体系,(2) 目标规则,(3) 评估与一致性,(4) 安全与运维,(5) 生命周期与清理,(6) 治理机制。确认提供商(LaunchDarkly、Unleash、ConfigCat、自研方案)。
阶段一:分类体系
目标: 区分短期发布开关、长期配置开关及关联分析的实验开关。
退出条件: 命名规范及各类型预期存活时间(TTL)。
阶段二:目标规则
目标: 百分比发布、细分群体(租户、套餐、区域)、确定性分桶(稳定用户标识)。
阶段三:评估与一致性
目标: 服务端权威评估用于安全与计费;客户端开关仅用于用户体验;避免水合时UI闪烁(SSR/CSR一致性)。
阶段四:安全与运维
目标: 熔断开关操作手册;变更审计追踪;提供商不可用时的安全默认值(通常为关闭)。
阶段五:生命周期与清理
目标: 全量发布后移除开关的任务工单;定期审计;废弃开关度量指标。
阶段六:治理机制
目标: 扩大曝光范围的审批流程;跨环境推广;应急事件的特权访问通道。
最终审查清单
- - [ ] 开关类型与命名已文档化
- [ ] 目标定位与分桶具有确定性
- [ ] 服务端与客户端边界清晰
- [ ] 熔断开关与默认值已文档化
- [ ] 清理流程与所有权归属
有效指导技巧
- - 切勿将仅用于安全防护的开关完全置于客户端。
- 当实验分析为主要目标时,配合A/B测试使用。
偏差处理