用途
Deployment Engineer 是部署自动化、CI/CD 流水线与基础设施管理方面的专用技能,适合在搭建部署流程、配置持续集成与持续交付、管理版本发布、自动化基础设施等场景中使用。
激活时机:当你要设置部署流水线、配置 CI/CD、管理发布或自动化基础设施时,该技能会被触发。
权限边界
该技能明确区分“规划、生成配置、运行只读验证”与“实际部署”。前者并不构成部署授权。未经用户对某一确切动作和目标的明确批准,不得推送、部署、回滚、变更生产基础设施或改动远程发布状态。在执行已批准的变更前,需要说明环境、命令、预期影响、验证信号和回滚路径;如果目标或权限不明确,应停止。
主要能力
CI/CD 流水线
提供流水线阶段编排示例,典型阶段包括:lint、test、build、security、deploy-dev、deploy-staging、deploy-production。
并给出 GitHub Actions 示例,覆盖在 push(main、develop 分支)与 pull_request(main 分支)时触发,依次执行 lint、test、build 任务,构建产物通过 actions/upload-artifact 上传为 build artifact(dist/ 目录),deploy-production 任务依赖 build,仅在 github.ref == 'refs/heads/main' 时运行,使用 production 环境,下载构建产物后执行 npm run deploy。
部署策略
- 蓝绿部署(Blue-Green Deployment):通过负载均衡器在 Blue 与 Green 两套环境之间切换。
- 滚动部署(Rolling Deployment):逐步用新版本替换旧版本实例。
- 金丝雀部署(Canary Deployment):先让小比例(示例为 5%)流量进入新版本,监控指标后再逐步扩大(示例中过渡到 50%)。
环境配置
环境变量示例覆盖生产与开发环境,例如 NODE_ENV、DATABASE_URL、API_KEY、SENTRY_DSN、REDIS_URL 等。
配置管理示例以 config/production.ts 导出 database.url、database.poolSize、redis.url 等配置。
健康检查
提供 GET /health 端点示例,返回 status、timestamp 以及 database、redis、external_api 等检查项;当任一项不是 'ok' 时将 status 置为 'degraded' 并返回 503,否则返回正常 JSON。
回滚策略
给出多类回滚命令示例:
- Kubernetes:kubectl rollout undo deployment/app
- Docker:docker-compose down,再 docker-compose up -d --scale app=<previous-version>
- Git:git revert HEAD,再 git push
监控与日志
需跟踪的指标包括:部署频率、变更前置时间、平均恢复时间(MTTR)、变更失败率。
日志方面提供结构化日志示例:记录 Deployment started,并携带 version、environment、timestamp。
使用方式
技能附带脚本命令,可直接调用:
生成部署配置:
python3 scripts/generate_deploy.py --env <environment> --name <service-name>
校验部署:
python3 scripts/validate_deploy.py --input deploy-plan.md
参考资料位于 references 目录:
- references/pipelines.md — CI/CD 流水线示例
- references/kubernetes.md — Kubernetes 部署配置
- references/monitoring.md — 监控设置
适用场景
- 需要从零搭建应用部署流水线时
- 需要配置 CI/CD、编排 lint/test/build/安全扫描/多环境部署阶段时
- 需要在蓝绿、滚动、金丝雀等策略间选择发布方式时
- 需要设计环境变量、配置管理、健康检查与回滚方案时
- 需要建立部署监控指标与结构化日志时
限制
该技能不授权任何实际部署或生产变更操作。所有推送、部署、回滚、生产基础设施变更以及远程发布状态改动,均需用户对具体动作和目标的明确批准;已批准变更前须说明环境、命令、预期影响、验证信号与回滚路径;目标或权限不明确时必须停止。关于具体支持的平台列表、收费与价格等信息,资料中暂未提供。