溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

DevOps的五大實(shí)踐及轉(zhuǎn)型具體實(shí)施過程

發(fā)布時(shí)間:2021-10-12 10:18:38 來源:億速云 閱讀:108 作者:柒染 欄目:云計(jì)算

DevOps的五大實(shí)踐及轉(zhuǎn)型具體實(shí)施過程,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

那么DevOps轉(zhuǎn)型的正確姿勢(shì)應(yīng)該是怎樣的呢?

DevOps轉(zhuǎn)型的五大實(shí)踐

實(shí)踐一:習(xí)慣小批量的方式工作(開發(fā)、架構(gòu)、組織文化的演進(jìn))

持久的變革需要以小批量、持續(xù)的方式進(jìn)行,通過反復(fù)實(shí)驗(yàn)、根據(jù)反饋循環(huán)快速學(xué)習(xí),找到最正確的實(shí)施路徑。這樣需要把大的問題拆成一系列小的問題逐個(gè)、漸進(jìn)式解決,也許這樣沒有Big Bang式的變革令人激動(dòng),但這才是讓我們成功的正確姿勢(shì)。

1. 找到最重要的工作

最經(jīng)典的例子就是項(xiàng)目管理,傳統(tǒng)上按半年或一年規(guī)劃并申請(qǐng)預(yù)算,這驅(qū)使我們工作在大型復(fù)雜項(xiàng)目上,大量時(shí)間花在特性在待辦清單(Backlog)中等待被分析、估算、批準(zhǔn)和排優(yōu)先級(jí)等事務(wù)性工作上。一份稱為"黑天鵝農(nóng)場(chǎng)"的白皮書顯示,他們分析了3000個(gè)待辦清單中等待開發(fā)的不同需求,使用延遲成本(如果不做這個(gè)需求,每周損失的成本)的優(yōu)先級(jí)決策方式。

他們發(fā)現(xiàn),在待辦清單中有三個(gè)特性,如果不交付這些特性,每個(gè)特性每周給組織帶來200萬美金的損失。這幾個(gè)特性隱藏在龐大的待辦清單中,但確實(shí)極為關(guān)鍵的。他們意識(shí)到應(yīng)當(dāng)停掉手頭所有工作,以最快的速度交付這三個(gè)特性。從統(tǒng)計(jì)數(shù)據(jù)上看,這種情況符合冪律分布,如下圖所示。

DevOps的五大實(shí)踐及轉(zhuǎn)型具體實(shí)施過程

所以我們的工作就是要在多個(gè)項(xiàng)目中間,找到那些真正重要的,這需要更加透明、更加清晰的優(yōu)先級(jí),以及組織中每個(gè)人的協(xié)作。

2. 架構(gòu)的持續(xù)演進(jìn)

很普遍的情況是,很多組織擁有大量的遺留系統(tǒng),一些軟件或硬件過于老舊,可能廠商已經(jīng)不再支持了,有些組織的個(gè)別系統(tǒng)甚至沒有源代碼(可能在乙方手中或已丟失)。這類組織通常選擇通過長達(dá)一兩年的架構(gòu)再造解決問題,而當(dāng)進(jìn)行到一年的時(shí)候,他們可能會(huì)說,系統(tǒng)復(fù)雜度實(shí)在太高,我們還需要額外的兩年!我本人就親歷過這樣的超大型項(xiàng)目,最后負(fù)責(zé)的CTO都換人了,項(xiàng)目還沒做完。

