持續(xù)交付流程成熟度_第1頁
持續(xù)交付流程成熟度_第2頁
持續(xù)交付流程成熟度_第3頁
持續(xù)交付流程成熟度_第4頁
持續(xù)交付流程成熟度_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、持續(xù)交付流程成熟度企業(yè)持續(xù)交付成熟度模型說明不同的行業(yè)和企業(yè),對(duì)于持續(xù)交付的理解和應(yīng)用場(chǎng)景是不盡相同的。只能尋求到他們的共同點(diǎn)和主要特征。為了便于描述,我們選擇了 4 個(gè)通用環(huán)節(jié),來記錄和分類企業(yè)的持續(xù)交付過程,它們分別是構(gòu)建、部署、測(cè)試、報(bào)告。在每一個(gè)環(huán)節(jié)中,又根據(jù)該環(huán)節(jié)所常見的一些實(shí)踐,以及企業(yè)對(duì)這些實(shí)踐的應(yīng)用程度,形成了 5 個(gè)成熟度等級(jí)。這 5 個(gè)等級(jí)分別是基礎(chǔ)級(jí)、起步級(jí)、中間級(jí)、高級(jí)、領(lǐng)先級(jí)。同時(shí),在每個(gè)環(huán)節(jié)中,還根據(jù)實(shí)際經(jīng)驗(yàn),標(biāo)示出了行業(yè)普遍能力以及應(yīng)該達(dá)到的目標(biāo)能力。有了這樣的成熟度模型,企業(yè)就可以方便的衡量出自己現(xiàn)在處于什么位置,離行業(yè)普遍能力有什么偏差,目標(biāo)能力應(yīng)該是什么,從

2、而快速找到采取什么行動(dòng)去彌補(bǔ)差距,實(shí)現(xiàn)目標(biāo)。如圖 3。圖 3 .持續(xù)交付成熟度模型圖企業(yè)持續(xù)交付成熟度模型詳述構(gòu)建環(huán)節(jié)大部分新項(xiàng)目開始時(shí),都是由開發(fā)人員在自己的機(jī)器上執(zhí)行構(gòu)建,而且沒有一個(gè)標(biāo)準(zhǔn)的流程。一個(gè)開發(fā)人員在自己的 IDE 上進(jìn)行構(gòu)建而其他人可能用寫好的腳本來做這件事。最糟糕的企業(yè)會(huì)容忍這樣的方式做構(gòu)建、測(cè)試甚至就將這樣的構(gòu)建發(fā)布到生產(chǎn)環(huán)境,如果這樣,企業(yè)就連基礎(chǔ)級(jí)也沒有達(dá)到。圖 3 .持續(xù)交付成熟度模型分解圖-構(gòu)建環(huán)節(jié)從空白水平到基礎(chǔ)級(jí):首先,需要做的是在專用環(huán)境下(如專用構(gòu)建服務(wù)器)進(jìn)行構(gòu)建,而不要使用開發(fā)人員的機(jī)器去執(zhí)行。不使用開發(fā)人員的機(jī)器去構(gòu)建,可以很好的避免由于個(gè)人機(jī)器環(huán)境、

3、個(gè)人工作空間等問題導(dǎo)致的構(gòu)建結(jié)果不確定問題。其次,需要標(biāo)準(zhǔn)化目前的構(gòu)建腳本(或流程),讓其更為統(tǒng)一和固定。比如,如何從源代碼控制系統(tǒng)中取到構(gòu)建源,在實(shí)際中有多種實(shí)現(xiàn),可以取構(gòu)建分支上最新的版本,也可以取打過標(biāo)簽或基線的版本,也可以從某一個(gè)目錄中找到。這些方法必須統(tǒng)一,并且形成標(biāo)準(zhǔn)規(guī)范。從基礎(chǔ)級(jí)到起步級(jí)(行業(yè)普遍能力級(jí)別):有了專用的構(gòu)建服務(wù)器和規(guī)范的構(gòu)建腳本之后,需要考慮的是自動(dòng)化。首先,構(gòu)建服務(wù)器必須隨時(shí)待命,等待開發(fā)人員進(jìn)行自助式構(gòu)建,開發(fā)人員需要指定的僅僅是代碼存放的位置,而其他諸如機(jī)器(構(gòu)建代理)、源代碼獲取規(guī)則、構(gòu)建規(guī)范等都應(yīng)該由構(gòu)建服務(wù)器統(tǒng)一分配和安排。其次,這種自動(dòng)化構(gòu)建需要支持

