持續集成的意義及hudson&maven

持續且快速的版本迭代是互聯網行業的一大特色,經過迅速地推出新產品,佔領新的市場;經過不斷完善產品功能,鞏固市場。maven

而持續集成的意義,在於可以在不斷的產品迭代中,保證產品的主功能和可用性沒有致命缺陷;在產品的版本演進過程當中,以較少的質量代價換取在產品的整個週期中的可用性和健壯性。從而不因產品的質量問題,流失用戶。測試

有個簡單的例子,最近在用一個產品時,有個較大的版本升級,其中UI展現和交互都有較大的變更,功能點入口的設計,更加趨於扁平化,減小了入口這棵樹的層數。可是在此次版本升級後,平時用到的一個很小的功能點不可用了,因此無奈之下,只能從非官方商店中,下載了歷史版本繼續使用。而且,在這次嘗試升級以後,可能對於該產品之後的版本升級會採起更審慎的態度。spa

若是該產品的持續集成作的好,這個問題其實就能夠規避掉,而且能保證後續版本產品中有更高附加值的功能順利被接受。設計

持續集成,本質上是經過自動化的方式,在每次有變動時,迴歸全部當前仍在提供服務的測試case。全部有三個關鍵點:數學

1.自動化jenkins

使用人工的方式每次全量回歸以前的功能點,明顯不合理,並且每次執行的結果因爲是人工收集,會有很大的方差。產品

2.變動/升級自動化

在有變動或者升級的狀況下才須要持續集成,變動包括代碼/配置項/硬件配置/等等。由於這樣的前提假設是,以前的業務是正確並可用的,同時通過了線上的驗證,產生變動後有可能會引入的問題須要經過持續集成規避。這點上相似於數學概括法的證實過程。持續集成

3.全量配置

每次變動後,調整(增長/刪除/修改)本次變動對持續集成的影響點,而後反饋到持續集成中,加上本次變動前已經集成的,是一個全量的結合,交給機器來執行驗證的過程。


待續:

搭建持續集成過程。

jenkins ----\

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

hudson ---/