mcpField
D
deployment-pipeline-design

deployment-pipeline-design

github.com/wshobson云与 DevOps41.9k13.9k 次安装2 周前更新
代码仓库

关于 deployment-pipeline-design

deployment-pipeline-design 是用于规划多阶段 CI/CD 流水线的技能,面向设计或维护部署流程的工程团队。它涵盖审批门禁、环境晋级、渐进式发布、健康检查与回滚方案。

主要功能

  1. 01规划流水线阶段与依赖
  2. 02定义环境间审批门禁
  3. 03设计金丝雀或蓝绿发布
  4. 04设置健康检查与冒烟测试
  5. 05配置自动回滚触发条件

适用场景

  1. 01为新服务设计 CI/CD 架构
  2. 02为多环境部署设置安全扫描
  3. 03建立金丝雀或蓝绿发布流程
  4. 04根据指标退化自动回滚

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/wshobson/agents --skill deployment-pipeline-design

安装后在 Claude Code 中输入/deployment-pipeline-design确认已加载。

附带文件references/advanced-strategies.mdreferences/details.md

详细介绍

部署流水线设计

多阶段 CI/CD 流水线的架构模式,包括审批门禁、部署策略和环境晋级工作流。

用途

设计稳健、安全的部署流水线,通过合理的阶段划分、自动化质量门禁和渐进式交付策略,在速度与安全之间取得平衡。本技能涵盖流水线架构的结构化设计,以及实现可靠生产部署的运维模式。

输入 / 输出

你需要提供
  • 应用类型:语言/运行时、容器化或裸金属、单体或微服务
  • 部署目标:Kubernetes、ECS、VM、无服务器或平台即服务
  • 环境拓扑:环境数量(dev/staging/prod)、区域布局、气隙隔离要求
  • 发布要求:可接受的停机时间、回滚 SLA、流量拆分需求、金丝雀与蓝绿偏好
  • 门禁约束:审批团队、必需测试覆盖率阈值、合规扫描(SAST、DAST、SCA)
  • 监控栈:用于自动化晋级决策的 Prometheus、Datadog、CloudWatch 或其他指标来源
本技能产出
  • 流水线配置:阶段定义、任务依赖、并行度和缓存策略
  • 部署策略:选定的发布模式及其带注释的配置(金丝雀权重、蓝绿切换、滚动参数)
  • 健康检查设置:浅层与深层就绪探针、部署后冒烟测试脚本
  • 门禁定义:自动化指标阈值和手动审批工作流
  • 回滚计划:自动化回滚触发条件和手动操作手册步骤

何时使用

  • 为新服务或平台迁移设计 CI/CD 架构
  • 在环境之间实现部署门禁
  • 配置带强制安全扫描的多环境流水线
  • 建立基于金丝雀或蓝绿策略的渐进式交付
  • 调试阶段成功但生产行为异常的流水线
  • 通过在指标劣化时自动回滚来缩短平均恢复时间

详细模式与示例

详细的模式文档位于 references/details.md。当上述导航层级不足以解决问题时,请阅读该文件。

故障排查

健康检查在流水线中通过,但服务在生产中不健康

流水线健康检查访问的是浅层 /ping 端点,即使数据库不可达也会返回 200。请使用会验证实际依赖的深层就绪检查(参见上文健康检查部分)。

金丝雀部署始终不晋级到 100%

Argo Rollouts 需要有效的 AnalysisTemplate 才能自动晋级。如果 Prometheus 查询没有返回数据(例如指标名称已更改),分析会一直处于不确定状态,晋级也会停滞。添加 inconclusiveLimit,让发布快速失败而不是挂起:

spec:
  metrics:
  - name: error-rate
    failureCondition: "result[0] > 0.05"
    inconclusiveLimit: 2   # fail after 2 inconclusive results, not hang indefinitely
    provider:
      prometheus:
        query: |
          sum(rate(http_requests_total{status=~"5.."}[2m]))
          / sum(rate(http_requests_total[2m]))
Staging 部署成功,但生产任务从未启动

检查生产环境保护规则是否已配置——缺少审查人分配意味着审批门禁会无限期等待,且没有任何通知。在 GitHub Actions 中,确保 Required reviewers 设置为 Settings → Environments → production 中已存在的用户或团队。

Docker 层缓存每次运行都被破坏,导致构建缓慢

如果 COPY . . 出现在依赖安装之前,任何源文件变更都会使依赖层失效。请调整顺序,先复制依赖清单文件:

# Good: dependencies cached separately from source code
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
回滚后数据库迁移仍作用于旧代码

服务回滚但未回滚迁移,会导致 schema/代码不匹配错误。请始终让迁移向后兼容(仅增量添加),至少持续一个发布周期,并将撤销脚本与迁移一起进行版本管理:

# migrations/V20240315__add_nullable_column.sql       (forward)
# migrations/V20240315__add_nullable_column.undo.sql  (backward)

在旧代码版本从所有环境中完全退役之前,切勿运行破坏性迁移(DROP COLUMN、ALTER NOT NULL)。

进阶主题

有关平台特定的流水线配置、多区域发布工作流以及高级 Argo Rollouts 模式,请参阅:

  • references/advanced-strategies.md — 扩展 YAML 示例、平台特定配置(GitHub Actions、GitLab CI、Azure Pipelines)、多区域金丝雀模式,以及数据库迁移回滚策略

相关技能

  • github-actions-templates - 用于 GitHub Actions 实现模式和可复用工作流
  • gitlab-ci-patterns - 用于 GitLab CI/CD 流水线实现
  • secrets-management - 用于 CI/CD 流水线中的密钥处理

评论

支持 Markdown