栗蔚
中國信息通信研究院主任工程師 / 云計(jì)算開源產(chǎn)業(yè)聯(lián)盟秘書長(zhǎng)
2017年11月17日,云計(jì)算開源產(chǎn)業(yè)聯(lián)盟第一次跟高效運(yùn)維社區(qū)一起在上海合辦了首屆金牌運(yùn)維峰會(huì),在工信部軟件司的指導(dǎo)下,由中國信通院牽頭的云計(jì)算開源產(chǎn)業(yè)聯(lián)盟在推動(dòng)運(yùn)維相關(guān)標(biāo)準(zhǔn)方面也有了很大成果,我將代表編寫團(tuán)隊(duì),發(fā)布兩個(gè)已經(jīng)完成的標(biāo)準(zhǔn)(DevOps 標(biāo)準(zhǔn)、藍(lán)鯨運(yùn)維標(biāo)準(zhǔn)),本文將著重介紹 DevOps 標(biāo)準(zhǔn)。
DevOps 的標(biāo)準(zhǔn)體系,目前我們發(fā)布的是一個(gè) Beta 版,用我們業(yè)界比較流行的代碼術(shù)語是一個(gè)體驗(yàn)版。
為什么要做 DevOps 的標(biāo)準(zhǔn)體系,已經(jīng)有這么多的最佳實(shí)踐和開源工具,我們?yōu)槭裁匆鲞@個(gè)事情呢?
我們經(jīng)常在不同的場(chǎng)合聽到了 DevOps 這個(gè)詞,但是我聽到大家講的角度維度都不一樣,有人認(rèn)為自動(dòng)化運(yùn)維就是 DevOps,有人認(rèn)為運(yùn)維的人員會(huì)開發(fā),是不是就是 DevOps,那么還有一些我們的容器廠商從產(chǎn)品的角度說 DevOps,還有我們從培訓(xùn)的角度去玩玩沙盤,是不是就會(huì)懂了 DevOps,是不是我們把上面的組合起來就知道什么是 DevOps 呢?其實(shí)不是的。
我們?cè)诓煌瑘?chǎng)合聽到 DevOps 都好像盲人摸象一樣,誰都只是摸到了大象的一部分。所以我們做這件事情的目的主要有兩方面:
第一個(gè)方面就是三正,正什么呢?
第一正概念,就是 DevOps 的概念,它的范疇;
第二個(gè)就是正框架,我們 DevOps 到底包含哪幾個(gè)過程,從人員組織架構(gòu)到工具,到底要達(dá)到一個(gè)什么樣的框架才是 DevOps;
第三個(gè)就是正能力,很多人說 DevOps 太難了,目前我們公司做不到,其實(shí)有的時(shí)候覺得難,是因?yàn)槲覀儾恢廊绾芜_(dá)到,所以在這里我們的標(biāo)準(zhǔn)叫做能力的成熟度模型,也就是說你很容易的清楚自己在哪個(gè)層級(jí),那么你也很清楚如何晉級(jí)到更高級(jí)的 DevOps 的能力,這樣一個(gè)很清晰的標(biāo)準(zhǔn)。
正因?yàn)槲覀兛梢宰龅饺?,所以這個(gè)標(biāo)準(zhǔn)是有實(shí)操意義的,拿了這個(gè)標(biāo)準(zhǔn),不管是運(yùn)維人員還是 CIO 等等,就可以看到你們的公司團(tuán)隊(duì)如何根據(jù)這個(gè)標(biāo)準(zhǔn)去明確不同的流程,明確不同的組織架構(gòu),明確如何一步一步的去實(shí)施。
我們這個(gè)標(biāo)準(zhǔn)體系一共有7部分:
第1部分是總體架構(gòu),包括概念、框架和能力的分級(jí)。從第2部分到第7部分就是我們這個(gè)框架里的每一個(gè)部分的能力成熟度模型,主要包括敏捷開發(fā)過程,持續(xù)交付過程,技術(shù)運(yùn)營過程,還有總的應(yīng)用框架、安全管理和組織結(jié)構(gòu)。可以看到從第2部分到第4部分,都是過程類的,第5部分是應(yīng)用架構(gòu)類的,第6部分是安全管理類的,第7部分是組織結(jié)構(gòu)類的。
“研發(fā)運(yùn)營一體化能力成熟度模型”,是國內(nèi)外第一個(gè) DevOps 標(biāo)準(zhǔn)體系。
DevOps 標(biāo)準(zhǔn)體系包含下面兩大目的:
第一,是明確概念、框架、能力。DevOps 的概念、框架和能力到達(dá)什么程度,做一個(gè)非常詳細(xì)明確的說明。
第二,對(duì)于 DevOps 涵蓋的流程、組織、實(shí)施,有明確的指引,企業(yè)可以按照這個(gè)標(biāo)準(zhǔn)去提升自己 DevOps 各個(gè)環(huán)節(jié)的能力。
本次發(fā)布的是前3部分的征求意見稿。
前三部分為總體架構(gòu),敏捷開發(fā)管理過程和持續(xù)交付過程相關(guān)標(biāo)準(zhǔn)。以下為您詳細(xì)解讀。
研發(fā)運(yùn)營一體化(DevOps)能力成熟度模型覆蓋端到端軟件交付生命周期全流程,是一套體系化的方法論、實(shí)踐和標(biāo)準(zhǔn)的集合。研發(fā)運(yùn)營一體化總體架構(gòu)可劃分為三部分,即過程(敏捷開發(fā)管理、持續(xù)交付、技術(shù)運(yùn)營)、應(yīng)用架構(gòu)和組織結(jié)構(gòu)。
研發(fā)運(yùn)營一體化過程: 從需求開發(fā)、交付、運(yùn)營這幾個(gè)環(huán)節(jié)的過程,這三個(gè)過程涵蓋了很多內(nèi)容。整個(gè)過程我們把它標(biāo)準(zhǔn)化地分成了三部分。
敏捷開發(fā)管理從需求管理、計(jì)劃管理、過程管理、度量分析這四個(gè)維度,關(guān)注需求到開發(fā)階段的有序迭代,靈活響應(yīng),以及價(jià)值的快速交付。
持續(xù)交付關(guān)注應(yīng)用軟件集成交付環(huán)節(jié),通過配置管理、構(gòu)建與持續(xù)集成、測(cè)試管理、部署與發(fā)布管理、環(huán)境管理、數(shù)據(jù)管理和度量管理領(lǐng)域的能力建設(shè)和工程實(shí)踐保證軟件持續(xù)順暢高質(zhì)量的對(duì)用戶完成發(fā)布。
技術(shù)運(yùn)營,技術(shù)運(yùn)營環(huán)節(jié)關(guān)注應(yīng)用系統(tǒng)服務(wù)發(fā)布后的環(huán)節(jié),涉及運(yùn)維成本服務(wù)、高可用架構(gòu)服務(wù)、用戶體驗(yàn)服務(wù)、客戶服務(wù)、監(jiān)控服務(wù)、產(chǎn)品運(yùn)行服務(wù)和運(yùn)營數(shù)據(jù)服務(wù),保障良好的用戶體驗(yàn),打造持續(xù)的業(yè)務(wù)價(jià)值反饋流。這里大家要記住一點(diǎn),我們沒有提運(yùn)維,提的是運(yùn)營。
為什么呢?因?yàn)?Operation 這個(gè)詞它本身的含義就有運(yùn)維運(yùn)營的雙重意思。
并且現(xiàn)在運(yùn)營人員所做的事情,已經(jīng)不是簡(jiǎn)單的背鍋。往往背鍋的時(shí)候還要提煉點(diǎn)東西。大家要用大數(shù)據(jù)也好,智能化也罷,都是把自己的運(yùn)維能力轉(zhuǎn)變?yōu)檫\(yùn)營部門提供更多的數(shù)據(jù)支撐。
DevOps 涵蓋了敏捷開發(fā)、持續(xù)交付和技術(shù)運(yùn)營三個(gè)過程,這是從過程去理解 DevOps。
研發(fā)運(yùn)營一體化應(yīng)用架構(gòu),DevOps 的標(biāo)準(zhǔn)除了過程工程以外,還涉及到應(yīng)用架構(gòu)。應(yīng)用架構(gòu)指的是應(yīng)用系統(tǒng)的開發(fā)、測(cè)試和部署,是否用了微服務(wù)等架構(gòu)。
研發(fā)運(yùn)營一體化安全管理,這是非常重要的,因?yàn)?DevOps 在一定程度上降低了安全性,也稱為很多企業(yè)落地 DevOps 的阻礙之一。這次側(cè)重全流程端到端的全局考慮安全管理及服務(wù)。
研發(fā)運(yùn)營一體化組織結(jié)構(gòu),最深層的就是組織結(jié)構(gòu)的問題。我們知道怎么去做,但是不一定能做到?是因?yàn)檫@三個(gè)過程覆蓋了某個(gè)企業(yè)N個(gè)部門。據(jù)我了解不同的行業(yè),開發(fā)、運(yùn)維都是不同的部門。甚至在金融行業(yè)、銀行的開發(fā)、測(cè)試和生產(chǎn)也在不同的部門。
所以如果應(yīng)用架構(gòu)、安全管理和組織架構(gòu)跟不上,也是做不到 DevOps 能力的。往往是每個(gè)環(huán)節(jié)把自己的事做好的,需求迸發(fā)出來了,可能才會(huì)去推動(dòng)進(jìn)一步的組織結(jié)構(gòu)的變動(dòng),這是第三個(gè)緯度的事情。
理解 DevOps 可以從過程、多個(gè)點(diǎn)、不同維度去理解。DevOps 是一個(gè)過程,過程里的每一個(gè)小環(huán)節(jié),涉及到人、團(tuán)隊(duì)、工具。后面分級(jí)的理念也是每個(gè)小環(huán)節(jié)從人、過程管理、工具團(tuán)隊(duì)的協(xié)作這幾個(gè)緯度去分的。
要做好 DevOps,首先把每個(gè)小環(huán)節(jié)做好,進(jìn)而把整個(gè)過程做好了,然后再推動(dòng)整個(gè)組織架構(gòu)一系列的變革。
為什么這里叫運(yùn)營研發(fā)一體化,不叫 DevOps 呢?
因?yàn)閲鴥?nèi)標(biāo)準(zhǔn)不能出現(xiàn)英文詞的,而且 DevOps 這個(gè)詞它是具有階段性的。也許過個(gè)十幾年就沒有 DevOps 了,標(biāo)準(zhǔn)要普世性,所以這里沒有用 DevOps,用的是研發(fā)運(yùn)營一體化。從這個(gè)詞也可以看出來它貫穿了研發(fā),一直到運(yùn)營。
成熟度分級(jí)的對(duì)象,就是研發(fā)運(yùn)營一體化,研發(fā)運(yùn)營一體化就是剛才講的那幾個(gè)緯度。我們分級(jí)的時(shí)候,可以對(duì)整個(gè)研發(fā)運(yùn)營一體化進(jìn)行分級(jí),也可以小到某個(gè)環(huán)節(jié),大到某個(gè)部分去進(jìn)行成熟度的分級(jí)。
這樣有助于了解每個(gè)環(huán)節(jié)的情況,有助于逐個(gè)擊破,提升自己 DevOps 的能力。分級(jí)成熟度就是從阻礙一直到優(yōu)化這五個(gè)級(jí)別,很容易理解。
這里面講的是敏捷需求管理、迭代計(jì)劃管理和敏捷過程管理,屬于剛才講的第一級(jí)的環(huán)節(jié),每一個(gè)環(huán)節(jié)可以分成很多小環(huán)節(jié)。
其中需求管理細(xì)分為需求收集、需求分析、需求與用例和需求驗(yàn)收四個(gè)細(xì)分維度。
需求收集從單個(gè)需求點(diǎn)、需求全貌、需求的管理、人員機(jī)制以及工具能力五個(gè)維度進(jìn)行評(píng)估;
需求分析從需求內(nèi)容和形式、需求協(xié)作、需求的管理、人員機(jī)制以及工具能力五個(gè)維度進(jìn)行評(píng)估;
需求與用例從需求與用例編寫、需求用例驗(yàn)證、需求與用例的管理、人員機(jī)制以及工具能力五個(gè)維度進(jìn)行評(píng)估;
需求驗(yàn)收從需求驗(yàn)收頻率、需求驗(yàn)收范圍、需求驗(yàn)收反饋效率、人員機(jī)制以及工具能力五個(gè)維度進(jìn)行評(píng)估。
其中計(jì)劃管理細(xì)分為需求澄清與拆解、故事與任務(wù)排期、計(jì)劃變更三個(gè)維度。
需求澄清與拆解從需求澄清的時(shí)間、內(nèi)容的完備性、協(xié)作、人員機(jī)制以及工具能力五個(gè)維度進(jìn)行評(píng)估;
故事與任務(wù)排期從排版要素、排版容量、排版管理、人員機(jī)制以及工具能力五個(gè)維度進(jìn)行評(píng)估;
計(jì)劃變更從變更決策、應(yīng)對(duì)變更、減少變更、人員機(jī)制以及工具能力五個(gè)維度進(jìn)行評(píng)估。
其中過程管理細(xì)分為迭代管理、迭代活動(dòng)、過程可視化及流動(dòng)、度量分析四個(gè)維度。
迭代管理從迭代時(shí)間周期、迭代協(xié)作機(jī)制、迭代流程改進(jìn)、人員機(jī)制以及工具能力五個(gè)維度進(jìn)行評(píng)估;
迭代活動(dòng)從迭代活動(dòng)約定、迭代活動(dòng)時(shí)間約定、迭代活動(dòng)范圍、人員機(jī)制以及工具能力五個(gè)維度進(jìn)行評(píng)估;
過程可視化及流動(dòng)從過程可視化、過程價(jià)值流動(dòng)、迭代過程改進(jìn)、人員機(jī)制以及工具能力五個(gè)維度進(jìn)行評(píng)估;
度量分析從度量粒度、度量范圍、度量驅(qū)動(dòng)持續(xù)改進(jìn)、人員機(jī)制以及工具能力五個(gè)維度進(jìn)行評(píng)估。
以下就部分內(nèi)容進(jìn)行闡述。
需求收集環(huán)節(jié)是需求提出方和產(chǎn)品經(jīng)理之間明確產(chǎn)品需求的階段,是產(chǎn)品研發(fā)運(yùn)營一體化最初始階段,把產(chǎn)品的需求具象化,形成待辦事項(xiàng)列表的過程。
需求收集環(huán)節(jié)包括三個(gè)方面工作:
明確單個(gè)需求點(diǎn),即以問題驅(qū)動(dòng)為核心,探索問題核心相關(guān)事項(xiàng)的過程
梳理需求全貌,應(yīng)能列出為了落實(shí)產(chǎn)品的愿景而需要完成的所有事項(xiàng),即待辦事項(xiàng)列表
確定待辦事項(xiàng)列表,應(yīng)包括用戶需求所涉及的所有事項(xiàng),并且作為產(chǎn)品研發(fā)路線圖
這三個(gè)工作從人員機(jī)制到工具能力,會(huì)用到不同程度的工具,以及人員協(xié)作的流暢度,協(xié)作的程度是不一樣的。所以把它分成五級(jí),大家可以看一下上圖右邊的內(nèi)容。
最高級(jí)的是,需求方就是產(chǎn)品經(jīng)理可以把需求方的每個(gè)點(diǎn)形成一個(gè)功能點(diǎn),并且把功能點(diǎn)形成整個(gè)需求的全貌,形成一個(gè)列表,進(jìn)一步形成路線圖,這個(gè)路線圖可以是在后續(xù)的迭代開發(fā)中不斷的優(yōu)化。
在工具能力方面會(huì)用到很多需求管理,用統(tǒng)一的工具對(duì)需求進(jìn)行管理。組織架構(gòu)方面,企業(yè)采用扁平化的敏捷團(tuán)隊(duì)組織架構(gòu),賦予團(tuán)隊(duì)圍繞產(chǎn)品自組織、自管理的權(quán)力,包括但不限于產(chǎn)品規(guī)劃、建設(shè)、運(yùn)營、人力、績(jī)效、核算等。
例如,敏捷團(tuán)隊(duì)以業(yè)務(wù)價(jià)值為核心以運(yùn)營為驅(qū)動(dòng)的敏捷工作模式,企業(yè)為團(tuán)隊(duì)提供IT基礎(chǔ)設(shè)施、基礎(chǔ)管理等支持。第一個(gè)環(huán)節(jié),如果做到這一級(jí)的話,是非常好的。如果是普通程度的情況,一個(gè)是傳達(dá)的需求不明確,第二個(gè)沒有用到任何的工具,這樣普通的級(jí)別在后續(xù)的迭代計(jì)劃中根據(jù)計(jì)劃的改變而進(jìn)行改變,是不夠靈活的。
這是需求收集環(huán)節(jié)我們的分級(jí)。大家可以對(duì)應(yīng)表看看你是屬于哪個(gè)程度哪一級(jí)的。
需求分析是產(chǎn)品經(jīng)理將需求細(xì)化和拆解成用戶故事的過程。
主要體現(xiàn)三個(gè)方面:
明確需求內(nèi)容和形式,需求分析形成用戶故事,用戶故事描述用戶場(chǎng)景。
需求分析協(xié)作,用戶故事是適度詳細(xì)并適應(yīng)變化的,可以在開發(fā)過程中對(duì)其進(jìn)行評(píng)估不斷細(xì)化。
需求管理方式 用戶故事統(tǒng)一管理,并按照業(yè)務(wù)價(jià)值由高到低排定優(yōu)先級(jí)。
需求分析最主要的方式是把整個(gè)甲方或者需求方的需求場(chǎng)景,進(jìn)行統(tǒng)一的分類。在開發(fā)過程中對(duì)它進(jìn)行不斷的評(píng)估,進(jìn)行細(xì)化,最后把場(chǎng)景按照業(yè)務(wù)價(jià)值,由高到低進(jìn)行排定優(yōu)先級(jí)。
上面需求收集只是說形成了一個(gè)待辦事項(xiàng)列表,保證不停的更新。這個(gè)時(shí)候需求分析能夠按照不在待辦事項(xiàng)里,能夠按照優(yōu)先級(jí)去進(jìn)行標(biāo)注,進(jìn)一步根據(jù)后面的迭代開發(fā)情況進(jìn)行不斷的反饋。
需求與用例管理是指產(chǎn)品經(jīng)理和開發(fā)團(tuán)隊(duì)把用戶故事的驗(yàn)收標(biāo)準(zhǔn)和測(cè)試用例進(jìn)行關(guān)聯(lián)性,能驗(yàn)收產(chǎn)品功能是否滿足用戶故事的要求的過程。
主要體現(xiàn)在三個(gè)方面:
梳理需求用例,編寫需求驗(yàn)收標(biāo)準(zhǔn),形成測(cè)試用例的過程。
使用需求用例,需求用例指導(dǎo)需求開發(fā),驗(yàn)證產(chǎn)品功能的過程。
管理需求用例,建立需求與用例的統(tǒng)一管理庫,持續(xù)的使用和優(yōu)化。
剛才已經(jīng)把需求分了級(jí),分了場(chǎng)景后,開發(fā)有沒有達(dá)到我們的需求呢?這個(gè)地方對(duì)需求管理很重要了,要預(yù)先有一些測(cè)試?yán)?,能夠很好地判斷后面的開發(fā)有沒有達(dá)到。如果有問題再反饋回來,我們的需求進(jìn)一步調(diào)整。
應(yīng)建立企業(yè)級(jí)可視化便捷的平臺(tái),管理需求文檔,且可以通過需求文檔能查看產(chǎn)品的全貌,且通過平臺(tái),需求提出人、最終使用人、產(chǎn)品經(jīng)理、開發(fā)運(yùn)維人員進(jìn)行更好的溝通和協(xié)作。保證可持續(xù)性,它有一個(gè)持續(xù),每個(gè)環(huán)節(jié)都可以持續(xù),持續(xù)都是持續(xù)到下一個(gè)環(huán)節(jié),交付環(huán)節(jié)的。
需求驗(yàn)收是指產(chǎn)品經(jīng)理、需求提出者和最終用戶對(duì)產(chǎn)品的功能驗(yàn)收,要求能對(duì)需求進(jìn)行快速測(cè)試、快速確認(rèn)、快速反饋、快速優(yōu)化。
本節(jié)的需求驗(yàn)收,僅是指功能驗(yàn)收,非功能測(cè)試不在本節(jié)的范圍內(nèi)。需求驗(yàn)收主要體現(xiàn)在以下三個(gè)方面:
需求驗(yàn)收的頻率指不同角色對(duì)需求功能驗(yàn)收的頻率,頻率越高效果越好。
需求驗(yàn)收的范圍指需求驗(yàn)收應(yīng)盡量具備有業(yè)務(wù)價(jià)值的端到端的驗(yàn)收。
需求驗(yàn)收的反饋效率指需求驗(yàn)收的結(jié)果能準(zhǔn)確、快速的反饋到開發(fā)團(tuán)隊(duì)的過程。
最后是需求的驗(yàn)收,包括設(shè)計(jì)驗(yàn)收的頻率、制定驗(yàn)收的測(cè)試方案、指標(biāo)等等。并不是強(qiáng)制要求你的頻率一定要達(dá)到多少次。不同的產(chǎn)品驗(yàn)收頻率驗(yàn)收結(jié)果是不一樣的。更多是告訴你一種方法論,在這個(gè)過程中也是需要你用到一系列的工具,去輔助你能夠自動(dòng)化去進(jìn)行需求的驗(yàn)收等等。
最高級(jí)別應(yīng)建立企業(yè)級(jí)大數(shù)據(jù)分析工具,能抓取用戶行為數(shù)據(jù),通過大數(shù)據(jù)分析,在用戶功能驗(yàn)收和用戶體驗(yàn)時(shí)作為輔助決策依據(jù),持續(xù)優(yōu)化改進(jìn)。需求的環(huán)節(jié)在敏捷開發(fā)里是非常重要的,下面的環(huán)節(jié)叫迭代計(jì)劃管理。
其他相關(guān)標(biāo)準(zhǔn)內(nèi)容,詳解相關(guān)文檔(文末可下載)。
第三個(gè)標(biāo)準(zhǔn)就是持續(xù)交付的過程,它分為配置管理、部署等等,分了好幾個(gè)環(huán)節(jié)。每個(gè)環(huán)節(jié)包括一些子環(huán)節(jié),每個(gè)子環(huán)節(jié)從很多緯度進(jìn)行能力的評(píng)估。
其中配置管理細(xì)分為版本控制、版本可追蹤性兩個(gè)維度。版本控制從版本控制系統(tǒng)、分支管理、構(gòu)建產(chǎn)物管理、單一可信數(shù)據(jù)源四個(gè)維度進(jìn)行評(píng)估;版本可追蹤性從變更過程、變更追溯、變更回滾三個(gè)維度進(jìn)行評(píng)估。
其中構(gòu)建與持續(xù)集成分為構(gòu)建實(shí)踐、持續(xù)集成兩個(gè)維度。構(gòu)建實(shí)踐從構(gòu)建方式、構(gòu)建環(huán)境、構(gòu)建計(jì)劃、構(gòu)建職責(zé)四個(gè)維度進(jìn)行評(píng)估;持續(xù)集成從集成服務(wù)、集成頻率、集成方式、反饋周期四個(gè)維度進(jìn)行評(píng)估。
其中測(cè)試管理分為測(cè)試分級(jí)策略、代碼質(zhì)量管理、測(cè)試自動(dòng)化三個(gè)維度。測(cè)試分級(jí)策略從分層方法、分層策略、測(cè)試時(shí)機(jī)三個(gè)維度進(jìn)行評(píng)估;代碼質(zhì)量管理從質(zhì)量規(guī)約、檢查策略、檢查方式、反饋處理四個(gè)維度進(jìn)行評(píng)估;測(cè)試自動(dòng)化從自動(dòng)化設(shè)計(jì)、自動(dòng)化開發(fā)、自動(dòng)化執(zhí)行、自動(dòng)化分析四個(gè)維度進(jìn)行評(píng)估。
其中部署與發(fā)布管理分為部署與發(fā)布模式、持續(xù)部署流水線兩個(gè)維度。部署與發(fā)布模式從部署方式、部署活動(dòng)、部署策略、部署質(zhì)量四個(gè)維度進(jìn)行評(píng)估;持續(xù)部署流水線從協(xié)作模式、流水線過程、過程可視化三個(gè)維度進(jìn)行評(píng)估。
其中環(huán)境管理分為環(huán)境類型、環(huán)境構(gòu)建和環(huán)境依賴與配置管理。
其中數(shù)據(jù)管理分為測(cè)試數(shù)據(jù)管理和數(shù)據(jù)變更管理兩個(gè)維度。測(cè)試數(shù)據(jù)管理從數(shù)據(jù)來源、數(shù)據(jù)覆蓋、數(shù)據(jù)獨(dú)立性、數(shù)據(jù)安全四個(gè)維度進(jìn)行評(píng)估;數(shù)據(jù)變更管理從變更過程、兼容回滾、版本控制、數(shù)據(jù)監(jiān)控四個(gè)維度進(jìn)行評(píng)估。
其中度量與反饋分為度量指標(biāo)和度量驅(qū)動(dòng)改進(jìn)兩個(gè)維度。度量指標(biāo)從度量指標(biāo)定義、度量指標(biāo)類型、度量數(shù)據(jù)管理、度量指標(biāo)更新四個(gè)維度進(jìn)行評(píng)估;度量驅(qū)動(dòng)改進(jìn)從報(bào)告生成方式、報(bào)告有效性、報(bào)告覆蓋范圍、反饋改進(jìn)四個(gè)維度進(jìn)行評(píng)估。
版本控制是從版本控制系統(tǒng)、分支管理和構(gòu)建產(chǎn)物管理和單一的可信數(shù)據(jù)源。
從五個(gè)方面對(duì)它進(jìn)行成熟度的分級(jí)。最高級(jí),比如在版本控制系統(tǒng)方面,要有版本的控制系統(tǒng),產(chǎn)品開發(fā)的版本控制系統(tǒng)。它是有生命周期的,所有的版本,包括修改等等流程都可以進(jìn)行管理。比如分支的管理,就是持續(xù)優(yōu)化分支管理策略,等等。
版本的可追溯性,版本可追溯性是指軟件系統(tǒng)中的每一次變更都可以追溯變更的詳細(xì)信息,并向上追溯變更的原始需求、流轉(zhuǎn)過程等所有關(guān)聯(lián)信息。支持全程的數(shù)據(jù)分析管理和滿足審計(jì)的要求。這里審計(jì)要求是指你這個(gè)產(chǎn)品的開發(fā),每一步 BUG 的修改、每一步的變更是誰做的,它修改了哪一步。也是可追溯的意思。
可追溯性也是版本回滾的歷史依據(jù)和實(shí)施基礎(chǔ),建立良好的版本可追溯性可實(shí)現(xiàn)對(duì)任一版本完整環(huán)境流程的自動(dòng)化,精確回滾,快速重現(xiàn)問題和恢復(fù)正常環(huán)境。
版本的管理就是構(gòu)建與持續(xù)的集成。構(gòu)建的實(shí)踐包括持續(xù)優(yōu)化的構(gòu)建服務(wù)平臺(tái)、持續(xù)改建服務(wù)的易用性。
構(gòu)建是將軟件源代碼通過構(gòu)建工具轉(zhuǎn)換為可執(zhí)行程序的過程,一般包含編譯和鏈接兩個(gè)步驟,將高級(jí)語言代碼轉(zhuǎn)換為可執(zhí)行的機(jī)器代碼并進(jìn)行相應(yīng)的優(yōu)化,提升運(yùn)行效率。
持續(xù)集成是軟件構(gòu)建過程中的一個(gè)最佳實(shí)踐,在版本控制的基礎(chǔ)上,通過頻繁的代碼提交,自動(dòng)化構(gòu)建和自動(dòng)化測(cè)試,加快軟件集成周期和問題反饋速度,從而及時(shí)驗(yàn)證系統(tǒng)可用性。
這里可以用容器管理工具,因?yàn)槿萜骱芊奖憧梢园押芏鄳?yīng)用做成標(biāo)準(zhǔn)化,封裝成容器的格式,方便不斷做鏡像,不斷進(jìn)行擴(kuò)充管理。方便了微服務(wù)架構(gòu)的開發(fā),可以去管理一些應(yīng)用,所以這里很多人都會(huì)用到容器的原因,在這把它當(dāng)做一個(gè)管理的工具去實(shí)現(xiàn)了。
跟構(gòu)建實(shí)踐差不多的,持續(xù)優(yōu)化和改進(jìn)團(tuán)隊(duì)的持續(xù)集成的能力和變更。
部署與發(fā)布泛指軟件生命周期中,將軟件應(yīng)用系統(tǒng)對(duì)用戶可見,并提供服務(wù)的一系列活動(dòng),包括系統(tǒng)配置,發(fā)布,安裝等。整個(gè)部署發(fā)布過程復(fù)雜,涉及多個(gè)團(tuán)隊(duì)之間的協(xié)作和交付,需要良好的計(jì)劃和演練保證部署發(fā)布的正確性。
其中部署偏向技術(shù)實(shí)踐,即將軟件代碼,應(yīng)用,配置和數(shù)據(jù)庫變更應(yīng)用到測(cè)試環(huán)境、準(zhǔn)生產(chǎn)環(huán)境和生產(chǎn)環(huán)境的過程。發(fā)布偏向于業(yè)務(wù)實(shí)踐,指將部署完成的應(yīng)用軟件功能和服務(wù)正式對(duì)用戶可見,提供線上服務(wù)的過程。部署和發(fā)布的有機(jī)結(jié)合,實(shí)現(xiàn)了軟件價(jià)值向最終用戶的交付。
持續(xù)部署流水線是 DevOps 的核心實(shí)踐,通過可靠可重復(fù)的流水線,打通端到端價(jià)值流交付,實(shí)現(xiàn)交付過程中各個(gè)環(huán)節(jié)活動(dòng)的自動(dòng)化和可視化。部署流水線通過將復(fù)雜的軟件交付流程細(xì)分為多個(gè)階段,每個(gè)階段層層遞進(jìn),提升軟件交付質(zhì)量信心,并且在流水線過程中提供快速反饋,減少后端環(huán)節(jié)浪費(fèi)。
可視化流水線可以增強(qiáng)跨組織的協(xié)同效率,提供有效的信息共享平臺(tái),從而統(tǒng)一組織目標(biāo),并且不斷識(shí)別流水線中的約束點(diǎn)和瓶頸,以及潛在的自動(dòng)化及協(xié)作場(chǎng)景,通過持續(xù)改進(jìn)而不斷提升軟件交付效率。
環(huán)境作為 DevOps 持續(xù)敏捷交付過程中最終的承載,環(huán)境的生命周期管理、一致性管理、環(huán)境的版本管理都變得非常重要。環(huán)境管理是用最小的代價(jià)來達(dá)到確保一致性的終極目標(biāo)。
其他相關(guān)標(biāo)準(zhǔn)內(nèi)容,詳見相關(guān)文檔(文末可下載)。
聯(lián)系客服