qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

          什么是持續(xù)集成

          剛開始時 我對這個概念很狹隘 以為只要能讓系統(tǒng)自動下載代碼然后編譯通過就叫持續(xù)集成,其實不然 我們仔細(xì)學(xué)習(xí)下基礎(chǔ)概念。
          持續(xù)集成(Continuous integration)
          集成軟件的過程不是新問題,如果項目開發(fā)的規(guī)模比較小,比如一個人的項目,如果它對外部系統(tǒng)的依賴很小,那么軟件集成不是問題,但是隨著軟件項目復(fù)雜度的增加(即使增加一個人),就會對集成和確保軟件組件能夠在一起工作提出了更多的要求-要早集成,常集成。早集成,頻繁的集成幫助項目在早期發(fā)現(xiàn)項目風(fēng)險和質(zhì)量問題,如果到后期才發(fā)現(xiàn)這些問題,解決問題代價很大,很有可能導(dǎo)致項目延期或者項目失敗。

          2定義編輯

          大師Martin Fowler對持續(xù)集成是這樣定義的:持續(xù)集成是一種軟件開發(fā)實踐,即團(tuán)隊開發(fā)成員經(jīng)常集成他們的工作,通常每個成員每天至少集成一次,也就意味著每天可能會發(fā)生多次集成。每次集成都通過自動化的構(gòu)建(包括編譯,發(fā)布,自動化測試)來驗證,從而盡快地發(fā)現(xiàn)集成錯誤。許多團(tuán)隊發(fā)現(xiàn)這個過程可以大大減少集成的問題,讓團(tuán)隊能夠更快的開發(fā)內(nèi)聚軟件

          3價值編輯

          減少風(fēng)險

          一天中進(jìn)行多次的集成,并做了相應(yīng)的測試,這樣有利于檢查缺陷,了解軟件的健康狀況,減少假定。

          減少重復(fù)過程

          減少重復(fù)的過程可以節(jié)省時間、費(fèi)用和工作量。說起來簡單,做起來難。這些浪費(fèi)時間的重復(fù)勞動可能在我們的項目活動的任何一個環(huán)節(jié)發(fā)生,包括代碼編譯、數(shù)據(jù)庫集成、測試、審查、部署及反饋。通過自動化的持續(xù)集成可以將這些重復(fù)的動作都變成自動化的,無需太多人工干預(yù),讓人們的時間更多的投入到動腦筋的、更高價值的事情上。

          任何時間、任何地點生成可部署的軟件

          持續(xù)集成可以讓您在任何時間發(fā)布可以部署的軟件。從外界來看,這是持續(xù)集成最明顯的好處,我們可以對改進(jìn)軟件品質(zhì)和減少風(fēng)險說起來滔滔不絕,但對于客戶來說,可以部署的軟件產(chǎn)品是最實際的資產(chǎn)。利用持續(xù)集成,您可以經(jīng)常對源代碼進(jìn)行一些小改動,并將這些改動和其他的代碼進(jìn)行集成。如果出現(xiàn)問題,項目成員馬上就會被通知到,問題會第一時間被修復(fù)。不采用持續(xù)集成的情況下,這些問題有可能到交付前的集成測試的時候才發(fā)現(xiàn),有可能會導(dǎo)致延遲發(fā)布產(chǎn)品,而在急于修復(fù)這些缺陷的時候又有可能引入新的缺陷,最終可能導(dǎo)致項目失敗。

          增強(qiáng)項目的可見性

          持續(xù)集成讓我們能夠注意到趨勢并進(jìn)行有效的決策。如果沒有真實或最新的數(shù)據(jù)提供支持,項目就會遇到麻煩,每個人都會提出他最好的猜測。通常,項目成員通過手工收集這些信息,增加了負(fù)擔(dān),也很耗時。持續(xù)集成可以帶來兩點積極效果:
          (1)有效決策:持續(xù)集成系統(tǒng)為項目構(gòu)建狀態(tài)和品質(zhì)指標(biāo)提供了及時的信息,有些持續(xù)集成系統(tǒng)可以報告功能完成度和缺陷率
          (2)注意到趨勢:由于經(jīng)常集成,我們可以看到一些趨勢,如構(gòu)建成功或失敗、總體品質(zhì)以及其它的項目信息。

          建立團(tuán)隊對開發(fā)產(chǎn)品的信心

          持續(xù)集成可以建立開發(fā)團(tuán)隊對開發(fā)產(chǎn)品的信心,因為他們清楚的知道每一次構(gòu)建的結(jié)果,他們知道他們對軟件的改動造成了哪些影響,結(jié)果怎么樣。

          4要素編輯

          1.統(tǒng)一的代碼庫
          2.自動構(gòu)建
          3.自動測試
          4.每個人每天都要向代碼庫主干提交代碼
          5.每次代碼遞交后都會在持續(xù)集成服務(wù)器上觸發(fā)一次構(gòu)建
          6.保證快速構(gòu)建
          7.模擬生產(chǎn)環(huán)境的自動測試
          8.每個人都可以很容易的獲取最新可執(zhí)行的應(yīng)用程序
          9.每個人都清楚正在發(fā)生的狀況
          10.自動化的部署

          5原則編輯

          1. 所有的開發(fā)人員需要在本地機(jī)器上做本地構(gòu)建,然后再提交的版本控制庫中,從而確保他們的變更不會導(dǎo)致持續(xù)集成失敗。
          2. 開發(fā)人員每天至少向版本控制庫中提交一次代碼。
          3. 開發(fā)人員每天至少需要從版本控制庫中更新一次代碼到本地機(jī)器
          4. 需要有專門的集成服務(wù)器來執(zhí)行集成構(gòu)建,每天要執(zhí)行多次構(gòu)建。
          5. 每次構(gòu)建都要100%通過。
          6. 每次構(gòu)建都可以生成可發(fā)布的產(chǎn)品。
          7. 修復(fù)失敗的構(gòu)建是優(yōu)先級最高的事情。
          以上是百度百科的定義,我個人理解是,盡量減少人工操作,讓整個流程自動化,減少人工誤操作帶來的損失,并且可以并行構(gòu)建,例如,我們可以讓CI服務(wù)器,通過版本控制服務(wù)器自行下載項目的不同版本,然后自行進(jìn)行編譯構(gòu)建,發(fā)布版本到應(yīng)用服務(wù)器上,集成自動化測試腳本進(jìn)行測試,設(shè)置可以利用腳本來管理我們的數(shù)據(jù)庫,解放我們的測試到業(yè)務(wù)的重點上去工作,帶個整個項目組等等好處,以上任何環(huán)節(jié)出錯都可以發(fā)郵件通知相關(guān)人員去整改。

          posted on 2014-01-23 21:37 順其自然EVO 閱讀(1884) 評論(0)  編輯  收藏 所屬分類: 持續(xù)集成

          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 来安县| 汪清县| 比如县| 故城县| 南郑县| 若尔盖县| 阿尔山市| 进贤县| 罗江县| 清镇市| 会泽县| 鱼台县| 平顶山市| 额尔古纳市| 如皋市| 博客| 洛扎县| 连江县| 阜康市| 缙云县| 洪洞县| 儋州市| 南投市| 安福县| 景洪市| 探索| 临汾市| 连城县| 周宁县| 东平县| 天全县| 英吉沙县| 阿拉善右旗| 新余市| 郑州市| 石城县| 宝应县| 永清县| 林芝县| 綦江县| 太湖县|