脚手架 vs 大三角帆
Skaffold vs Spinnaker
我读过关于在 GCP 中实施持续交付管道的两种方法(可能还有更多):
- 支架
- Spinnaker + 容器生成器
我在 Quiklabs 中都使用过一些。如果有人对这两者都有真实的经验,你能分享一下他们之间的优缺点吗?你为什么选择一个而不是另一个?
使用 Skaffold 的管道(来自文档 https://skaffold.dev/docs/pipeline-stages/):
- 检测源代码更改
- 构建工件
- 测试工件
- 标记工件
- 渲染清单
- 部署清单
- 尾日志和转发端口
- 清理图像和资源
使用 Spinnaker + Cloud Builder 的管道:
- 开发商:
- 更改代码
- 创建一个 git 标签并推送到 repo
- 容器生成器:
- 检测到新的 git 标签
- 构建Docker图像
- 运行 单元测试
- 推送Docker图片
- Spinnaker(来自文档 https://www.spinnaker.io/concepts/):
- 检测到新图片
- 部署金丝雀
- 割接人工审批
- 部署产品(blue/green)
- 拆掉金丝雀
- 销毁旧的 PROD
我不是两者的真正高级用户,但我的理解是
- Skaffold 非常适合开发环境,适合开发人员(构建、测试、部署、调试、循环)。
- Spinnaker 更面向自动化平台的持续开发 (CI/CD),这就是为什么你可以执行金丝雀和 blue/green 部署以及类似的东西,对开发阶段没有用。
Skaffold 也是面向 Kubernetes 环境的,相比之下 Spinnaker 更不可知,可以部署到其他地方。
Skaffold 用于快速本地 Kubernetes Development.Skaffold 处理构建、推送和部署应用程序的工作流程
这使得它不同于 spinnaker,后者更面向 CI/CD 和完整的生产环境
我在这两个方面都做过,根据我的经验,skaffold 仅适用于本地开发测试,但是如果我们想扩展到生产,预生产用例,最好使用 spinnaker 管道。它(spinnaker)提供了优于 skaffold 的尖端优势
- Sophisticated/Complex部署策略:您可以定义部署
在服务 2 之前部署服务 1 等策略
- 多集群部署:简单的基于UI的部署可以配置到多个集群
- 可视化:它提供了一个丰富的 UI 来显示跨集群、区域、命名空间和云提供商的任何部署或 pod 的状态。
我读过关于在 GCP 中实施持续交付管道的两种方法(可能还有更多):
- 支架
- Spinnaker + 容器生成器
我在 Quiklabs 中都使用过一些。如果有人对这两者都有真实的经验,你能分享一下他们之间的优缺点吗?你为什么选择一个而不是另一个?
使用 Skaffold 的管道(来自文档 https://skaffold.dev/docs/pipeline-stages/):
- 检测源代码更改
- 构建工件
- 测试工件
- 标记工件
- 渲染清单
- 部署清单
- 尾日志和转发端口
- 清理图像和资源
使用 Spinnaker + Cloud Builder 的管道:
- 开发商:
- 更改代码
- 创建一个 git 标签并推送到 repo
- 容器生成器:
- 检测到新的 git 标签
- 构建Docker图像
- 运行 单元测试
- 推送Docker图片
- Spinnaker(来自文档 https://www.spinnaker.io/concepts/):
- 检测到新图片
- 部署金丝雀
- 割接人工审批
- 部署产品(blue/green)
- 拆掉金丝雀
- 销毁旧的 PROD
我不是两者的真正高级用户,但我的理解是
- Skaffold 非常适合开发环境,适合开发人员(构建、测试、部署、调试、循环)。
- Spinnaker 更面向自动化平台的持续开发 (CI/CD),这就是为什么你可以执行金丝雀和 blue/green 部署以及类似的东西,对开发阶段没有用。
Skaffold 也是面向 Kubernetes 环境的,相比之下 Spinnaker 更不可知,可以部署到其他地方。
Skaffold 用于快速本地 Kubernetes Development.Skaffold 处理构建、推送和部署应用程序的工作流程 这使得它不同于 spinnaker,后者更面向 CI/CD 和完整的生产环境
我在这两个方面都做过,根据我的经验,skaffold 仅适用于本地开发测试,但是如果我们想扩展到生产,预生产用例,最好使用 spinnaker 管道。它(spinnaker)提供了优于 skaffold 的尖端优势
- Sophisticated/Complex部署策略:您可以定义部署 在服务 2 之前部署服务 1 等策略
- 多集群部署:简单的基于UI的部署可以配置到多个集群
- 可视化:它提供了一个丰富的 UI 来显示跨集群、区域、命名空间和云提供商的任何部署或 pod 的状态。