一篇小短文,带你认识持续集成和Jenkins

一. 什么是持续集成

所谓的持续集成,其实就是通常所说的CI(Continuous Integration),可以说它是现代软件开发的技术基础。事实上,它是真正的游戏规则改变者,CI可以从根本上改变一个团队对于整个软件开发过程的思考方式。一个好的持续集成基础设施,可以简化开发过程直到部署,也可以帮助开发人员更快地检测和修复bug,为所有开发和非开发人员提供一个有用的项目仪表盘,最后帮助团队交付更真实的业务价值给最终用户。

在使用持续集成之前,项目基本上都是充满瀑布流和甘特图,开发团队的时间和精力都耗费在发布一个版本之前的那段时期里,也就是所谓的集成阶段。在这个阶段,某些开发人员或者小团队做出的代码改动,都会零零散散地整合进最终产品。这件事情非常繁杂,有时甚至仅集成一些冲突性的变更都会消耗数月之久的时间。

持续集成就其最简单的形式来说,其实就是一个能监控我们版本控制系统变化的工具。无论任何时候,只要检测到项目代码发生了变化, 这个工具就会自动编译和测试你的应用程序。如果出现了问题,它就马上通知开发人员,以便他们可以立即着手解决这个问题。

不过持续集成的能力可不止这些,它可以做的事情还有更多。持续集成能帮我们密切监视代码库的健康,自动监控代码质量,还能帮助我们减少维护成本。

从本质上来说,持续集成是通过提供更快的反馈来降低风险的。首先,它被设计成用来更快地识别和修复问题,目的是更平滑、更快的交付和更少的 bug。

自动化部署的想法设计是很重要的。理论上,自动化部署的过程可以让我们推送每一个带有必要的自动化测试的构建到生产环境中去。这种直接自动化部署代码的实践,就是所谓的持续部署。

一句话,持续集成技术,特别是持续部署和持续交付,就是为更快地给最终用户提供价值。

 二. Jenkins简介

2.1 简介

Jenkins最开始被称作Hudson, 是一个用Java语言编写的开源的持续集成工具。就目前的持续集成市场来说,Jenkins的市场份额是遥遥领先的。

图片

Jenkins具有以下特点:

  1. Jenkins易干使用:它的用户界面非常简单、 庄观, 增加了视觉上的吸引力, 而且Jenkins作为一个整体, 具有平滑的学习曲线。

  2. Jenkins拥有良好的扩展性它能够极其灵活和方便地迎合你的想法。它有数以百计的开源插件可供使用, 而且每周会有更多的开源插件贡献进来。这些开源插件投盖系统版本控制、 构建工具、 构建通知、 外部系统集成、 用户界面定制化等。而且这些插件的安装都非常快捷和简单。

  3. 具有活跃的开源社区:Jenkins之所以受大众喜欢, 得益于其开源社区的规模和活跃度。Jenkins社区包含一个有规模的、 流动的、响应式且开放态的讨论群,活跃的邮件列表、IRC频道, 有知名度的博客区和Twitter账户。Jenkins社区的发展速度非常快, 每周都会有新功能、新特性,以及bug修复和插件更新发布出来。

2.2 发展历程

Jenkins始于2004年,Sun公司员工Kohsuke Kawaguchi基千个人爱好开发的一个名叫Hudson的项目。经过几年的发展,Sun公司内部越来越多的团队开始在各种各样的项目中使用Hudson。在2008年年初,Sun公司认可了这个工具的质量和价值,要求Kohsuke Kawaguchi把全部时间都投入到 Hudson 上,并且Hudson 提供专业的服务和技术支持。到 2010 年,Hudson 已经成为持续集成解决方案领域内的领头羊并 拥有超过 70% 的市场份额。

2009 年,Oracle收购了 Sun 公司。直到 2010 年年底, Hudson 开发者社区和 Oracle 之间出现了紧张关系,最初是由千 Java.net 的基础设施问题引起的,后来Hudson的商标问题加剧了相互之间的不愉快。这些紧张的关系也反映出大家关于把项目放在 Oracle 公司的管理之下的根本分歧。因此到了2011 年 1 月, Hudson 开发者社区投票通过 ,正式将这个项目更名为Jenkins 。

这就是大家今日所见到的 Jenkins 的由来。

猜你喜欢

转载自blog.csdn.net/JACK_SUJAVA/article/details/131857896