将Spinnaker与Jenkins 2.0作为连续交付工具进行比较

将Spinnaker与Jenkins 2.0作为连续交付工具进行比较,jenkins,jenkins-pipeline,jenkins-2,spinnaker,Jenkins,Jenkins Pipeline,Jenkins 2,Spinnaker,正如我们所知,Jenkins 2.0已经发布,它正在从持续集成(CI)扩展到持续交付(CD)。因此,我想问,与Jenkins 2.0相比,Spinnaker的竞争优势是什么?您选择Spinnaker而不是Jenkins(2.0)Pipeline作为CD工具有几个原因: Spinnaker包括一个web UI,它可以在多个云环境中实际提供资源。因此,要创建基本资源,如虚拟机、负载平衡器、集群等,您可以从与交付工具相同的UI中执行此操作 如果您的体系结构与Netflix相似,Netflix将其作为其

正如我们所知,Jenkins 2.0已经发布,它正在从持续集成(CI)扩展到持续交付(CD)。因此,我想问,与Jenkins 2.0相比,Spinnaker的竞争优势是什么?

您选择Spinnaker而不是Jenkins(2.0)Pipeline作为CD工具有几个原因:

  • Spinnaker包括一个web UI,它可以在多个云环境中实际提供资源。因此,要创建基本资源,如虚拟机、负载平衡器、集群等,您可以从与交付工具相同的UI中执行此操作
  • 如果您的体系结构与Netflix相似,Netflix将其作为其整个云管理平台,因此几乎不需要或根本不需要扩展工具来支持您的交付和基础设施管理
  • 另一方面,有很多理由选择Jenkins管道而不是Spinnaker管道

  • Spinnaker仍然需要一个构建工具,所以您可能需要维护Jenkins。所以,如果Jenkins管道成为您的CD工具,它就可以在本机上执行特定于执行器的任务
  • Spinnaker没有细粒度的访问控制(只是最近才添加了任何类型的身份验证),而Jenkins在管道中有许多插件和本机配置来提供资源级别的访问控制

  • 一切都由一个groovy脚本驱动,因此它是真正的代码配置。它允许实现其他CD工具无法实现(或至少很容易实现)的简单流程/逻辑/控制
  • 多分支管道支持,轻松创建/删除/更改分支
  • Jenkins已经获得了广泛的插件支持。例如,我们使用允许管道使用动态docker节点
  • 轻松共享/协作面向管道的代码。当然,您将拥有要跨多个管道使用的可重用功能,Jenkins通过以下工具使这一点变得容易
  • 大规模社区支持

  • 我们最终选择Jenkins 2.0管道作为CD工具,而不是Spinnaker和其他几个工具

    我在Spinnaker的Jenkins集成和Netflix的管道功能方面做了大量工作

    Spinnaker从未打算成为端到端构建工具。在管理SCM、运行测试、构建软件包、拥有大量插件等方面,Jenkins会做得更好

    Spinnaker努力做好的事情是获取您发布的软件(debian软件包、docker映像或可部署的JAR),并在可预测的、高度可定制的软件部署周期中运行它。换句话说,Spinnaker中的每一项功能都是为了便于进行高可用性、多帐户、多云工件部署而构建的

    Spinnaker管道采用以云为中心的视图。我们的大多数管道阶段和API控件都与创建新服务器组和以可预测且用户友好的方式更改现有服务器组有关。当有疑问时,这就是我们优化的情况

    我们对云部署的外观有更强烈的看法,在CD管道中处理云部署任务时,我们通常会有一个点击式UI——在群集x中查找映像,禁用此群集,调整服务器组大小,缩小此群集,使此群集占用流量,销毁此旧群集,等等


    Jenkins管道功能在我们2年多前开始编写Spinnaker时不可用,因此我们构建了我们需要的功能。我们提供的Jenkins支持源于我们帮助Netflix其他团队在内部构建数千条部署管道的需要。由于Netflix严重依赖Jenkins进行构建和测试,Jenkins工作和Spinnaker阶段之间的过渡非常无缝

    Netflix的一些团队不使用Spinnaker管道功能,而是在Jenkins作业中使用Spinnaker API作为部署到AWS的快捷方式。如果您使用的是Jenkins管道或类似的CD工具,Spinnaker会使您的部署阶段非常灵活

    我们的团队也喜欢Spinnaker将Jenkins作业分解为围绕一个应用程序的原子性、可重用任务的方式。没有部署到云端的团队使用Spinnaker,因为我们的管道比Jenkins world更适合他们的需求


    詹金斯的管道相当整洁。我认为Spinnaker永远不会完全取代Jenkins和它所做的无数事情。我们的目标是使“部署到云”步骤更简单、更具可扩展性。选择使用一个而不是另一个,一起使用,或者根本不使用,取决于您

    我们使用Maven将整个代码库与配置、属性(即GitHub中的所有版本)一起打包,并从中创建RPM。随着这个流程的结束,我们触发AWS或任何其他云中的Spinnaker管道来启动CD部件

    Spinnaker在给定的CD范围内是非常独特的

  • 代码提升:我们将提升的RPM确保了我们的底层代码/环境是不可变的

  • 我们可以从Spinnaker控制台本身控制实例的大小调整

  • 回滚只需单击一次

  • 所有现代部署概念,如蓝绿色/红黑、金丝雀、高地人等都是OOB

  • 管道日志提供了非常深刻的观点,包括高层和底层

  • 多区域部署(灾难恢复战略)

  • 如果有人需要帮助(免费帮助!)在RHEL中安装Spinnaker,您可以让我知道


    但我必须说,我们只在以云为中心的部署中使用Spinnaker

    Thanx Neil解释得很好:)“一切都是由一个groovy脚本驱动的,因此它是真正的代码配置。它允许简单的流/逻辑/控制,这在其他CD工具中是不可能的(或者至少是很容易的)。-这就是原因所在