4、每日定時(shí)執(zhí)行,允許一些團(tuán)隊(duì)或個(gè)人按照自己的需要一天一次或多次自動(dòng)執(zhí)行。最后,所有構(gòu)建前后涉及的工件都應(yīng)該被存儲(chǔ)。包括構(gòu)建源代碼、構(gòu)建標(biāo)簽、構(gòu)建各種配置文件及屬性、構(gòu)建腳本(步驟)、構(gòu)建結(jié)果、構(gòu)建日志等。從起步級(jí)到中間級(jí)(目標(biāo)級(jí)別):在這個(gè)級(jí)別,自動(dòng)化已成為基礎(chǔ),需要讓構(gòu)建變得更有價(jià)值。首先,實(shí)現(xiàn)持續(xù)構(gòu)建,并且每個(gè)開發(fā)人員和團(tuán)隊(duì)都可以使用該實(shí)踐。也就是說,只要他們一提交代碼,就可以自動(dòng)觸發(fā)構(gòu)建過程;甚至當(dāng)互相依賴的代碼模塊發(fā)生變化時(shí),也能自動(dòng)觸發(fā)構(gòu)建過程。其次,需要更為清晰的管理軟件模塊之間的依賴關(guān)系。不像之前使用約定俗成的方式,現(xiàn)在需要利用專門的工具去真正存儲(chǔ)這種依賴關(guān)系并能在構(gòu)建時(shí)跟蹤和快速

5、定位。這樣,不僅能管理軟件模塊之間的依賴,還可以管理構(gòu)建和構(gòu)建之間的依賴關(guān)系,并把這些關(guān)系都存儲(chǔ)在一起。最后,所有存儲(chǔ)的構(gòu)建(在網(wǎng)絡(luò)存儲(chǔ)設(shè)備上或者就在構(gòu)建服務(wù)器中)都應(yīng)該有機(jī)制保證定期被有效的清理或被正確版本化,便于將來快速利用。從中間級(jí)到高級(jí):更為規(guī)范的企業(yè)和團(tuán)隊(duì)希望采用更加可控的構(gòu)建流程,能夠把質(zhì)量因素放進(jìn)去。首先,此時(shí)的構(gòu)建是可以跟蹤的。團(tuán)隊(duì)可以針對(duì)任何一次構(gòu)建(無論成功或者失敗),跟蹤到本次構(gòu)建用到的源代碼變更、計(jì)劃的變更甚至需求的變更,同時(shí),也能夠方便的查看本次構(gòu)建相關(guān)的所有依賴關(guān)系。其次,更加嚴(yán)格的管理。構(gòu)建流程的修改、對(duì)構(gòu)建服務(wù)器的訪問、構(gòu)建服務(wù)器的配置變更都需要審核和批準(zhǔn)行為。

