持续集成的意义及hudson&maven

持续且快速的版本迭代是互联网行业的一大特色,经过迅速地推出新产品,占领新的市场;经过不断完善产品功能,巩固市场。maven

而持续集成的意义,在于可以在不断的产品迭代中,保证产品的主功能和可用性没有致命缺陷;在产品的版本演进过程当中,以较少的质量代价换取在产品的整个周期中的可用性和健壮性。从而不因产品的质量问题,流失用户。测试

有个简单的例子,最近在用一个产品时,有个较大的版本升级,其中UI展现和交互都有较大的变更,功能点入口的设计,更加趋于扁平化,减小了入口这棵树的层数。可是在此次版本升级后,平时用到的一个很小的功能点不可用了,因此无奈之下,只能从非官方商店中,下载了历史版本继续使用。而且,在这次尝试升级以后,可能对于该产品之后的版本升级会采起更审慎的态度。spa

若是该产品的持续集成作的好,这个问题其实就能够规避掉,而且能保证后续版本产品中有更高附加值的功能顺利被接受。设计

持续集成,本质上是经过自动化的方式,在每次有变动时,回归全部当前仍在提供服务的测试case。全部有三个关键点:数学

1.自动化jenkins

使用人工的方式每次全量回归以前的功能点,明显不合理,并且每次执行的结果因为是人工收集,会有很大的方差。产品

2.变动/升级自动化

在有变动或者升级的状况下才须要持续集成,变动包括代码/配置项/硬件配置/等等。由于这样的前提假设是,以前的业务是正确并可用的,同时通过了线上的验证,产生变动后有可能会引入的问题须要经过持续集成规避。这点上相似于数学概括法的证实过程。持续集成

3.全量配置

每次变动后,调整(增长/删除/修改)本次变动对持续集成的影响点,而后反馈到持续集成中,加上本次变动前已经集成的,是一个全量的结合,交给机器来执行验证的过程。


待续:

搭建持续集成过程。

jenkins ----\

--maven--搭建持续集成方法。

hudson ---/