关于 deployment
此技能引导团队选择部署目标、设计 CI/CD、生成配置,并准备验证与回滚检查。它会在关键阶段暂停以确认方案,并根据项目环境调整流程。
主要功能
- 01识别部署目标与 CI/CD 需求
- 02设计流水线并提供配置示例
- 03生成部署前后检查清单
- 04提供回滚、监控与安全建议
适用场景
- 01规划新的生产环境部署
- 02为项目自动化 CI/CD
- 03准备部署验证与回滚步骤
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ pixel-process-ug/ superkit-agents --skill deployment安装后在 Claude Code 中输入/deployment确认已加载。
详细介绍
部署
概述
设置 CI/CD 流水线和部署配置,自动完成从代码到生产环境的流程。此技能会检测部署目标、生成流水线配置、创建部署前后检查清单并配置监控,从而构建一条全自动、可随时回滚的部署流水线。
开始时说明:“我将使用部署技能来设置部署流水线。”
阶段 1:检测部署目标
在此阶段结束后暂停 — 向用户展示检测结果,待其确认后再继续。
提出问题以了解完整的部署环境:
平台检测:
- 部署到哪里?(Vercel、AWS、GCP、Azure、DigitalOcean、可自托管)
- 是否基于容器?(Docker、Kubernetes)
- 是否采用无服务器架构?(Lambda、Cloud Functions、Edge Functions)
CI/CD 检测:
- 使用什么 CI 系统?(GitHub Actions、GitLab CI、CircleCI、Jenkins)
- 什么操作会触发部署?(推送到 main、标签、手动触发)
- 是否有多个环境?(开发、预发布、生产)
基础设施检测:
- 是否需要数据库迁移?
- 如何管理环境变量?(密钥管理器、.env)
- 是否使用 CDN/缓存?是否有资源流水线?
- 是否需要监控/告警?(Datadog、Sentry、New Relic)
平台选择决策表
| 项目类型 | 推荐平台 | CI/CD | 原因 |
|---|---|---|---|
| 静态网站 / SPA | Vercel、Netlify、Cloudflare Pages | 内置 | 无需配置、边缘 CDN |
| Node.js API | AWS ECS、Cloud Run、Railway | GitHub Actions | 支持容器、自动扩缩容 |
| 单体仓库(前端 + 后端) | Vercel + AWS / Railway | GitHub Actions | 分离关注点、独立扩缩容 |
| 企业级 / 合规要求严格 | AWS EKS、GKE | GitLab CI、Jenkins | 完全掌控、审计追踪 |
| 爱好项目 / 业余项目 | Railway、Fly.io、Render | 内置或 GitHub Actions | 简单、成本低 |
| ML / 数据流水线 | AWS SageMaker、GCP Vertex | GitHub Actions + Airflow | 支持 GPU、流水线编排 |
阶段 2:设计流水线
在此阶段结束后暂停 — 向用户展示流水线设计,待其批准后再生成配置。
标准流水线阶段
┌─────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
│ Build │──▶│ Test │──▶│ Lint/ │──▶│ Deploy │──▶│ Verify │
│ │ │ │ │ Check │ │ │ │ │
└─────────┘ └──────────┘ └──────────┘ └──────────┘ └──────────┘
构建: 安装依赖项、编译、打包 测试: 单元测试、集成测试、覆盖率检查 Lint/检查: 代码检查、类型检查、安全审计 部署: 部署到目标环境 验证: 健康检查、冒烟测试、监控
分支策略决策表
| 分支 | 操作 | 环境 | 门槛 |
|---|---|---|---|
feature/* | 构建 + 测试 + Lint | 无 | PR 检查通过 |
main | 构建 + 测试 + Lint + 部署 | 预发布 | 所有检查通过 |
release/* 或标签 | 构建 + 测试 + Lint + 部署 | 生产 | 手动批准 |
hotfix/* | 构建 + 测试 + 部署 | 生产(加急) | 高级人员批准 |
部署策略决策表
| 策略 | 适用场景 | 风险等级 | 回滚速度 |
|---|---|---|---|
| 直接部署 | 个人/爱好项目、预发布环境 | 高 | 慢(重新部署) |
| 蓝绿部署 | 有健康检查、需要低停机时间的应用 | 低 | 即时(切换) |
| 金丝雀发布 | 高流量生产环境、逐步推出 | 极低 | 快(重新路由) |
| 滚动部署 | Kubernetes 集群、无状态服务 | 低 | 中等 |
| 功能标志 | 将部署与发布解耦 | 极低 | 即时(切换开关) |
阶段 3:生成配置
GitHub Actions 示例
name: CI/CD Pipeline
on:
push:
branches: [main]
pull_request:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- run: npm ci
- run: npm run lint
- run: npm run type-check
- run: npm test -- --coverage
- run: npm run build
deploy-staging:
needs: build-and-test
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
environment: staging
steps:
- uses: actions/checkout@v4
# [platform-specific deploy steps]
deploy-production:
needs: build-and-test
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
environment: production
steps:
- uses: actions/checkout@v4
# [platform-specific deploy steps]
GitLab CI 示例
stages:
- build
- test
- deploy
build:
stage: build
script:
- npm ci
- npm run build
artifacts:
paths: [dist/]
test:
stage: test
script:
- npm run lint
- npm run type-check
- npm test -- --coverage
deploy-staging:
stage: deploy
environment: staging
script:
- # platform-specific deploy
only:
- main
deploy-production:
stage: deploy
environment: production
script:
- # platform-specific deploy
when: manual
only:
- tags
阶段 4:创建部署检查清单
暂停 — 向用户展示检查清单。根据其技术栈进行定制。
部署前检查清单
## Pre-Deploy Checklist
- [ ] All tests passing on CI
- [ ] Code reviewed and approved
- [ ] No critical/high security vulnerabilities
- [ ] Environment variables configured for target environment
- [ ] Database migrations tested (if applicable)
- [ ] Feature flags configured (if applicable)
- [ ] Rollback plan documented
- [ ] Monitoring/alerts configured
- [ ] Changelog updated
- [ ] Version bumped
部署后验证
## Post-Deploy Verification
- [ ] Health check endpoint returns 200
- [ ] Smoke tests passing
- [ ] Error rate within normal range
- [ ] Response times within SLA
- [ ] Database migrations applied successfully
- [ ] Feature flags active/inactive as expected
- [ ] Monitoring dashboard showing expected metrics
- [ ] No new errors in error tracking (Sentry, etc.)
阶段 5:审查并定稿
向用户展示完整的流水线配置:
- 验证 CI/CD 配置文件语法有效
- 验证所有环境变量均有文档说明
- 验证回滚方案已准备就绪
- 验证部署前后检查清单完整
- 验证可在本地测试流水线(act 等)
将配置保存到 .github/workflows/ 或同等目录。
反模式 / 常见错误
| 反模式 | 为什么不对 | 应该怎么做 |
|---|---|---|
| 手动部署到生产环境 | 容易出错,且没有审计记录 | 通过 CI/CD 流水线实现自动化 |
| 没有回滚计划 | 部署导致生产环境故障时会陷入困境 | 每次部署前制定回滚计划 |
| 跳过预发布环境 | 问题会在生产环境中才被发现 | 始终先部署到预发布环境 |
| 在代码/配置文件中存放密钥 | 有安全漏洞风险 | 使用密钥管理器或环境变量 |
生产镜像使用 latest 标签 | 部署无法复现 | 固定使用特定版本标签 |
| 没有并发控制 | 部署之间会相互冲突 | 在 CI 中添加并发组 |
| 部署时不进行健康检查 | 无法了解部署的健康状况 | 添加健康检查端点和部署后检查 |
| 监控噪声过多导致告警疲劳 | 真实问题会被忽略 | 针对症状设置告警,并调整阈值 |
核心原则
- 全部自动化 — 关键流程中不应有手动步骤
- 快速反馈 — 尽早失败,快速失败
- 环境一致 — 预发布环境应与生产环境一致
- 随时可回滚 — 每次部署都有回滚计划
- 可观测 — 在部署前、部署期间和部署后进行监控
- 安全 — 不在代码中存放密钥,使用密钥管理
- 幂等 — 两次部署相同版本应产生相同结果
集成点
| 技能 | 集成方式 |
|---|---|
senior-devops | 提供部署配置中使用的 Docker、K8s 和 IaC 模式 |
git-commit-helper | 约定式提交可驱动变更日志生成和版本升级 |
finishing-a-development-branch | 分支完成后触发部署流水线 |
verification-before-completion | 部署后的验证关卡 |
security-review | 流水线中的安全扫描阶段 |
planning | 部署计划是实施计划的一部分 |
技能类型
灵活 — 根据项目的云服务提供商、团队规模和运维成熟度,调整流水线设计、平台选择和工具。原则(自动化、回滚、可观测性)保持不变;具体工具可以互换。
评论
支持 Markdown