以上描述的場(chǎng)景,關(guān)鍵的問題是,大家的關(guān)注點(diǎn)常常在架構(gòu)的技術(shù)層面而不是需要達(dá)到的結(jié)果上。調(diào)查數(shù)據(jù)顯示,如果以下問題的回答都是Yes,那么你更有可能做好持續(xù)交付和DevOps,成為高效能IT組織:

  • 是否無需團(tuán)隊(duì)外的某人或其他團(tuán)隊(duì)授權(quán)就可以進(jìn)行自身系統(tǒng)大范圍的設(shè)計(jì)變更?

  • 是否無需與團(tuán)隊(duì)外的其他人員進(jìn)行細(xì)粒度的溝通就可以完成自身的工作?

  • 是否可以獨(dú)立于其他依賴的服務(wù)或產(chǎn)品,按需部署和發(fā)布自身的產(chǎn)品或服務(wù)?

  • 是否無需依賴復(fù)雜的集成測(cè)試環(huán)境,就可以按需進(jìn)行大多數(shù)自身系統(tǒng)的測(cè)試?

  • 是否可以在日常業(yè)務(wù)時(shí)段,執(zhí)行無停機(jī)的部署?

你可以在老舊的遺留系統(tǒng)上實(shí)現(xiàn)以上全部這些效果,但也可能在充滿高科技、新技術(shù)的情況下,無法達(dá)到以上效果的任意一條。所以我們要關(guān)注的是架構(gòu)演進(jìn)的結(jié)果,而不僅僅是使用炫酷的技術(shù)

關(guān)于演進(jìn)式架構(gòu)的更多內(nèi)容,以及絞殺者模式的思路,我之前的文章也有介紹,其主要原則如下:

  • 從交付業(yè)務(wù)所需的新功能開始(至少在初期是這樣),新功能使用面向服務(wù)的設(shè)計(jì)

  • 不要重寫已有的功能,除非能夠使它持續(xù)簡(jiǎn)化

  • 通過不斷拆分,更快的進(jìn)行交付

  • 為可測(cè)試性和可部署性進(jìn)行設(shè)計(jì)

  • 新的架構(gòu)運(yùn)行在PaaS平臺(tái)上

DevOps的五大實(shí)踐及轉(zhuǎn)型具體實(shí)施過程

實(shí)踐二:創(chuàng)建反饋循環(huán)

在小批量工作的基礎(chǔ)上,我們要建立起反饋循環(huán)。反饋循環(huán)讓我們能夠持續(xù)學(xué)習(xí),基于學(xué)習(xí)進(jìn)行持續(xù)改進(jìn),這也是敏捷和學(xué)習(xí)型組織的關(guān)鍵原則。

持續(xù)交付流水線就是反饋循環(huán)的具體實(shí)現(xiàn),可以提供多個(gè)層次、多個(gè)鏈路的反饋信息,并且可以在反饋效率和反饋完整性之間取得平衡。 
以下是去年我與朋友合作的全開源持續(xù)交付流水線的設(shè)計(jì)圖和效果圖,充分體現(xiàn)了流水線的遞次晉級(jí)和反饋循環(huán)的原則。 
DevOps的五大實(shí)踐及轉(zhuǎn)型具體實(shí)施過程 
全開源流水線只能滿足中小企業(yè)的需求,在大型企業(yè)中的流水線設(shè)計(jì)和實(shí)現(xiàn)更為復(fù)雜,我后面找時(shí)間再跟大家單獨(dú)介紹。

實(shí)踐三:通過價(jià)值流進(jìn)行跨職能協(xié)作

需求、開發(fā)、測(cè)試、信息安全、運(yùn)維等角色需要在軟件交付價(jià)值流中協(xié)同工作。價(jià)值流圖是促進(jìn)跨職能協(xié)作的關(guān)鍵工具。我們可以通過開展價(jià)值流梳理的Workshop,識(shí)別支撐價(jià)值流的各種角色以及角色之間的協(xié)作關(guān)系。我們不需要文檔化價(jià)值流中每一步的細(xì)枝末節(jié),而是理解價(jià)值是如何傳遞的,各角色是如何協(xié)同工作的。

DevOps的五大實(shí)踐及轉(zhuǎn)型具體實(shí)施過程

以上模型不僅停留在理論層面,更可以應(yīng)用在實(shí)踐領(lǐng)域。

案例一. Google的災(zāi)難恢復(fù)測(cè)試

