众所周知,Jenkins 2.0已经发布,它不仅仅是持续集成(CI),还包括持续交付(CD)。所以我想问一下,与Jenkins 2.0相比,Spinnaker的竞争优势是什么?
答案 0 :(得分:71)
我在Spinnaker的Jenkins集成以及Netflix的Pipelines功能方面进行了广泛的工作。
Spinnaker从未打算成为端到端的构建工具。詹金斯在管理SCM,运行测试,构建软件包,拥有大量插件等方面都会做得更好。
Spinnaker试图做得好的事情是使用您已发布的软件(debian软件包,docker镜像或可部署的JAR)并通过可高度自定义的可预测软件部署周期运行它。换句话说,Spinnaker中的每个功能都可以轻松实现高可用性,多帐户,多云工件部署。
Spinnaker管道采用以云为中心的视图。我们的大多数管道阶段和API控件都关注创建新服务器组和以可预测和用户友好的方式更改现有服务器组。如有疑问,我们会优化这种情况。
我们对云部署的外观有了更强烈的意见,在处理我们的CD管道中的云部署任务时,我们通常会有点击式用户界面 - 在群集x中找到图像,禁用此群集,调整大小服务器组,缩小此群集,使此群集占用流量,销毁此旧群集等。
当我们2年前开始编写Spinnaker时,我们无法使用Jenkins管道功能,因此我们构建了所需的功能。我们提出的Jenkins支持源于我们的需求,帮助Netflix的其他团队在内部构建数千个部署管道。由于Netflix大量依赖Jenkins进行构建和测试,因此Jenkins工作和Spinnaker阶段之间的转换非常顺畅。Netflix的团队不使用Spinnaker管道功能,而是在其Jenkins作业中使用Spinnaker API作为部署到AWS的快捷方式。如果您正在使用Jenkins管道或类似的CD工具,Spinnaker会使您的部署阶段非常灵活。
我们也有团队喜欢Spinnaker将Jenkins工作分解为一个应用程序的原子,可重用任务的方式。未部署到云的团队使用Spinnaker,因为我们的管道比他们能够找到的Jenkins世界更能满足他们的需求。
詹金斯的管道非常整洁。我不认为Spinnaker会完全取代Jenkins及其所做的百万件事。我们的目标是让“部署到云”步骤更简单,更具可扩展性。选择使用其中一个,一起使用或根本不使用,取决于您。答案 1 :(得分:23)
有几个原因可以选择Spinnaker而不是Jenkins(2.0)Pipeline作为CD工具:
另一方面,选择Jenkins Pipeline而不是Spinnaker有很多理由
我们最终选择了Jenkins 2.0 Pipeline作为Spinnaker和其他几个人的CD工具。
答案 2 :(得分:1)
我们使用Maven打包整个代码库以及配置,属性(即在GitHub中版本化的所有内容)并创建一个RPM。随着此流程结束 - 我们在AWS或任何其他云中触发Spinnaker管道以启动CD部分。
Spinnaker在这个给定的CD范围内非常独特。
代码促销:我们将提升的相同RPM确保我们使基础代码/ env不可变。
我们可以控制Spinnaker控制台本身的实例大小调整
只需点击一下即可退回。
所有现代部署概念,如蓝绿/红黑,金丝雀,高地等,都是OOB。
管道日志提供了一个非常有见地的视图,包括高级别和低级别
多区域部署(DR战略)
如果有人需要帮助(免费帮助!)在RHEL上安装Spinnaker,你可以告诉我。
但我必须说我们仅将Spinnaker用于以云为中心的部署。