脚手架vs大三角帆

时间:2020-05-25 07:33:57

标签: google-cloud-platform continuous-delivery spinnaker skaffold

我已经了解了两种在GCP中实现连续交付管道的方法(可能还有更多):

  • 脚手架
  • 三角帆+集装箱制造商

我在Quiklabs中都做了一些工作。如果某人在这两者上都有真正的经验,您能否分享彼此之间的优缺点?您为什么选择一个呢?

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

  • 检测源代码更改
  • 构建工件
  • 测试工件
  • 标记工件
  • 渲染清单
  • 部署清单
  • 尾部日志和转发端口
  • 清理图像和资源

使用Spinnaker + Cloud Builder的管道:

  • 开发人员:
    • 更改代码
    • 创建一个git标签并推送回购
  • 容器生成器:
    • 检测新的git标签
    • 构建Docker映像
    • 运行单元测试
    • 推送Docker映像
  • Spinnaker(来自文档https://www.spinnaker.io/concepts/):
    • 检测新图像
    • 部署Canary
    • 转换手动批准
    • 部署PROD(蓝色/绿色)
    • 拆除金丝雀
    • 销毁旧产品

3 个答案:

答案 0 :(得分:1)

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

  • Skaffold非常适合开发环境和开发人员(构建,测试,部署,调试,循环)。
  • Spinnaker是面向自动化平台(CI / CD)的更加连续的开发,这就是为什么您可以执行canary和blue / green部署以及诸如此类的东西,而在开发阶段没有用。

与Spinnaker相比,Skaffold也是面向Kubernetes的环境,它更不可知并可以部署在其他地方。

答案 1 :(得分:1)

Skaffold用于快速的本地Kubernetes开发.Skaffold处理用于构建,推送和部署应用程序的工作流 这使其与大三角帆有所不同,大三角帆更加面向具有完整生产环境的CI / CD

答案 2 :(得分:0)

我在这两个方面都做过工作,根据我的经验,skaffold 仅适用于本地开发测试,但是如果我们想扩展到生产、预生产用例,最好使用 Spinnaker 管道。 It(spinnaker) 提供了超过 skaffold 的前沿优势

  • 复杂/复杂的部署策略:您可以定义部署 在服务 2 之前部署服务 1 等策略。
  • 多集群部署:基于 UI 的简单部署可以配置到多个集群
  • 可视化:它提供了丰富的用户界面,可显示跨集群、区域、命名空间和云提供商的任何部署或 Pod 的状态。