持续集成引擎 Hudson 和 Jenkins 的恩恩怨怨

Hudson 是在2004年的夏天由 Sun 公司开发的(就是开发Java的那家),2005年2月开源并发布了第一个版本。

Hudson 发布的时候 CruiseControl 是CI界的老大哥,但是很快,在大约2007年的时候 Hudson 已经超越CruiseControl。2008年5月的 JavaOne 大会上,Hudson 获得了开发解决方案类的Duke's Choice奖项。从此,小弟翻身做大哥,Hudson 成为CI的代名词。

但平静的日子总是短暂的。2009年6月,乌龟壳(Oracle)收购Sun,所有人都炸裂了:

是不是写反了?!!!

一个搞闭源数据库的公司tmd收购了 风暴降生-SPARK之母-不焚者-Java女王-CPU和小型机先民的女王-Solaris的卡丽熙-打碎镣铐者-Sun Microsystem!!!

乌龟壳公司在开源界的形象一直比M$还差(后面的收购MySQL,虽然继续保持开源,但把test case藏着掖着……这都是Oracle这家公司的所作所为)

2010年9月,乌龟壳公司偷偷把Hudson®™变成了注册商标。2010年11月,Hudson社区的核心开发人员发现并angry了,双方进行了不太友好的会谈,不出意料的谈崩了。圣诞节过后,2011年的第一场雪,比以往来的要晚一些,几个秃顶的大叔在McDonald‘s的豪华包间里做了一个艰难的决定:

mv -f hudson jenkins

从此王子和公主过上了井水不犯河水的日子。Hudson 和 Jenkins 都拥有代码;

  • Hudson有Oracle和Sonatype's corporate的支持和Hudson的注册商标

  • Jenkins拥有的是大多数的核心开发者,社区,和后续更多的commit

持续集成引擎 Hudson 和 Jenkins 的恩恩怨怨_第1张图片

上图,From:Hudson and Jenkins: Two Months Later

2011年,Jenkins的卡丽熙 Kohsuke Kawaguchi 获得了Google-O'Reilly Open Source Award。2014年Kawaguchi创立了CloudBees,出任CEO,迎娶白富美,走上人生新巅峰。

CloudBees的融资历史:

Year Amount (USD) Partners

2010 $4 million Matrix Partners, Marc Fleury, Bob Bickel

2011 $10.5 million Lightspeed Venture Partners, Matrix Partners

2014 $11.2 million Verizon Ventures, Matrix Partners, Lightspeed Venture Partners, BlueCloud Ventures

2015 $23.5 million Lightspeed Venture Partners &existing investors Matrix Partners,Verizon Ventures, Blue Cloud Ventures




Jenkins的前身是Hudson,采用JAVA编写的持续集成开源工具。Hudson由Sun公司在2004年启动,第一个版本于2005年在java.net发布。2007年开始Hudson逐渐取代CruiseControl和其他的开源构建工具的江湖地位。在2008年的JavaOne大会上在开发者解决方案中获得杜克选择大奖(Duke's Choice Award)。
在2010年11月期间,因为Oracle对Sun的收购带来了Hudson的所有权问题。主要的项目贡献者和Oracle之间,尽管达成了很多协议,但有个关键问题就是商标名称“Hudson”。甲骨文在2010年12月声明拥有该名称并申请商标的权利。 因此,2011年1月11日,有人要求投票将项目名称从“Hudson”改为“Jenkins”。2011年1月29日,该建议得到社区投票的批准,创建了Jenkins项目。
2011年2月1日,甲骨文表示,他们打算继续开发Hudson,并认为Jenkins只是一个分支,而不是重命名。因此,Jenkins和Hudson继续作为两个独立的项目,每个都认为对方是自己的分支。到2013年12月,GitHub上的Jenkins拥有567个项目成员和约1,100个公共仓库,与此相对的Hudson有32个项目成员和17个公共仓库。到现在两者的差异更多,应该说Jenkins已经全面超越了Hudson。此外,大家可能是出于讨厌Oracle的情绪,作为Java开发者天然地应该支持和使用Jenkins。
从上面两个项目的logo,大家也可以看到两个项目之间的亲戚关系,都是两个老头。左边的是Jenkins,右边是Hudson。后面Hudson被Oracle捐给了Eclipse基金会,所以右边这老头有个Eclipse的光环加持。
下面讨论一下起源相同的两个CI工具,为什么Jenkins更受大家欢迎。
由开发者主导、面向开发者
首先,曾经是Hudson开发人员中的99%都转向了Jenkins的开发,其中包括最初的创建者川口清子(Kohsuke Kawaguchi)。他独自写了大部分代码,并且他的经验是Hudson各种高级特性的关键来源。Jenkins的开发社区更活跃。所以对很多人而言,从血统上看Hudson是后娘养的,Jenkins才是亲生的!
治理和社区
Jenkins开发社区的管理是很开放的。 有一个独立的董事会,其中包括来自Yahoo!, CloudBees,Cloudera和Apture等多家公司的长期以来的Hudson开发人员。每次会议后,他们定期举行治理会议并发表意见,征询公众意见。他们还将所有代码都捐赠给公共利益软件组织(SPI),以确保社区持续开放。
稳定性
分手后,针对Jenkins的贡献不断持续增加,Jenkins制定了新的长期支持发布线。社区定大约每三个月发布一次稳定版本的补丁。
插件的平台
Jenkins支持超过1000个插件。凭借多样而强大的插件Jenkins成了整个开发生命周期中的一个中心点。
到了2017年,两者的发展差异更大了。Jenkins应该说是CI工具中公认的老大,而Hudson不仅不能与Jenkins比,跟其他CI工具比也没什么优势,完全沉沦了。
slant网站对一系列CI工具做了一次对比,其中Jenkins和Hudson的情况如下。
1、基本面问题
工具JenkinsHudson最好的CI工具122最好的JAVA CI工具17最好的自托管CI工具34
2、其他支持
工具JenkinsHudson对Window支持最好1无排名最好的开源CI工具1无排名对BitBucket的支持2无排名对移动开发者支持最好的CI4无排名
3、更多特征
JenkinsHudson免费且开源与Jenkins共享了很多代码,安装还是挺简单的关键的环境变量可以安全存储支持多个SCM,包括SVN, Mercurial, Git。集成了GitHub和Bitbucket高度可配置资源和教程很多安装运行简单分布式的构建也能高效运行可跨平台部署很多高质量的插件得奖无数庞大的社区
看完上面的介绍,Jenkins和Hudson选择谁的问题,已经一目了然了。当然,可能有些同学在阅读本文之前就不知道Hudson是什么,因为Hudson早已沦落了多年了。那大家就当了解了一段历史恩怨看看吧,虽然比不上狗血的什么民国年代情感大戏。


你可能感兴趣的:(CI)