華為云計(jì)算 云知識(shí) DevOps的實(shí)施流程
DevOps的實(shí)施流程

Gartner的研究主管George Spafford說(shuō):“由于缺少標(biāo)準(zhǔn)的定義和方法,處于不斷發(fā)展中,需要接受和管理風(fēng)險(xiǎn),DevOps對(duì)傳統(tǒng)IT思維提出了挑戰(zhàn)。這個(gè)不確切的目標(biāo)狀態(tài)導(dǎo)致許多IT部門(mén)猶豫不決、不敢實(shí)施DevOps策略?!?/p>

雖然沒(méi)有一系列具體的所需階段,但Spafford建議基礎(chǔ)設(shè)施及運(yùn)營(yíng)(I&O)領(lǐng)導(dǎo)人可以遵循這八個(gè)基本步驟來(lái)搞好DevOps項(xiàng)目。

1.確定業(yè)務(wù)理由

DevOps項(xiàng)目要關(guān)注業(yè)務(wù)需求,而不是“純粹為了DevOps搞DevOps”,避免方法和工具變得比客戶需求還重要。企業(yè)要避免這個(gè)常見(jiàn)的錯(cuò)誤:還沒(méi)有明確搞DevOps項(xiàng)目的業(yè)務(wù)理由,就貿(mào)然上馬。

Spafford解釋到:“比如說(shuō),先從業(yè)務(wù)價(jià)值入手,問(wèn)問(wèn)DevOps能帶來(lái)什么,而不是專注于發(fā)布速度、更快地完成工作。理由可能是‘通過(guò)提升發(fā)布速度,我們能夠更快地創(chuàng)新,從而支持銷售和營(yíng)銷部門(mén)使用移動(dòng)應(yīng)用進(jìn)行訂購(gòu)?!畛晒Φ钠髽I(yè)希望通過(guò)DevOps獲得業(yè)務(wù)的好處。”

2.為所在企業(yè)定義DevOps

Gartner對(duì)DevOps下的定義是:這是一種使用敏捷方法、協(xié)作和 自動(dòng)化 交付解決方案的業(yè)務(wù)驅(qū)動(dòng)方法。能以所在企業(yè)易懂的措辭來(lái)定義目標(biāo)狀態(tài)顯得很重要。為項(xiàng)目挑一個(gè)標(biāo)簽,提供員工認(rèn)同和支持的一個(gè)“標(biāo)語(yǔ)”,這有助于員工參與進(jìn)來(lái)。這個(gè)定義應(yīng)簡(jiǎn)短、明確重點(diǎn),并支持業(yè)務(wù)理由。

3.選擇“先行者”應(yīng)用軟件

別指望一個(gè)步驟就部署好DevOps。DevOps要迭代式部署,每次同時(shí)滿足這三個(gè)要素:

友好的環(huán)境:這意味著大家愿意使用先行者應(yīng)用軟件,真心嘗試項(xiàng)目。

可接受的價(jià)值:先行者應(yīng)用軟件要提供足夠的價(jià)值以贏得信譽(yù)和批準(zhǔn),以便繼續(xù)下去。

可接受的風(fēng)險(xiǎn):由于DevOps方面的不確定性,許多人認(rèn)為它風(fēng)險(xiǎn)很高,害怕開(kāi)始入手。企業(yè)應(yīng)指出風(fēng)險(xiǎn)可接受的機(jī)會(huì),因?yàn)镮T、運(yùn)營(yíng)、開(kāi)發(fā)、信息安全,法規(guī)遵從和審計(jì)等部門(mén)的每個(gè)人都要學(xué)習(xí)。

Spafford說(shuō):“DevOps主要用于敏捷開(kāi)發(fā)以及不確定性相當(dāng)大的場(chǎng)景(比如機(jī)器學(xué)習(xí)和物聯(lián)網(wǎng)),但由于DevOps理念可以廣泛應(yīng)用,所以會(huì)有引入這套概念的其他機(jī)會(huì)。然而,最初運(yùn)用于創(chuàng)新的系統(tǒng)通常比較好,因?yàn)楝F(xiàn)有功能可能無(wú)法支持像 大數(shù)據(jù) 、機(jī)器學(xué)習(xí)和物聯(lián)網(wǎng)這些項(xiàng)目?!?/p>

