mcpField
C
cicd

cicd

github.com/krzysztofsurdy云与 DevOps3639 次安装2 天前更新
代码仓库

关于 cicd

面向设计 CI/CD 流水线与部署实践的参考技能,适用于开发团队。内容涵盖流水线原则、部署策略、环境晋级和常见反模式。

主要功能

  1. 01区分 CI、交付与部署
  2. 02流水线设计原则
  3. 03部署策略比较
  4. 04环境晋级指南
  5. 05流水线反模式与改进

适用场景

  1. 01为版本发布选择部署策略
  2. 02安排流水线检查以加快反馈
  3. 03在不同环境间晋级制品
  4. 04检查流水线的安全性与可靠性

安装

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

$npx skills add https://github.com/krzysztofsurdy/code-virtuoso --skill cicd

安装后在 Claude Code 中输入/cicd确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
deployment-strategies.md
environment-management.md
pipeline-design.md

详细介绍

CI/CD 流水线模式与部署策略

持续集成、持续交付和持续部署是一系列自动化实践,彼此逐步递进,减少代码变更从提交到交付给用户之间的人工操作。

CI 与 CD 与 CD

实践自动化内容进入下一阶段的门槛
持续集成在每次提交时合并、构建和测试代码合并前必须通过自动化测试
持续交付打包制品并将其逐步推送到各个环境部署到生产环境前需人工批准
持续部署打通从提交到生产环境的完整流程,无需人工操作由自动化质量门禁取代人工批准

持续集成是基础。如果集成不够可靠、速度不够快,交付和部署都无法持续进行。从这里开始。


流水线设计原则

优秀的流水线能为开发者提供快速、可信的反馈,并避免有问题的代码流向用户。

原则含义
快速反馈先运行成本最低、速度最快的检查——先执行 lint 和单元测试,再执行集成测试和构建
尽早失败在首次失败时停止流水线——上游检查失败时,不要在下游阶段浪费时间
可复现性使用相同输入的每次流水线运行都必须产生相同输出——固定依赖版本,并使用不可变的基础映像
幂等性重新运行流水线阶段应安全,并产生相同结果
隔离性每次流水线运行都在干净的环境中执行——运行之间不共享状态
默认安全在运行时注入密钥,绝不将其存储在源代码中——尽早扫描漏洞

部署策略概览

策略停机时间回滚速度基础设施成本复杂度适用场景
蓝绿部署零即时(切换流量)生产环境的 2 倍低重大版本发布、规避风险的团队
金丝雀发布零快速(将流量路由回原版本)1 倍 + 少量金丝雀实例中数据驱动的团队、高流量服务
滚动部署零(配置激增部署时)慢(反向滚动部署)1 倍(复用现有资源)低无状态服务、频繁的小型变更
重建部署有(短暂)慢(完整重新部署)1 倍最低开发/预发布环境、无法同时运行两个版本的有状态应用
功能标志零即时(关闭开关)1 倍中渐进式发布、A/B 测试、主干开发

没有一种策略适用于所有情况。许多团队会组合使用多种策略,例如通过金丝雀发布搭配功能标志,控制哪些用户可以看到新功能。


环境管理概览

典型的发布路径会将制品逐步推送到越来越接近生产环境的各个环境:

dev -> staging -> production

原则:

  • 制品不可变 - 只构建一次,并在所有环境中部署同一制品。绝不要针对每个环境重新构建。
  • 配置分离 - 特定于环境的值(数据库 URL、API 密钥、功能开关)应存放在制品之外。
  • 环境一致性 - 预发布环境应尽可能在基础设施、数据形态和规模上与生产环境保持一致。
  • 临时环境 - 针对每个拉取请求启动隔离环境,以便测试和评审;PR 关闭后再将其销毁。

快速参考:流水线反模式

反模式问题修复方法
为每个环境重新构建制品预发布环境与生产环境使用不同的二进制文件只构建一次,并将同一制品逐级晋级
长时间运行的单体流水线反馈缓慢,开发者需要频繁切换上下文并行化各阶段,将流水线拆分为专注于特定任务的多个流水线
在源代码管理中存储机密凭据泄露,违反合规要求使用机密管理器,在运行时注入机密
手动配置环境配置漂移,出现“在我的机器上能运行”的问题使用基础设施即代码和容器化构建
没有回滚计划部署失败时导致服务中断时间延长自动化回滚并定期测试
跳过预发布环境直到为时已晚才发现仅在生产环境出现的错误始终至少通过一个预生产环境逐级晋级

参考文件

参考资料内容
流水线设计流水线阶段、并行化、缓存、单体仓库模式,以及包含多种格式示例的机密管理
部署策略蓝绿部署、金丝雀发布、滚动部署、功能标志、零停机迁移和回滚策略
环境管理环境晋级、基础设施即代码、临时环境、制品版本管理和健康检查

与其他技能的集成

情况推荐技能
部署的监控与可观测性microservices
流水线中的安全扫描security
CI 流水线的测试策略testing
部署期间的 API 版本管理api-design

评论

支持 Markdown