6、另外,針對(duì)大型分布式的構(gòu)建也需要提供支持,使用分布構(gòu)建服務(wù)器去并發(fā)執(zhí)行大量構(gòu)建。高級(jí)階段由于過于嚴(yán)格,所以建議應(yīng)用在有遵規(guī)需求的企業(yè)或者針對(duì)于生產(chǎn)系統(tǒng)進(jìn)行的構(gòu)建部署上,其他企業(yè)/團(tuán)隊(duì)或更早期的階段能做到中間級(jí)就已經(jīng)足夠。從高級(jí)到領(lǐng)先級(jí):有一些更為嚴(yán)苛的企業(yè),他們要求能夠在需要時(shí)針對(duì)早期的發(fā)布(構(gòu)建成功后交付的結(jié)果)執(zhí)行完美的重新構(gòu)建。這就需要使用各種技術(shù)來確保重構(gòu)時(shí)具有和當(dāng)時(shí)一模一樣的環(huán)境來保證成功??梢圆捎霉芾戆姹净哪_本,該腳本包括從準(zhǔn)備操作系統(tǒng)到執(zhí)行構(gòu)建這樣一個(gè)完整過程,也可以使用基于快照的虛擬機(jī)并對(duì)快照進(jìn)行版本化管理來實(shí)現(xiàn)。目前大部分企業(yè)沒有達(dá)到這種級(jí)別,因?yàn)橐獙?shí)現(xiàn)這樣完美的效果需要承

7、擔(dān)很多額外的負(fù)擔(dān),如資產(chǎn)管理、人員投入、技術(shù)支持等,這對(duì)大部分企業(yè)來說投資回報(bào)率很低。部署環(huán)節(jié)部署就是將軟件安裝到一個(gè)環(huán)境中,對(duì)其進(jìn)行配置或測(cè)試以保證能夠被最終用戶正確使用。如一個(gè) Web 應(yīng)用的部署,就是將其安裝在 Web Server 上并更新數(shù)據(jù)庫或者 Web Server 上的靜態(tài)屬性文件;而對(duì)于一個(gè)游戲應(yīng)用而言,測(cè)試環(huán)境的部署是將其正確安裝在測(cè)試機(jī)器上并執(zhí)行,而生產(chǎn)環(huán)境的部署可能還要包括為軟件建立 ISO 文件以便于客戶安裝使用。部署流程最初始的形態(tài)也是手工過程。部署工程師拿到構(gòu)建成功后的工件,把它放到目標(biāo)環(huán)境中,通過運(yùn)行事先準(zhǔn)備好的安裝手冊(cè)來執(zhí)行部署。這不僅很慢而且非常容易失敗。部

8、署工程師經(jīng)常不得不在晚上或者周末進(jìn)行風(fēng)險(xiǎn)極大的生產(chǎn)環(huán)境部署,即便是在測(cè)試系統(tǒng)上部署,如果測(cè)試人員正在進(jìn)行測(cè)試,他們也不得不等待。更為糟糕的情況是,針對(duì)不同的環(huán)境,部署過程都不一樣。即便在一個(gè)環(huán)境上部署成功,也不意味其他環(huán)境也同樣順利。如果企業(yè)是這樣的現(xiàn)狀,就連基礎(chǔ)級(jí)也沒有實(shí)現(xiàn)。圖 4 .持續(xù)交付成熟度模型分解圖-部署環(huán)節(jié)從空白水平到基礎(chǔ)級(jí)(行業(yè)普遍能力級(jí)別):在這個(gè)階段,最重要的是脫離完全的手工操作。能夠采用一部分有幫助的腳本或者完全采用腳本進(jìn)行部署可以看做是一個(gè)重要的水平提升。從目前業(yè)界情況來看,大部分企業(yè)或團(tuán)隊(duì)都有部分的部署腳本,然而很少能實(shí)現(xiàn)完全的腳本化部署,尤其是在更嚴(yán)格的 SIT、U

9、AT、生產(chǎn)環(huán)境上的腳本化部署。從基礎(chǔ)級(jí)到起步級(jí):在這個(gè)級(jí)別,測(cè)試環(huán)境的部署管理統(tǒng)一化變得非常重要。需要為開發(fā)或測(cè)試人員提供可以讓其自助部署的測(cè)試環(huán)境。他們僅需要提供待部署工件并對(duì)測(cè)試環(huán)境有訪問權(quán)限,就可以提交部署并自動(dòng)完成一個(gè)部署過程,而測(cè)試環(huán)境的部署步驟是統(tǒng)一設(shè)計(jì)并提供的。從起步級(jí)到中間級(jí):開始實(shí)現(xiàn)一鍵式部署。利用自動(dòng)化部署工具將部署腳本固化,并采用一鍵式方式在一個(gè)或所有測(cè)試環(huán)境中進(jìn)行自動(dòng)化部署。部署工程師的工作量和風(fēng)險(xiǎn)大為減輕,測(cè)試人員也有更多的時(shí)間進(jìn)行無間斷測(cè)試。另外,企業(yè)開始進(jìn)行部署流程的全面標(biāo)準(zhǔn)化,可以使用統(tǒng)一部署流程跨各個(gè)環(huán)境進(jìn)行部署。環(huán)境也許仍然有細(xì)節(jié)上的差異,但是在早期能夠驗(yàn)證

10、部署流程的正確性,已經(jīng)可以為后面的部署帶來預(yù)測(cè)性的結(jié)果。對(duì)于大部分企業(yè)和團(tuán)隊(duì)而言,達(dá)到這個(gè)級(jí)別已經(jīng)是個(gè)不錯(cuò)的目標(biāo)。從中間級(jí)到高級(jí)(目標(biāo)級(jí)別):在這個(gè)級(jí)別,關(guān)注點(diǎn)是更為嚴(yán)格可控的流程和生產(chǎn)環(huán)境。生產(chǎn)環(huán)境的部署也可以實(shí)現(xiàn)一鍵式,而且一旦出現(xiàn)問題會(huì)自動(dòng)觸發(fā)災(zāi)難恢復(fù)流程。同時(shí),該級(jí)別也需要引入質(zhì)量門的概念,保證跨環(huán)境的部署是嚴(yán)格受控的。如果是實(shí)施項(xiàng)目式交付,也就是生產(chǎn)環(huán)境的部署是在企業(yè)內(nèi)部,那么應(yīng)該將這個(gè)級(jí)別作為目標(biāo)級(jí)別。從高級(jí)到領(lǐng)先級(jí):真正實(shí)現(xiàn)持續(xù)部署??梢圆挥檬止じ深A(yù)的將軟件構(gòu)建從測(cè)試環(huán)境一步步推送到生產(chǎn)環(huán)境。在這個(gè)階段,企業(yè)已經(jīng)實(shí)現(xiàn)了自己的持續(xù)交付管道,并在管道中的每一個(gè)階段都配有完整的自動(dòng)化測(cè)

11、試手段,一旦構(gòu)建通過了所有質(zhì)量門,就可以被成功、正確的自動(dòng)部署到生產(chǎn)環(huán)境。對(duì)于一些需要快速響應(yīng)變化的行業(yè),比如互聯(lián)網(wǎng)企業(yè),通常變更的實(shí)現(xiàn)是以小時(shí)為衡量,這就要求必須具備完整的自動(dòng)化部署流程、成熟的自動(dòng)化測(cè)試手段、嚴(yán)格的環(huán)境管理和回滾流程、應(yīng)用部署監(jiān)控等全面的保證手段。測(cè)試環(huán)節(jié)持續(xù)交付管道在各個(gè)環(huán)節(jié)都離不開測(cè)試。仍然有一些企業(yè)和團(tuán)隊(duì)對(duì)測(cè)試不足夠重視,執(zhí)行構(gòu)建后僅簡單的測(cè)一下就部署在生產(chǎn)系統(tǒng)中。大部分企業(yè)都采用了某種程度的自動(dòng)化測(cè)試-單元測(cè)試或一些測(cè)試腳本來保證應(yīng)用的基本功能。能夠采用和適應(yīng)自動(dòng)化測(cè)試的企業(yè),已經(jīng)處于基礎(chǔ)級(jí)了。圖 5 .持續(xù)交付成熟度模型分解圖-測(cè)試環(huán)節(jié)從基礎(chǔ)級(jí)(行業(yè)普遍能力級(jí)別)

