脚手架 vs 大三角帆

Skaffold vs Spinnaker

我读过关于在 GCP 中实施持续交付管道的两种方法(可能还有更多):

我在 Quiklabs 中都使用过一些。如果有人对这两者都有真实的经验,你能分享一下他们之间的优缺点吗?你为什么选择一个而不是另一个?

使用 Skaffold 的管道(来自文档 https://skaffold.dev/docs/pipeline-stages/):

使用 Spinnaker + Cloud Builder 的管道:

我不是两者的真正高级用户,但我的理解是

  • 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 的状态。