Google在幾年之前進(jìn)行過一項(xiàng)研究,如何打造一個(gè)優(yōu)秀的團(tuán)隊(duì)。他們調(diào)研了來自180個(gè)Google團(tuán)隊(duì)的200位受訪者,觀察了超過250項(xiàng)不同的因素,比如團(tuán)隊(duì)中有人取得博士學(xué)位、有性格外向的人,有人著迷于AngularJS等等。但他們最終發(fā)現(xiàn)打造高效能IT組織,排在第一位的因素是:心理上的安全感,即可以在團(tuán)隊(duì)中承擔(dān)風(fēng)險(xiǎn)而不會(huì)感到不安全或者受到傷害。

我們需要構(gòu)建一個(gè)安全的環(huán)境,讓失敗是可以接受的,并且作為組織學(xué)習(xí)的基礎(chǔ)。Google和Amazon都會(huì)在線上進(jìn)行災(zāi)難恢復(fù)測(cè)試,確保在發(fā)生嚴(yán)重故障時(shí),故障恢復(fù)策略真正有效,系統(tǒng)仍然可以正常運(yùn)轉(zhuǎn)。 
Google有一整個(gè)團(tuán)隊(duì)專注于計(jì)劃和實(shí)施災(zāi)難恢復(fù)測(cè)試,甚至有一年模擬外星人侵入硅谷的場(chǎng)景,他們斷開山景城與外界的光纜連接、關(guān)閉數(shù)據(jù)中心并對(duì)基礎(chǔ)設(shè)施施加真實(shí)的影響,但要求團(tuán)隊(duì)必須要維護(hù)服務(wù)級(jí)別目標(biāo)。他們?cè)O(shè)計(jì)的災(zāi)難恢復(fù)測(cè)試,需要由來自很多不同組、平時(shí)不在一起工作的工程師相互協(xié)作,那么在大規(guī)模災(zāi)難真正來臨的時(shí)候,他們已經(jīng)建立起了很強(qiáng)的工作關(guān)系。

案例二. Etsy的"三只袖毛衣"獎(jiǎng)勵(lì)

Etsy每年舉辦開發(fā)者大會(huì),會(huì)發(fā)給過去一年中生產(chǎn)環(huán)境最大中斷的制造者一件"三只袖毛衣"作為獎(jiǎng)勵(lì)。那么為什么獎(jiǎng)勵(lì)是三只袖毛衣呢?因?yàn)镋tsy的404頁面中有一張三只袖毛衣的圖片。

DevOps的五大實(shí)踐及轉(zhuǎn)型具體實(shí)施過程

實(shí)踐五:持續(xù)消除浪費(fèi),優(yōu)化價(jià)值流

DevOps需要持續(xù)改進(jìn),移除浪費(fèi),讓價(jià)值流動(dòng)變得更加順暢。我近期輔導(dǎo)了一些團(tuán)隊(duì)使用價(jià)值流圖的方式進(jìn)行流程和問題梳理,發(fā)現(xiàn)這的確對(duì)組織認(rèn)知和優(yōu)化現(xiàn)有軟件交付過程非常有幫助。