4.確定初始團(tuán)隊(duì)

人員是成功的DevOps項(xiàng)目的主要因素。挑選初始團(tuán)隊(duì)的成員時(shí),要注重行為而不是注重技能。教技術(shù)技能比教正確行為來(lái)得容易――錯(cuò)誤的行為會(huì)使DevOps工作偏離正常進(jìn)程。物色優(yōu)秀的團(tuán)隊(duì)成員,要聰明、有干勁,了解風(fēng)險(xiǎn),致力于終生學(xué)習(xí),還能適應(yīng)新的工作方式。

5.確立目標(biāo)和度量指標(biāo)

因?yàn)槿藛T是DevOps項(xiàng)目中最重要的因素,了解和實(shí)施合適的激勵(lì)措施至關(guān)重要。Spafford說(shuō):“在許多傳統(tǒng)企業(yè),目標(biāo)由各部門(mén)確立,IT度量指標(biāo)落實(shí)到位,以解決問(wèn)題,獎(jiǎng)勵(lì)解決問(wèn)題的人員?!?/p>

“在DevOps項(xiàng)目中,目標(biāo)要由團(tuán)隊(duì)確立,并與下達(dá)給團(tuán)隊(duì)的業(yè)務(wù)目標(biāo)保持一致。DevOps團(tuán)隊(duì)成員要認(rèn)識(shí)到他們都有同一個(gè)目標(biāo),度量指標(biāo)和激勵(lì)措施要鼓勵(lì)團(tuán)隊(duì)合作以實(shí)現(xiàn)業(yè)務(wù)目標(biāo),而不是度量指標(biāo)強(qiáng)化風(fēng)險(xiǎn)規(guī)避和解決個(gè)別問(wèn)題?!?/p>

6.專注于限制因素

I&O領(lǐng)導(dǎo)人應(yīng)找出限制生產(chǎn)能力的最大瓶頸。開(kāi)發(fā)新的和變更的系統(tǒng),并轉(zhuǎn)移到生產(chǎn)環(huán)境中,這個(gè)生命周期會(huì)帶來(lái)最大的限制因素,因而限制生產(chǎn)能力。如果專注于這個(gè)最大的限制因素,DevOps團(tuán)隊(duì)就能系統(tǒng)地識(shí)別什么在阻礙所需的工作節(jié)奏,并克服這個(gè)瓶頸。

7.開(kāi)發(fā)工具鏈

實(shí)施DevOps的總體目標(biāo)包括一套集成的工具鏈,支持合理地評(píng)估和選擇工具,以便每個(gè)工具都與應(yīng)用程序生命周期中的相鄰工具松散耦合。連接所有的自動(dòng)化接觸點(diǎn)和信息流可借助工具鏈來(lái)加快版本的發(fā)布,同時(shí)減少錯(cuò)誤、缺陷、返工和停運(yùn)。這將讓在每個(gè)階段使用的工具得以保持一致,便于了解在階段內(nèi)和階段之間哪個(gè)地方需要實(shí)現(xiàn)自動(dòng)化、集成和工具轉(zhuǎn)換。

8.準(zhǔn)備好后擴(kuò)展

太多的公司犯這樣的錯(cuò)誤:開(kāi)始DevOps之前就需要擴(kuò)展,以便獲得批準(zhǔn)。這導(dǎo)致了惡性循環(huán)。因?yàn)樗麄儾恢廊绾螖U(kuò)展DevOps,所以無(wú)法開(kāi)始。而由于他們無(wú)法開(kāi)始,就無(wú)法摸索并搞清楚如何擴(kuò)展。

Spafford建議:“切莫還沒(méi)有準(zhǔn)備好就試圖擴(kuò)展,結(jié)果讓靠譜的DevOps項(xiàng)目偏離正道?!?/p>

“相反,把團(tuán)隊(duì)召集起來(lái),開(kāi)始朝著似乎最有意義的方向前進(jìn),克服遇到的限制因素。人員、技術(shù)和流程方面一定要循序漸進(jìn)。帶來(lái)技術(shù)債務(wù)是不可避免的,而管理這種債務(wù)是新模式的一部分?!?/p>