本文へ移動
cccskills
無料GitHub で公開

release-strategy

设计发布策略时使用。适用于灰度 / 蓝绿 / 金丝雀 / 滚动更新 / 回滚方案。融合 Progressive Delivery + Feature Flags + 自动回滚。

インストール方法を見る

含まれるファイル(2)

  • SKILL.md6.5 KB
  • templates/release-plan-template.md1.2 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

发布策略(Release Strategy)

参考来源:Weaveworks Progressive Delivery、Argo Rollouts、Flagger、LaunchDarkly Feature Flags、Google SRE Release Engineering。

适用场景

  • 生产发布方案设计
  • 灰度 / 蓝绿 / 金丝雀选型
  • 回滚方案设计
  • Feature Flag 管理
  • 数据库迁移与代码发布协调
  • 多环境发布流程

核心原则

1. 渐进式发布(Progressive Delivery)
   不一次性全量,逐步放量

2. 可观测驱动
   每个阶段看指标再决定继续 / 回滚

3. 回滚 < 5 分钟
   任何发布都必须能快速回滚

4. 代码与配置分离
   Feature Flag 控制功能开关

5. 数据库先于代码
   Schema 兼容变更先上,代码后上

6. 自动化优先
   人工审批可以有,但执行必须自动

发布策略对比

策略停机风险复杂度适合
滚动更新无中低K8s 默认
蓝绿部署无低中快速切换
金丝雀无极低高核心服务
灰度(百分比)无低中用户级控制
Feature Flag无极低中功能级控制
大爆炸可能高低内部工具

滚动更新(Rolling Update)

# K8s 默认策略
spec:
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 25%        # 最多多 25% Pod
      maxUnavailable: 25%  # 最多少 25% Pod
流程:
  旧 Pod: [A] [A] [A] [A]
  → 新建 1 个新 Pod: [A] [A] [A] [A] [B]
  → 删 1 个旧 Pod: [A] [A] [A] [B]
  → 新建 1 个新 Pod: [A] [A] [A] [B] [B]
  → ...
  → 全部替换: [B] [B] [B] [B]

优点:零停机、简单
缺点:新旧版本共存期间可能不兼容

蓝绿部署(Blue-Green)

流程:
  1. 当前生产(Blue)正常运行
  2. 部署新版本到 Green 环境
  3. 验证 Green(健康检查 + 冒烟测试)
  4. 切换流量:Blue → Green
  5. 观察 Green
  6. 确认无问题后销毁 Blue
  7. 出问题:切回 Blue(秒级)

优点:切换快、回滚快
缺点:需要双倍资源
# K8s 蓝绿(用 Service selector 切换)
apiVersion: v1
kind: Service
metadata:
  name: my-app
spec:
  selector:
    app: my-app
    version: green  # 切换时改为 blue

金丝雀(Canary)

流程:
  1. 部署新版本到 1 个 Pod(5% 流量)
  2. 监控 5 分钟(错误率 / P99)
  3. 指标正常 → 扩到 50%
  4. 监控 10 分钟
  5. 指标正常 → 100%
  6. 指标异常 → 自动回滚到 0%

工具:
  - Argo Rollouts
  - Flagger
  - Istio + 流量分配
# Argo Rollouts 金丝雀
apiVersion: argoproj.io/v1alpha1
kind: Rollout
spec:
  strategy:
    canary:
      steps:
        - setWeight: 5
        - pause: { duration: 5m }
        - setWeight: 50
        - pause: { duration: 10m }
        - setWeight: 100
      analysis:
        templates:
          - templateName: success-rate
        startingStep: 1

Feature Flag

用途:
  - 功能开关(不发版就能开关功能)
  - 灰度(按用户 / 租户 / 百分比)
  - A/B 测试
  - Kill Switch(紧急关闭)

工具:
  - LaunchDarkly(SaaS)
  - Unleash(开源)
  - Flagsmith(开源)
  - GrowthBook(开源 + A/B)
  - 自建(Redis + 配置)

代码示例:
  if (featureFlags.isEnabled('new-checkout', { userId })) {
    return <NewCheckout />;
  }
  return <OldCheckout />;

回滚方案

三层回滚

1. 代码回滚(最快,< 1 min)
   - K8s: kubectl rollout undo
   - Vercel: 一键回滚
   - Docker: 切回旧镜像 tag