DevOps的五大實(shí)踐及轉(zhuǎn)型具體實(shí)施過程
DevOps的轉(zhuǎn)型并不簡(jiǎn)單,想要走上成功之路,這里還有幾個(gè)Tips:

  • 對(duì)可度量的業(yè)務(wù)目標(biāo)達(dá)成一致。制定"跳一跳可以達(dá)到"的目標(biāo),比如減少10%嚴(yán)重缺陷數(shù)、提升20%服務(wù)可用時(shí)長、達(dá)到2倍的發(fā)布頻率,或者其他混合的結(jié)果指標(biāo)。

  • 給團(tuán)隊(duì)資源進(jìn)行實(shí)驗(yàn)并對(duì)學(xué)習(xí)進(jìn)行激勵(lì)。團(tuán)隊(duì)無法在日常工作照舊的前提下,"加班"進(jìn)行改進(jìn)的探索。改進(jìn)是要有真實(shí)工作量投入的,這應(yīng)當(dāng)與開發(fā)新功能、修復(fù)缺陷以同樣的方式進(jìn)行優(yōu)先級(jí)排序。具體來講,可以使用看板管理WIP,指派專職的團(tuán)隊(duì)全職做改進(jìn)工作,或者每周給團(tuán)隊(duì)一個(gè)特定時(shí)間用于做改進(jìn)工作。

  • 與其他團(tuán)隊(duì)溝通,鼓勵(lì)協(xié)作。很多人經(jīng)常提及合規(guī)、安全、治理等團(tuán)隊(duì),認(rèn)為他們是改進(jìn)的阻礙。但其實(shí)如果與這些團(tuán)隊(duì)進(jìn)行友好的溝通,你可能會(huì)發(fā)現(xiàn)他們非常期望討論獲得雙贏的具體措施。

  • 取得速贏。你需要在一到兩個(gè)月做出改進(jìn)的效果。具體來講有三個(gè)關(guān)鍵點(diǎn):首先,通過價(jià)值流圖或約束理論,找到一個(gè)影響最大的、并且可以快速解決和可被度量效果的問題;其次,限制首次進(jìn)行改進(jìn)的范圍,最小化改進(jìn)工作;然后,與對(duì)改進(jìn)有興趣并有充足容量和能力的團(tuán)隊(duì)合作,取得速贏。

  • 分享成功經(jīng)驗(yàn)。為了獲得其他人的支持,你需要做好成功經(jīng)驗(yàn)的宣傳工作,吸引更多的人加入到改進(jìn)工作中來。比如有的企業(yè)組織內(nèi)部的DevOpsDays大會(huì),跨部門進(jìn)行經(jīng)驗(yàn)的推廣,這非常有效。另外午餐學(xué)習(xí)會(huì)、內(nèi)部博客、郵件列表、Slack或HipChat頻道都是獲得參與者最好的渠道。還要對(duì)其他嘗試的人提供幫助,就像DevOps教練應(yīng)該做的工作那樣。

  • 持續(xù)改進(jìn)。高效能的組織永遠(yuǎn)追求改進(jìn)的機(jī)會(huì)。就像豐田管理系統(tǒng)的締造者大野耐一所說的:"Kaizen [improvement] opportunities are infinite",改進(jìn)的機(jī)會(huì)是無窮無盡的。百度集團(tuán)總裁兼COO 陸奇在去年的一次演講中也講過:"Engineering Excellence 是一個(gè)永無止境的、個(gè)人的、團(tuán)隊(duì)的,能力的追求和工具平臺(tái)的創(chuàng)新,綜合在一起可以帶給我們帶來的長期的、核心的競(jìng)爭(zhēng)力"。Relentless pursuit of excellence,這是我們應(yīng)該堅(jiān)持的態(tài)度

  • DevOps轉(zhuǎn)型的五大實(shí)踐。習(xí)慣小批量的工作方式(開發(fā)、架構(gòu)、組織文化的演進(jìn))、創(chuàng)建反饋循環(huán)(流水線建設(shè))、通過價(jià)值流進(jìn)行跨職能協(xié)作、建立實(shí)驗(yàn)的組織文化、持續(xù)消除浪費(fèi)并優(yōu)化價(jià)值流;

  • DevOps轉(zhuǎn)型的具體實(shí)施建議。關(guān)注DevOps轉(zhuǎn)型的關(guān)鍵能力要素,對(duì)可度量的業(yè)務(wù)目標(biāo)達(dá)成一致、給團(tuán)隊(duì)資源進(jìn)行實(shí)驗(yàn)并對(duì)學(xué)習(xí)進(jìn)行激勵(lì)、與其他團(tuán)隊(duì)溝通并鼓勵(lì)協(xié)作、取得速贏、分享成功經(jīng)驗(yàn)、持續(xù)改進(jìn)。


看完上述內(nèi)容,你們掌握DevOps的五大實(shí)踐及轉(zhuǎn)型具體實(shí)施過程的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI