![持續(xù)交付流程成熟度_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-5/27/0afc1d59-e8e8-4ad9-8308-99a05529ac54/0afc1d59-e8e8-4ad9-8308-99a05529ac541.gif)
![持續(xù)交付流程成熟度_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-5/27/0afc1d59-e8e8-4ad9-8308-99a05529ac54/0afc1d59-e8e8-4ad9-8308-99a05529ac542.gif)
![持續(xù)交付流程成熟度_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-5/27/0afc1d59-e8e8-4ad9-8308-99a05529ac54/0afc1d59-e8e8-4ad9-8308-99a05529ac543.gif)
![持續(xù)交付流程成熟度_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-5/27/0afc1d59-e8e8-4ad9-8308-99a05529ac54/0afc1d59-e8e8-4ad9-8308-99a05529ac544.gif)
![持續(xù)交付流程成熟度_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-5/27/0afc1d59-e8e8-4ad9-8308-99a05529ac54/0afc1d59-e8e8-4ad9-8308-99a05529ac545.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、持續(xù)交付流程成熟度企業(yè)持續(xù)交付成熟度模型說明不同的行業(yè)和企業(yè),對于持續(xù)交付的理解和應用場景是不盡相同的。只能尋求到他們的共同點和主要特征。為了便于描述,我們選擇了 4 個通用環(huán)節(jié),來記錄和分類企業(yè)的持續(xù)交付過程,它們分別是構建、部署、測試、報告。在每一個環(huán)節(jié)中,又根據該環(huán)節(jié)所常見的一些實踐,以及企業(yè)對這些實踐的應用程度,形成了 5 個成熟度等級。這 5 個等級分別是基礎級、起步級、中間級、高級、領先級。同時,在每個環(huán)節(jié)中,還根據實際經驗,標示出了行業(yè)普遍能力以及應該達到的目標能力。有了這樣的成熟度模型,企業(yè)就可以方便的衡量出自己現(xiàn)在處于什么位置,離行業(yè)普遍能力有什么偏差,目標能力應該是什么,從
2、而快速找到采取什么行動去彌補差距,實現(xiàn)目標。如圖 3。圖 3 .持續(xù)交付成熟度模型圖企業(yè)持續(xù)交付成熟度模型詳述構建環(huán)節(jié)大部分新項目開始時,都是由開發(fā)人員在自己的機器上執(zhí)行構建,而且沒有一個標準的流程。一個開發(fā)人員在自己的 IDE 上進行構建而其他人可能用寫好的腳本來做這件事。最糟糕的企業(yè)會容忍這樣的方式做構建、測試甚至就將這樣的構建發(fā)布到生產環(huán)境,如果這樣,企業(yè)就連基礎級也沒有達到。圖 3 .持續(xù)交付成熟度模型分解圖-構建環(huán)節(jié)從空白水平到基礎級:首先,需要做的是在專用環(huán)境下(如專用構建服務器)進行構建,而不要使用開發(fā)人員的機器去執(zhí)行。不使用開發(fā)人員的機器去構建,可以很好的避免由于個人機器環(huán)境、
3、個人工作空間等問題導致的構建結果不確定問題。其次,需要標準化目前的構建腳本(或流程),讓其更為統(tǒng)一和固定。比如,如何從源代碼控制系統(tǒng)中取到構建源,在實際中有多種實現(xiàn),可以取構建分支上最新的版本,也可以取打過標簽或基線的版本,也可以從某一個目錄中找到。這些方法必須統(tǒng)一,并且形成標準規(guī)范。從基礎級到起步級(行業(yè)普遍能力級別):有了專用的構建服務器和規(guī)范的構建腳本之后,需要考慮的是自動化。首先,構建服務器必須隨時待命,等待開發(fā)人員進行自助式構建,開發(fā)人員需要指定的僅僅是代碼存放的位置,而其他諸如機器(構建代理)、源代碼獲取規(guī)則、構建規(guī)范等都應該由構建服務器統(tǒng)一分配和安排。其次,這種自動化構建需要支持
4、每日定時執(zhí)行,允許一些團隊或個人按照自己的需要一天一次或多次自動執(zhí)行。最后,所有構建前后涉及的工件都應該被存儲。包括構建源代碼、構建標簽、構建各種配置文件及屬性、構建腳本(步驟)、構建結果、構建日志等。從起步級到中間級(目標級別):在這個級別,自動化已成為基礎,需要讓構建變得更有價值。首先,實現(xiàn)持續(xù)構建,并且每個開發(fā)人員和團隊都可以使用該實踐。也就是說,只要他們一提交代碼,就可以自動觸發(fā)構建過程;甚至當互相依賴的代碼模塊發(fā)生變化時,也能自動觸發(fā)構建過程。其次,需要更為清晰的管理軟件模塊之間的依賴關系。不像之前使用約定俗成的方式,現(xiàn)在需要利用專門的工具去真正存儲這種依賴關系并能在構建時跟蹤和快速
5、定位。這樣,不僅能管理軟件模塊之間的依賴,還可以管理構建和構建之間的依賴關系,并把這些關系都存儲在一起。最后,所有存儲的構建(在網絡存儲設備上或者就在構建服務器中)都應該有機制保證定期被有效的清理或被正確版本化,便于將來快速利用。從中間級到高級:更為規(guī)范的企業(yè)和團隊希望采用更加可控的構建流程,能夠把質量因素放進去。首先,此時的構建是可以跟蹤的。團隊可以針對任何一次構建(無論成功或者失?。?,跟蹤到本次構建用到的源代碼變更、計劃的變更甚至需求的變更,同時,也能夠方便的查看本次構建相關的所有依賴關系。其次,更加嚴格的管理。構建流程的修改、對構建服務器的訪問、構建服務器的配置變更都需要審核和批準行為。
6、另外,針對大型分布式的構建也需要提供支持,使用分布構建服務器去并發(fā)執(zhí)行大量構建。高級階段由于過于嚴格,所以建議應用在有遵規(guī)需求的企業(yè)或者針對于生產系統(tǒng)進行的構建部署上,其他企業(yè)/團隊或更早期的階段能做到中間級就已經足夠。從高級到領先級:有一些更為嚴苛的企業(yè),他們要求能夠在需要時針對早期的發(fā)布(構建成功后交付的結果)執(zhí)行完美的重新構建。這就需要使用各種技術來確保重構時具有和當時一模一樣的環(huán)境來保證成功??梢圆捎霉芾戆姹净哪_本,該腳本包括從準備操作系統(tǒng)到執(zhí)行構建這樣一個完整過程,也可以使用基于快照的虛擬機并對快照進行版本化管理來實現(xiàn)。目前大部分企業(yè)沒有達到這種級別,因為要實現(xiàn)這樣完美的效果需要承
7、擔很多額外的負擔,如資產管理、人員投入、技術支持等,這對大部分企業(yè)來說投資回報率很低。部署環(huán)節(jié)部署就是將軟件安裝到一個環(huán)境中,對其進行配置或測試以保證能夠被最終用戶正確使用。如一個 Web 應用的部署,就是將其安裝在 Web Server 上并更新數(shù)據庫或者 Web Server 上的靜態(tài)屬性文件;而對于一個游戲應用而言,測試環(huán)境的部署是將其正確安裝在測試機器上并執(zhí)行,而生產環(huán)境的部署可能還要包括為軟件建立 ISO 文件以便于客戶安裝使用。部署流程最初始的形態(tài)也是手工過程。部署工程師拿到構建成功后的工件,把它放到目標環(huán)境中,通過運行事先準備好的安裝手冊來執(zhí)行部署。這不僅很慢而且非常容易失敗。部
8、署工程師經常不得不在晚上或者周末進行風險極大的生產環(huán)境部署,即便是在測試系統(tǒng)上部署,如果測試人員正在進行測試,他們也不得不等待。更為糟糕的情況是,針對不同的環(huán)境,部署過程都不一樣。即便在一個環(huán)境上部署成功,也不意味其他環(huán)境也同樣順利。如果企業(yè)是這樣的現(xiàn)狀,就連基礎級也沒有實現(xiàn)。圖 4 .持續(xù)交付成熟度模型分解圖-部署環(huán)節(jié)從空白水平到基礎級(行業(yè)普遍能力級別):在這個階段,最重要的是脫離完全的手工操作。能夠采用一部分有幫助的腳本或者完全采用腳本進行部署可以看做是一個重要的水平提升。從目前業(yè)界情況來看,大部分企業(yè)或團隊都有部分的部署腳本,然而很少能實現(xiàn)完全的腳本化部署,尤其是在更嚴格的 SIT、U
9、AT、生產環(huán)境上的腳本化部署。從基礎級到起步級:在這個級別,測試環(huán)境的部署管理統(tǒng)一化變得非常重要。需要為開發(fā)或測試人員提供可以讓其自助部署的測試環(huán)境。他們僅需要提供待部署工件并對測試環(huán)境有訪問權限,就可以提交部署并自動完成一個部署過程,而測試環(huán)境的部署步驟是統(tǒng)一設計并提供的。從起步級到中間級:開始實現(xiàn)一鍵式部署。利用自動化部署工具將部署腳本固化,并采用一鍵式方式在一個或所有測試環(huán)境中進行自動化部署。部署工程師的工作量和風險大為減輕,測試人員也有更多的時間進行無間斷測試。另外,企業(yè)開始進行部署流程的全面標準化,可以使用統(tǒng)一部署流程跨各個環(huán)境進行部署。環(huán)境也許仍然有細節(jié)上的差異,但是在早期能夠驗證
10、部署流程的正確性,已經可以為后面的部署帶來預測性的結果。對于大部分企業(yè)和團隊而言,達到這個級別已經是個不錯的目標。從中間級到高級(目標級別):在這個級別,關注點是更為嚴格可控的流程和生產環(huán)境。生產環(huán)境的部署也可以實現(xiàn)一鍵式,而且一旦出現(xiàn)問題會自動觸發(fā)災難恢復流程。同時,該級別也需要引入質量門的概念,保證跨環(huán)境的部署是嚴格受控的。如果是實施項目式交付,也就是生產環(huán)境的部署是在企業(yè)內部,那么應該將這個級別作為目標級別。從高級到領先級:真正實現(xiàn)持續(xù)部署??梢圆挥檬止じ深A的將軟件構建從測試環(huán)境一步步推送到生產環(huán)境。在這個階段,企業(yè)已經實現(xiàn)了自己的持續(xù)交付管道,并在管道中的每一個階段都配有完整的自動化測
11、試手段,一旦構建通過了所有質量門,就可以被成功、正確的自動部署到生產環(huán)境。對于一些需要快速響應變化的行業(yè),比如互聯(lián)網企業(yè),通常變更的實現(xiàn)是以小時為衡量,這就要求必須具備完整的自動化部署流程、成熟的自動化測試手段、嚴格的環(huán)境管理和回滾流程、應用部署監(jiān)控等全面的保證手段。測試環(huán)節(jié)持續(xù)交付管道在各個環(huán)節(jié)都離不開測試。仍然有一些企業(yè)和團隊對測試不足夠重視,執(zhí)行構建后僅簡單的測一下就部署在生產系統(tǒng)中。大部分企業(yè)都采用了某種程度的自動化測試-單元測試或一些測試腳本來保證應用的基本功能。能夠采用和適應自動化測試的企業(yè),已經處于基礎級了。圖 5 .持續(xù)交付成熟度模型分解圖-測試環(huán)節(jié)從基礎級(行業(yè)普遍能力級別)
12、到入門級:在構建的同時可以執(zhí)行快速測試,為團隊提供基本的代碼級質量信心。當測試失敗時,開發(fā)團隊可以實時得到通知以便快速修復。能夠實時通知和實時反饋是這個級別的重要判斷準則。從入門級到中間級(目標能力級別):測試多樣化。不僅僅可以提供在構建時的快速代碼測試,還可以提供源代碼靜態(tài)分析測試、自動化的功能測試。源代碼靜態(tài)分析可以根據企業(yè)遵規(guī)需要去設計,也不需要每次構建都執(zhí)行,定期或者在里程碑階段自動進行并對違規(guī)進行修復后才能真正發(fā)布版本。從中間級到高級:該階段擁有完全的測試類型和能力。每一種測試類型都能充分使用并最大化發(fā)揮其價值。定義一些質量標準,單元測試可以覆蓋幾乎所有代碼模塊并達到定義的覆蓋率;功
13、能測試能實現(xiàn)定義的需求覆蓋率;靜態(tài)代碼分析運行的頻率更高;引入邊界測試、隨機測試、安全掃描、運行時分析等測試手段。該級別對大部分企業(yè)和團隊來講,已經足夠。從高級到領先級:實現(xiàn) 100%代碼覆蓋率。也就意味著每一行代碼都要被驗證過。這種程度的實現(xiàn)需要大量的資源投入,只有對某些企業(yè),如缺陷的修復成本極高或者需要極速交付的企業(yè)。報告環(huán)節(jié)報告是一種反饋機制。無論是手工報告還是自動化報告,都可以一定程度了解企業(yè)當前持續(xù)交付管道各種維度的度量信息。沒有報告或者不關注報告的企業(yè)是無法進步的,因為所有的測試如果不去了解和分析其結果都是沒有價值的。對報告環(huán)節(jié)的成熟度定義是根據報告的可視范圍以及對其利用的程度?;?/p>
14、本所有的構建工具都能產生一定程度的報告,開發(fā)人員在進行構建時可以看到構建的時長、日志、單元測試結果、成功或失敗、趨勢等信息,并能夠根據這些報告進行個人工作的修正。這樣的企業(yè)處于基礎級。圖 6. 持續(xù)交付成熟度模型分解圖-報告環(huán)節(jié)從基礎級到起步級(行業(yè)普遍能力級別):報告在團隊中可以共享。這和集中管理構建服務器、部署服務器相輔相成。團隊中的每個角色-開發(fā)、測試、構建、部署工程師都可以運行并發(fā)布他們的執(zhí)行結果報告:構建人員可以提供代碼變更報告、源代碼分析報告、單元測試報告等;測試人員可以提供最新的自動化或手工測試報告;部署人員可以生成缺陷報告、部署趨勢和速度報告等。但此時報告僅能在團隊中快速共享,
15、由于是不同的工具產生,跨團隊和部門的報告還需要手工實現(xiàn)。從起步級到中間級:該階段有兩大重要變化。首先,關鍵的報告已經可以跨部門共享,這里的共享并不是指報告的互相交換,而是數(shù)據的貫通。比如測試人員可以深入到開發(fā)內部去看,這次測試的失敗源于哪些變更,甚至是對哪些代碼行的變更。每個人都可以清楚的了解到持續(xù)交付管道中上下游的信息,這時候溝通的成本更低,效率大為提升。其次,對于歷史報告的重視。歷史報告可以被存儲并能用于和最新的結果進行對比。測試團隊不僅想知道本次測試擁有 95%的通過率,他們還需要了解本次測試新增了哪些用例、減少了哪些用例,為未來的測試用例設計帶來指導性意見。從中間級到高級(目標能力級別
16、):能夠利用報告觀察數(shù)據趨勢,讓報告帶來更多決策價值。中間級可能記錄了每次測試失敗或成功,而高級能力則可以基于這些形成趨勢信息,可以通過趨勢分析出哪些代碼的變更更容易導致單元測試或功能測試失敗。這反過來又能幫助企業(yè)決策應該在哪些代碼模塊設計更多的測試,甚至是否需要對代碼進行重新設計。能夠跨部門的根據趨勢報告和其他多種報告來進行決策和校正,是持續(xù)交付管道建設的一個重要目標。從高級到先進級:通過報告進行預測。整合各個部門或者團隊的數(shù)據和信息,生成具有多種度量元的報告,并能對今后的部署帶來指導和預測。比如根據里程碑 1 的缺陷數(shù)量、代碼修改量、代碼復雜度、構建結果等綜合信息來預測里程碑 2 時的相關數(shù)據。這樣的能力保證了企業(yè)可以按照可持續(xù)的、良性的節(jié)奏實現(xiàn)持續(xù)交付。企業(yè)持續(xù)交付成熟度模型的意義持續(xù)交付成熟度模型,可以作為企業(yè)的一種參考,快速判斷自己當前的狀態(tài)、行業(yè)普遍具備的能力,并制定符合自己的改進目標。它把一個復雜的過程,經過不同環(huán)節(jié)和成熟度等級的劃分,用一些可以衡量的實踐落到實處,幫助企業(yè)意識到建立自己的持續(xù)交付管道和能力,可以通過在不同的環(huán)節(jié)逐
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 路邊廣告位轉讓合同
- 美國自費出國留學咨詢服務合同年
- 居間合同傭金承諾書
- 事故車買賣合同協(xié)議
- 連車帶人租賃合同
- 荒山承包合同范本
- 叉車租賃合同協(xié)議書范本大全
- 工地材料運輸合同
- 借款合同答辯狀范本范本
- 個人工作總結范文20篇
- 法理學課件馬工程
- 2024-2030年中國香菇行業(yè)銷售狀況及供需前景預測報告
- 2024年廣東省公務員錄用考試《行測》真題及解析
- 高中英語必背3500單詞表(完整版)
- 2024年版《輸變電工程標準工藝應用圖冊》
- 2024年高考數(shù)學試卷(北京)(空白卷)
- 人教版2024年新教材七年級上冊英語starter unit 1 -unit7重點短語句型清單
- 護理服務在產科中的應用課件
- 2024年小升初語文入學分班測試卷四(統(tǒng)編版)
- 流行文化對青少年價值觀的影響研究
- 中國保險行業(yè)協(xié)會官方-2023年度商業(yè)健康保險經營數(shù)據分析報告-2024年3月
評論
0/150
提交評論