2. 配置回滚(< 5 min)
   - Feature Flag 关闭
   - 环境变量回退
   - ConfigMap 回退

3. 数据回滚(最慢,分钟~小时)
   - 数据库 PITR
   - 备份恢复
   - 补偿脚本

回滚触发条件

自动回滚(推荐):
  - 错误率 > 5% 持续 2 分钟
  - P99 > 2x 基线持续 5 分钟
  - 健康检查失败 > 3 次

手动回滚:
  - 业务指标异常(订单数骤降)
  - 用户投诉激增
  - 安全漏洞发现

K8s 回滚

# 查看历史
kubectl rollout history deployment/my-app

# 回滚到上一版本
kubectl rollout undo deployment/my-app

# 回滚到指定版本
kubectl rollout undo deployment/my-app --to-revision=3

# 查看状态
kubectl rollout status deployment/my-app

发布流程模板

1. 代码合并到 main
   ↓
2. CI 跑通(lint + test + build + scan)
   ↓
3. 构建镜像(tag = git sha)
   ↓
4. 部署到 staging
   ↓
5. staging 验证(自动 + 手动)
   ↓
6. 审批(如需)
   ↓
7. 部署到 production(金丝雀 5%)
   ↓
8. 监控 5 分钟
   ↓
9. 扩到 50% → 监控 10 分钟
   ↓
10. 扩到 100%
    ↓
11. 观察 1 小时
    ↓
12. 完成(或回滚)

数据库与代码协调

原则:Schema 变更先于代码变更

发布顺序:
  1. 数据库兼容变更(Expand)
  2. 部署新代码(读写新字段)
  3. 回填数据
  4. 数据库清理变更(Contract)

详见 database-engineer/migration-rollout skill

配套模板

  • templates/release-plan-template.md — 发布计划 + 策略 + 回滚 + 监控

质量自检

□ 发布策略选定(滚动 / 蓝绿 / 金丝雀)
□ 回滚方案可执行(< 5 min)
□ 回滚触发条件明确
□ 监控指标覆盖
□ staging 验证通过
□ 数据库变更先于代码
□ Feature Flag(如需)
□ 审批流程(如需)
□ 发布后观察期
□ 文档化(发布手册)

常见坑

  1. 没有回滚方案——故障时慌
  2. 全量发布——一次性影响所有用户
  3. 不监控就放量——问题扩散
  4. 代码先于数据库——新代码读不到新字段
  5. 回滚太慢——> 30 分钟
  6. Feature Flag 不清理——代码里一堆 if/else
  7. staging 跳过——生产才发现
  8. 镜像 tag 用 latest——不知道回滚到哪个版本
  9. 不自动化——手动部署出错
  10. 告警不配——发布后出问题不知道

与其他 skill 的协作

上游:
  ci-cd-pipeline → 构建产物
  containerization → 镜像
  kubernetes-orchestration → 部署目标

下游:
  monitoring-alerting → 发布后监控
  sre-operations 工作流 → 事故响应
  database-engineer → 迁移协调

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

A/B 测试设计与分析时使用。适用于产品实验、功能验证、转化率优化。融合假设驱动 + 样本量计算 + 置信度判断。

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

上线前业务方/产品方验收时使用。适用于功能交付确认、UAT、发布会签。融合 BDD Given-When-Then、Specification by Example、ATDD。

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

设计无障碍可访问的界面时使用。适用于满足 WCAG 标准、键盘导航、屏幕阅读器支持。优先使用 WCAG 2.2 AA 级标准 + 键盘 + 焦点 + 对比度 + ARIA。

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

实现可访问性(无障碍)时使用。覆盖 WCAG 2.2 AA / ARIA / 键盘导航 / 屏幕阅读器 / 颜色对比 / 焦点管理。融合 React Aria / Radix UI / Headless UI 实践 + axe-core 自动化测试。

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

AI 模型部署时使用。适用于推理服务 / GPU / TensorRT / 监控 / 扩缩容。

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

数据分析报告输出时使用。适用于业务分析报告、周报、专项分析、决策支持。融合洞察 + 建议 + 行动项。

日本語の概要は準備中です。原文の説明を表示しています。

zhaoxuya520/AI-Fullstack-Delivery-Workflow532026年5月19日 更新

zhaoxuya520 のスキルをすべて見る

このスキルの問題を報告する