持续集成概念是什么?好处有哪些?

来源:互联网 发布:windows 10 保护系统 编辑:程序博客网 时间:2024/04/29 06:05

什么事持续集成?  持续集成(CI)是一种实践,可以让团队在持续的基础 上收到反馈并进行改进,不必等到开发周期后期才寻找和修复缺陷。通俗一点儿说,就是指对于开发人员的每一次代码提交,都自动地把Repository中所有代码Check out到一个空目录,并且自动运行所有Test Case。如果成功则接受这次提交,否则告诉所有人,这是一个失败的Revision。

 常用的持续集成服务器工具:Hudson

Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,

包括:
1、持续的软件版本发布/测试项目。
2、监控外部调用执行的工作。
Hudson的特性
1、易于安装-只要把hudson.war部署到servlet容器,不需要数据库支持。
2、易于配置-所有配置都是通过其提供的web界面实现。
3、集成RSS/E-mail/IM-通过RSS发布构建结果或当构建失败时通过e-mail实时通知。
4、生成JUnit/TestNG测试报告。
5、分布式构建支持-Hudson能够让多台计算机一起构建/测试。
6、文件识别- Hudson能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
7、插件支持-Hudson可以通过插件扩展,你可以开发适合自己团队使用的工具。

持续集成的好处包括下面这些
1 减少风险
 
 通过每天集成变化的代码并发布,我们将减少项目的风险。这样做将可以推动尽早发现缺陷;尽早估量软件的质量;尽早排除假设。
----尽早发现缺陷并修复缺陷 
  软件开发中每天持续集成,并进行测试和评审,这些过程有许多的机会发现缺陷。
-----尽早估量软件质量 
  通过在持续集成中实施持续测试和评审的活动,软件产品的健康属性,例如复杂性,将被全程跟踪。
-----尽早排除假设通过在一个纯净的环境中,用同样的脚本和过程构建和测试软件,开发人员可以减少假设:是否使用了不正确的第三方的库,是否使用了不同的环境参数等。

2 减少重复的过程
 
 通过减少重复性的动作来节省时间,成本,提高效率。在软件的开发过程中,有许多重复性的活动,这些活动包括代码编译,数据库集成,测试,评审,部署,信息反馈等。通过自动化的持续集成,你将获得如下能力:
----任何时候都可以执行一致的流程;
----每个开发过程的步骤都是依次执行的;在构建脚本,将依次执行编译,自动测试等动作。
-----在版本控制库中,当代码提交发生时,构建过程自动执行。
通过减少在重复性工作上的劳动力,让开发工程师做更多有价值的工作。

3 产生可部署的软件
持续集成可以让项目组在任一点上及时提交可以安装的软件包。这是持续集成最可看见的一个益处。我们可以无休止地讨论改善软件质量和减少风险,但是对用户或者客户来说,可以安装的软件包是最切实可行的

4 使得项目更加透明

5 建立项目信心

什么阻止团队使用持续集成?

1 用于维护持续集成的费用比较高
这通常是一个被误导的错误的理解,如论你是否使用持续集成,你依然需要集成,构建,测试,部署等工作。管理一个强壮的持续集成的系统比管理手动的过程更加高效率。
2 太多的变更
一些开发组织需要改变已有的开发习惯和过程。
3 太多失败的构建
当开发人员不做个人构建之后,就将变更的代码提交到版本控制库,从而导致太多的构建失败。
4 额外的软件和硬件成本
持续构建需要独立的集成构建主机和持续集成软件等,这些需要额外的成本。
0 0
原创粉丝点击