CC00027.CloudJenkins——|CI/CD&Jenkins_pipeline概述.V01|——|Jenkins概述|

一、Jenkins概述
### --- Jenkins历史

~~~     # 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。
~~~     # 后面Hudson被Oracle捐给了Eclipse基金会,所以右边这老头有个Eclipse的光环加持。
二、为什么Jenkins更受大家欢迎:由开发者主导、面向开发者
### --- 为什么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的情况如下。
三、Jenkins特性
### --- 基本面问题

~~~     | 工具               | Jenkins | Hudson |
~~~     | ------------------ | ------- | ------ |
~~~     | 最好的CI工具        | 1       | 22     |
~~~     | 最好的JAVA CI工具   | 1       | 7      |
~~~     | 最好的自托管CI工具   | 3       | 4      |
### --- 其他支持

~~~     | 工具                     | Jenkins | Hudson |
~~~     | ------------------------ | ------- | ------ |
~~~     | 对Window支持最好          | 1       | 无排名 |
~~~     | 最好的开源CI工具          | 1       | 无排名 |
~~~     | 对BitBucket的支持         | 2       | 无排名 |
~~~     | 对移动开发者支持最好的CI   | 4       | 无排名 |
### --- 更多特征

~~~     | Jenkins                                                      | Hudson                                    |
~~~     | ------------------------------------------------------------ | ----------------------------------------- |
~~~     | 免费且开源                                                    | 与Jenkins共享了很多代码,安装还是挺简单的 |
~~~     | 关键的环境变量可以安全存储                                      |                                           |
~~~     | 支持多个SCM,包括SVN, Mercurial, Git。集成了GitHub和Bitbucket   |                                           |
~~~     | 高度可配置                                                     |                                           |
~~~     | 资源和教程很多                                                 |                                           |
~~~     | 安装运行简单                                                   |                                           |
~~~     | 分布式的构建也能高效运行                                        |                                           |
~~~     | 可跨平台部署                                                   |                                           |
~~~     | 很多高质量的插件                                               |                                           |
~~~     | 得奖无数                                                       |                                           |
~~~     | 庞大的社区                                                     |                                           |
四、Jenkins说明
### --- Jenkins功能

~~~     持续的软件版本发布/测试项目。
~~~     监控外部调用执行的工作。
### --- Jenkins 概念

~~~     Jenkins是一个功能强大的应用程序,允许**持续集成和持续交付项目**,
~~~     无论用的是什么平台。这是一个免费的开源项目,可以处理任何类型的构建或持续集成。
~~~     集成Jenkins可以用于一些测试和部署技术。Jenkins是一种软件允许持续集成。
### --- Jenkins 目的

~~~     持续、自动地构建/测试软件项目。
~~~     监控软件开放流程,快速问题定位及处理,提提高开发效率。
### --- Jenkins 特性

~~~     开源的java语言开发持续集成工具,支持CI,CD。
~~~     易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可方便web界面配置管理。
~~~     消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生成JUnit/TestNG测试报告。
~~~     分布式构建:支持Jenkins能够让多台计算机一起构建/测试。
~~~     文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
~~~     丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven,docker等。
五、产品发布流程
### --- 产品发布流程

~~~     产品设计成型 -> 开发人员开发代码 -> 测试人员测试功能 -> 运维人员发布上线
~~~     持续集成(Continuous integration,简称CI)
~~~     持续交付(Continuous delivery)
~~~     持续部署(continuous deployment)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yanqi_vip

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值