外观主题
阅读语言

Feature Flag 功能开关 —— 白名单、按比例放量、一键回滚

软件 本站软件 3小时前
https://yxp.hk/p/MuzBAE

📦 开源仓库:learn_feature_flag · 纯 Python 标准库 · 学习演示项目

新功能上线最怕什么?出了问题想回滚,却发现要重新构建、重新部署。Feature Flag(功能开关)把「部署代码」和「发布功能」拆开:新功能先裹在开关后面上线,再按白名单 → 按比例 → 全量的节奏逐步放量;出问题把开关一关就完成回滚,不用重新部署。

核心思路

  if flags.is_on("new_checkout", user):
      new_checkout(user)   # 新流程
  else:
      old_checkout(user)   # 旧流程
  • 白名单:先只对指定用户开放
  • 按比例放量:基于 hash 的稳定分配,同一个用户每次命中结果一致
  • Kill switch:出事把开关一拨,立刻全量回到旧流程

为什么值得学

  • 安全上线:新代码渐进式触达真实用户
  • 秒级回滚:关开关就行,不碰部署
  • 部署与发布解耦:代码可以「暗发布」,想什么时候开就什么时候开

演示场景

  1. 开关关 → 所有人走旧流程
  2. 白名单 → 只有 alice 走新流程
  3. 50% 放量 → 一半用户(hash 决定)进新流程

运行

python run_all.py

纯 Python 标准库,零第三方依赖,一键跑完所有演示场景后自动退出。
仓库:github.com/yxpil/learn_feature_flag,欢迎 Star 与提 Issue。