12、到入門級(jí):在構(gòu)建的同時(shí)可以執(zhí)行快速測(cè)試,為團(tuán)隊(duì)提供基本的代碼級(jí)質(zhì)量信心。當(dāng)測(cè)試失敗時(shí),開發(fā)團(tuán)隊(duì)可以實(shí)時(shí)得到通知以便快速修復(fù)。能夠?qū)崟r(shí)通知和實(shí)時(shí)反饋是這個(gè)級(jí)別的重要判斷準(zhǔn)則。從入門級(jí)到中間級(jí)(目標(biāo)能力級(jí)別):測(cè)試多樣化。不僅僅可以提供在構(gòu)建時(shí)的快速代碼測(cè)試,還可以提供源代碼靜態(tài)分析測(cè)試、自動(dòng)化的功能測(cè)試。源代碼靜態(tài)分析可以根據(jù)企業(yè)遵規(guī)需要去設(shè)計(jì),也不需要每次構(gòu)建都執(zhí)行,定期或者在里程碑階段自動(dòng)進(jìn)行并對(duì)違規(guī)進(jìn)行修復(fù)后才能真正發(fā)布版本。從中間級(jí)到高級(jí):該階段擁有完全的測(cè)試類型和能力。每一種測(cè)試類型都能充分使用并最大化發(fā)揮其價(jià)值。定義一些質(zhì)量標(biāo)準(zhǔn),單元測(cè)試可以覆蓋幾乎所有代碼模塊并達(dá)到定義的覆蓋率;功

13、能測(cè)試能實(shí)現(xiàn)定義的需求覆蓋率;靜態(tài)代碼分析運(yùn)行的頻率更高;引入邊界測(cè)試、隨機(jī)測(cè)試、安全掃描、運(yùn)行時(shí)分析等測(cè)試手段。該級(jí)別對(duì)大部分企業(yè)和團(tuán)隊(duì)來講,已經(jīng)足夠。從高級(jí)到領(lǐng)先級(jí):實(shí)現(xiàn) 100%代碼覆蓋率。也就意味著每一行代碼都要被驗(yàn)證過。這種程度的實(shí)現(xiàn)需要大量的資源投入,只有對(duì)某些企業(yè),如缺陷的修復(fù)成本極高或者需要極速交付的企業(yè)。報(bào)告環(huán)節(jié)報(bào)告是一種反饋機(jī)制。無論是手工報(bào)告還是自動(dòng)化報(bào)告,都可以一定程度了解企業(yè)當(dāng)前持續(xù)交付管道各種維度的度量信息。沒有報(bào)告或者不關(guān)注報(bào)告的企業(yè)是無法進(jìn)步的,因?yàn)樗械臏y(cè)試如果不去了解和分析其結(jié)果都是沒有價(jià)值的。對(duì)報(bào)告環(huán)節(jié)的成熟度定義是根據(jù)報(bào)告的可視范圍以及對(duì)其利用的程度?;?/p>

14、本所有的構(gòu)建工具都能產(chǎn)生一定程度的報(bào)告,開發(fā)人員在進(jìn)行構(gòu)建時(shí)可以看到構(gòu)建的時(shí)長、日志、單元測(cè)試結(jié)果、成功或失敗、趨勢(shì)等信息,并能夠根據(jù)這些報(bào)告進(jìn)行個(gè)人工作的修正。這樣的企業(yè)處于基礎(chǔ)級(jí)。圖 6. 持續(xù)交付成熟度模型分解圖-報(bào)告環(huán)節(jié)從基礎(chǔ)級(jí)到起步級(jí)(行業(yè)普遍能力級(jí)別):報(bào)告在團(tuán)隊(duì)中可以共享。這和集中管理構(gòu)建服務(wù)器、部署服務(wù)器相輔相成。團(tuán)隊(duì)中的每個(gè)角色-開發(fā)、測(cè)試、構(gòu)建、部署工程師都可以運(yùn)行并發(fā)布他們的執(zhí)行結(jié)果報(bào)告:構(gòu)建人員可以提供代碼變更報(bào)告、源代碼分析報(bào)告、單元測(cè)試報(bào)告等;測(cè)試人員可以提供最新的自動(dòng)化或手工測(cè)試報(bào)告;部署人員可以生成缺陷報(bào)告、部署趨勢(shì)和速度報(bào)告等。但此時(shí)報(bào)告僅能在團(tuán)隊(duì)中快速共享,

