Rootop 服务器运维与web架构

什么是“持续集成”Continuous Integration

| 暂无评论

      在敏捷开发中,有一个很重要的实践叫做持续集成。而什么是持续集成呢?简单来说,持续集成是频繁、持续的在多个团队成员的工作中进行集成,并且给与反馈。一个典型的持续集成周期包括以下几个步骤:
1.持续集成服务器不断从版本控制服务器上检查代码状态,看代码是否有更新。
2.如果发现代码有最新的提交,那么就从版本控制服务器下载最新的代码。
3.等代码完全更新以后,调用自动化编译脚本,进行代码编译。
4.运行所有的自动化测试。
5.进行代码分析。
6.产生可执行的软件,能够提供给测试人员进行测试。

        如果其中任何一个步骤失败,就表示该Build失败,持续集成服务器会给予相应的反馈。一般来说,持续集成服务器会有相应的管理界面,可以看到Build的状态以及相应的信息,如果Build失败,可以查看原因,是编译失败还是测试失败。或者在每次Build后,持续集成服务器发邮件通知,从邮件中可以看到最新Build的状态。当然,也可以自定义反馈方法,比如在ThoughtWorks中国,有个团队的持续集成反馈就是火山灯,黄色表示正在进行Build,绿色表示Build成功,而红色则表示Build失败,一旦发现灯变红了,所有人都不能提交代码,而应该尽快修复该Build。还有一个团队更有创意,用语音来进行反馈。如果Build成功,就会有语言提示说“Build XXXX成功”,如果失败,就会有提示“Build XXXX失败,是由XXX提交的”,被念到名字的成员就得停下来修复这个Build。

        持续集成实践的目的不是减少Build失败的次数,而是尽早发现问题,在最短的时间内解决问题,减少风险和浪费。如果想尝试持续集成,首先需要的是持续集成服务器,比如CruiseControl或者VSTS;然后需要把现有的Build自动化,比如写Ant脚本;最后就是在持续集成服务器上进行配置,比如配置版本控制,集成间隔时间,如何部署,如何反馈等。

  PS:

       敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

摘自:http://www.cnblogs.com/blusehuang/archive/2008/01/20/continuous_integration.html

原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/2012.html

作者:Venus

专注于 服务器运维与web架构 E-mail:venus#rootop.org

发表评论