首页 > 如何理解持续集成?

如何理解持续集成?

看了一些资料对持续集成的概念还是有些模糊
如何理解“持续”和“集成”这两个词语?
另外,php有哪些持续集成工具?大家又都是怎样实现持续集成的?


先说“集成”,举个栗子,系统有A、B两个模块,分别是甲、乙两个人在开发,当两人吭哧吭哧开发了1个月终于把各自的功能都完成了,这时需要把AB模块集成起来,但一集成就发现各种问题,编译报错,部署不了,测试发现bug,这些Bug不知道是A模块还是B模块的,这就是传统集成的问题。

集成包括代码的合并,编译完成,成功部署,测试通过,1个bug的修复代价随着发现的时间呈指数增长,比如bug在代码检入后就发现可能花几分钟就解决了,但等到了上测试环境或者生产环境可能要花几天甚至几个月的时间,所以越早进行集成就可以越早的发现问题。

“持续集成”指的是频繁地进行集成,从以前的每日集成到现在一天进行几次到几十次的集成都是持续集成。最简单的持续集成可以是一台旧电脑,每人提交完代码就到电脑那合并一下代码,然后编译,部署,跑一下测试,测试通过了就表示集成成功了。这里有篇文章可以看下:http://www.jamesshore.com/Blog/Continuous-Integration-on-a-Dollar-a-Da...。

当然现在有很多自动化集成工具,比较著名是Jenkins,有很多插件可以结合使用,包括支持PHP的一些插件。


大体上的过程是这样的

首先要有一个git服务器,如我们用的是github企业版。我们的代码就这样集成了。

因为我们的测试是开发人员自己的,所以我们会有一个CI,就是持续集成。CI会定时检测git服务器上的代码,当有新的提交的时候,CI就会自动运行。然后,会运行所有测试,自动测试,如用Selenium 在浏览器上测试。如果测试通过,就发布新的包。

因为我们组里面大概每天会提交代码至少三次,这取决于组里人数等等。所以在一个迭代,(两星期)会发布几十个包。。

故所谓的集成是经常提交代码到master,持续则是指经常性的。

Ci可以用bamboo,jerkins 等等。

持续集成只是持续交付的一部分。

相关书籍可以参考: 《持续交付:发布可靠软件的系统方法》。

可以用github和Travis CI进行练习。参考 http://www.phodal.com/blog/use-github-grow-self/。

【热门文章】
【热门文章】