15、由于是不同的工具產(chǎn)生,跨團(tuán)隊(duì)和部門的報(bào)告還需要手工實(shí)現(xiàn)。從起步級(jí)到中間級(jí):該階段有兩大重要變化。首先,關(guān)鍵的報(bào)告已經(jīng)可以跨部門共享,這里的共享并不是指報(bào)告的互相交換,而是數(shù)據(jù)的貫通。比如測(cè)試人員可以深入到開發(fā)內(nèi)部去看,這次測(cè)試的失敗源于哪些變更,甚至是對(duì)哪些代碼行的變更。每個(gè)人都可以清楚的了解到持續(xù)交付管道中上下游的信息,這時(shí)候溝通的成本更低,效率大為提升。其次,對(duì)于歷史報(bào)告的重視。歷史報(bào)告可以被存儲(chǔ)并能用于和最新的結(jié)果進(jìn)行對(duì)比。測(cè)試團(tuán)隊(duì)不僅想知道本次測(cè)試擁有 95%的通過率,他們還需要了解本次測(cè)試新增了哪些用例、減少了哪些用例,為未來的測(cè)試用例設(shè)計(jì)帶來指導(dǎo)性意見。從中間級(jí)到高級(jí)(目標(biāo)能力級(jí)別

16、):能夠利用報(bào)告觀察數(shù)據(jù)趨勢(shì),讓報(bào)告帶來更多決策價(jià)值。中間級(jí)可能記錄了每次測(cè)試失敗或成功,而高級(jí)能力則可以基于這些形成趨勢(shì)信息,可以通過趨勢(shì)分析出哪些代碼的變更更容易導(dǎo)致單元測(cè)試或功能測(cè)試失敗。這反過來又能幫助企業(yè)決策應(yīng)該在哪些代碼模塊設(shè)計(jì)更多的測(cè)試,甚至是否需要對(duì)代碼進(jìn)行重新設(shè)計(jì)。能夠跨部門的根據(jù)趨勢(shì)報(bào)告和其他多種報(bào)告來進(jìn)行決策和校正,是持續(xù)交付管道建設(shè)的一個(gè)重要目標(biāo)。從高級(jí)到先進(jìn)級(jí):通過報(bào)告進(jìn)行預(yù)測(cè)。整合各個(gè)部門或者團(tuán)隊(duì)的數(shù)據(jù)和信息,生成具有多種度量元的報(bào)告,并能對(duì)今后的部署帶來指導(dǎo)和預(yù)測(cè)。比如根據(jù)里程碑 1 的缺陷數(shù)量、代碼修改量、代碼復(fù)雜度、構(gòu)建結(jié)果等綜合信息來預(yù)測(cè)里程碑 2 時(shí)的相關(guān)數(shù)據(jù)。這樣的能力保證了企業(yè)可以按照可持續(xù)的、良性的節(jié)奏實(shí)現(xiàn)持續(xù)交付。企業(yè)持續(xù)交付成熟度模型的意義持續(xù)交付成熟度模型,可以作為企業(yè)的一種參考,快速判斷自己當(dāng)前的狀態(tài)、行業(yè)普遍具備的能力,并制定符合自己的改進(jìn)目標(biāo)。它把一個(gè)復(fù)雜的過程,經(jīng)過不同環(huán)節(jié)和成熟度等級(jí)的劃分,用一些可以衡量的實(shí)踐落到實(shí)處,幫助企業(yè)意識(shí)到建立自己的持續(xù)交付管道和能力,可以通過在不同的環(huán)節(jié)逐

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論