我已经阅读了关于在 GCP 中实现持续交付管道的两种方法(可能还有更多):
- 支架
- 大三角帆 + 容器生成器
我在 Quiklabs 中与这两者都有过合作。如果有人对两者都有实际经验,您能否分享一下他们之间的优缺点?你为什么选择一个而不是另一个?
使用 Skaffold 的管道(来自文档https://skaffold.dev/docs/pipeline-stages/):
- 检测源代码更改
- 构建工件
- 测试工件
- 标记工件
- 渲染清单
- 部署清单
- 尾日志和转发端口
- 清理图像和资源
使用 Spinnaker + Cloud Builder 的管道:
- 开发商:
- 更改代码
- 创建一个 git 标签并推送到 repo
- 容器生成器:
- 检测新的 git 标签
- 构建 Docker 镜像
- 运行单元测试
- 推送 Docker 镜像
- Spinnaker(来自文档https://www.spinnaker.io/concepts/):
- 检测新图像
- 部署金丝雀
- 割接人工审批
- 部署 PROD(蓝/绿)
- 拆掉金丝雀
- 销毁旧产品