持續(xù)集成定義:
持續(xù)集成是一種軟件開發(fā)實(shí)踐,即團(tuán)隊(duì)開發(fā)成員經(jīng)常集成它們的工作,通常每個(gè)成員每天至少集成一次,也就意味著每天可能會(huì)發(fā)生多次集成。每次集成通過自動(dòng)
化的構(gòu)建(包括編譯,發(fā)布,自動(dòng)化測(cè)試)來驗(yàn)證,從而盡快地發(fā)現(xiàn)集成錯(cuò)誤并予以修改,得以讓團(tuán)隊(duì)能夠更快的開發(fā)內(nèi)聚的軟件。
持續(xù)集成價(jià)值:
1. 減少風(fēng)險(xiǎn)
一天中進(jìn)行多次的集成,并做了相應(yīng)的測(cè)試,這樣有利于檢查缺陷,
了解軟件的健康狀況,減少假定。
2. 減少重復(fù)過程
通過自動(dòng)化的持續(xù)集成可以將集成中重復(fù)的動(dòng)作都變成自動(dòng)化的,
無需太多人工干預(yù),讓人們的時(shí)間更多的投入到動(dòng)腦筋的、更高價(jià)值的
事情上。
3. 任何時(shí)間、任何地點(diǎn)生成可部署的軟件
持續(xù)集成開發(fā)可以在任何時(shí)間發(fā)布可以部署的軟件。利用持續(xù)集成,
可以經(jīng)常對(duì)源代碼行一些小改動(dòng),并將這些改動(dòng)和其他的代碼進(jìn)行集成。
如果出現(xiàn)問題,項(xiàng)目成員馬上就會(huì)被通知到,問題會(huì)第一時(shí)間被修復(fù)。
不采用持續(xù)集成的情況下,這些問題有可能到交付前的集成測(cè)試的時(shí)候
才發(fā)現(xiàn),有可能會(huì)導(dǎo)致延遲發(fā)布產(chǎn)品,而在急于修復(fù)這些缺陷的時(shí)候又
有可能引入新的缺陷,最終可能導(dǎo)致項(xiàng)目失敗。
4. 增強(qiáng)項(xiàng)目的可見性
持續(xù)集成讓我們能夠注意到趨勢(shì)并進(jìn)行有效的決策。
持續(xù)集成可以帶來兩點(diǎn)積極效果:
(1)有效決策:持續(xù)集成系統(tǒng)為項(xiàng)目構(gòu)建狀態(tài)和品質(zhì)指標(biāo)提供了及時(shí)的信息,有些持續(xù)集成系統(tǒng)可以報(bào)告功能完成度和缺陷率。
(2)注意到趨勢(shì):由于經(jīng)常集成,我們可以看到一些趨勢(shì),如構(gòu)建成功或失敗、總體品質(zhì)以及其它的項(xiàng)目信息。
5. 建立團(tuán)隊(duì)對(duì)開發(fā)產(chǎn)品的信心
持續(xù)集成可以建立開發(fā)團(tuán)隊(duì)對(duì)開發(fā)產(chǎn)品的信心,因?yàn)樗麄兦宄闹烂恳淮螛?gòu)建的結(jié)果,他們知道他們對(duì)軟件的改動(dòng)造成了哪些影響,結(jié)果怎么樣。
持續(xù)集成要素及原則
持續(xù)集成的要素
1.統(tǒng)一的代碼庫(kù)
2.自動(dòng)構(gòu)建
3.自動(dòng)測(cè)試
4.每個(gè)人每天都要向代碼庫(kù)主干提交代碼
5.每次代碼遞交后都會(huì)在持續(xù)集成服務(wù)器上觸發(fā)一次構(gòu)建
6.保證快速構(gòu)建
7.模擬生產(chǎn)環(huán)境的自動(dòng)測(cè)試
8.每個(gè)人都可以很容易的獲取最新可執(zhí)行的應(yīng)用程序
9.每個(gè)人都清楚正在發(fā)生的狀況
10.自動(dòng)化的部署
持續(xù)集成的原則
1. 所有的開發(fā)人員需要在本地機(jī)器上做本地構(gòu)建,然后再提交的版本
控制庫(kù)中,從而確保他們的變更不會(huì)導(dǎo)致持續(xù)集成失敗。
2.
開發(fā)人員每天至少向版本控制庫(kù)中提交一次代碼。
3.
開發(fā)人員每天至少需要從版本控制庫(kù)中更新一次代碼到本地機(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)先級(jí)最高的事情。