devops是一種文化運(yùn)動(dòng),會(huì)改變個(gè)人對(duì)其工作的想法,重視所做工作的多樣性,支持加快企業(yè)實(shí)現(xiàn)價(jià)值的過程,以及度量社會(huì)和技術(shù)改變帶來的影響。這是一種思維方式,也是一種工作方式,會(huì)促使個(gè)人與組織發(fā)展和維護(hù)可持續(xù)的工作實(shí)踐。這也是個(gè)分享故事和培養(yǎng)同理心的文化框架,允許人們和團(tuán)隊(duì)以有效和持續(xù)的方式實(shí)戰(zhàn)運(yùn)用。
文化處方
devops是一個(gè)文化處方。任何一個(gè)文化運(yùn)動(dòng)都不可能存在于真空中:社會(huì)結(jié)構(gòu)與文化緊密交織在一起。組織中的層次結(jié)構(gòu)、行業(yè)關(guān)聯(lián)以及全球化都會(huì)影響文化,還會(huì)影響價(jià)值觀、標(biāo)準(zhǔn)、信念以及反映這些方面的工件。我們創(chuàng)建的軟件不能脫離使用和創(chuàng)建這些軟件的人獨(dú)立存在, devops就是要找出方法來調(diào)整和變革社會(huì)結(jié)構(gòu)、文化和技術(shù),從而能更有效地工作。
DevOps是多方面的綜合
實(shí)現(xiàn)devops并沒有一種唯一正確的方法,也不是這樣一個(gè)“單一處方”,盡管我們會(huì)介招常見的誤區(qū)和反模式,不過更有興趣描述成功的devops文化看上去是怎樣的,會(huì)有怎樣的表現(xiàn),以及這些原則如何應(yīng)用到各種不同的組織和環(huán)境。
盡管devops這個(gè)詞本身是“ developmen”(開發(fā))和“ operations”(運(yùn)維)合成的一個(gè)詞,但 devops的核心概念可以(而且應(yīng)當(dāng))應(yīng)用到整個(gè)組織,一個(gè)可持續(xù)的、成功的企業(yè)井不只有開發(fā)和運(yùn)維團(tuán)隊(duì)。如果加以限制,只考慮具體寫軟件或者在生產(chǎn)環(huán)境部署軟件的團(tuán)隊(duì),這會(huì)對(duì)整個(gè)企業(yè)帶來危害。
DevOps作為大眾模式
在很多方面,devops已經(jīng)成為一個(gè)大眾模式,這個(gè)詞有不同的含義,相應(yīng)地也存在一些誤解。在認(rèn)知科學(xué)領(lǐng)域,大眾模式往往作為一個(gè)抽象用來表述更具體的想法,而且通常會(huì)替代具體想法,與最后討論的概念相比,這個(gè)抽象更容易理解。情境意識(shí)就這樣一個(gè)例子,這通常用來表示更特定的概念,如感知和短期記憶。大眾模式不一定不好,但是不同的組織使用同一個(gè)術(shù)語卻有著不同的內(nèi)涵時(shí),這就會(huì)很成問題人們常常花更多的時(shí)間爭(zhēng)論“devops是指什么(用來表示怎樣的大眾模式),而不是花更多時(shí)間關(guān)注他們真正想要討論的想法。有時(shí),為了繞開如何定義devops的問題,人們討論具體的概念和原則時(shí),會(huì)夸大“不好的”行為,由此強(qiáng)調(diào)哪些才是devops”的“好”行為。例如,為了討論有效的團(tuán)隊(duì)間協(xié)作,有人可能會(huì)用一個(gè)漫畫例子來說明,展示在一個(gè)建立了devops團(tuán)隊(duì)的公司中, devops團(tuán)隊(duì)只是作為開發(fā)和運(yùn)維團(tuán)隊(duì)的中間人(就像我們?cè)谇把灾兴岬降?,這是一個(gè)極端的例子,但是這會(huì)讓人們討論比定義更有意義、更實(shí)用的內(nèi)容。
devops組合
devops的核心是人,人們不僅作為小組,更是作為需要相互理解的團(tuán)隊(duì)來工作。這可以描述為一個(gè)組合,團(tuán)隊(duì)要一起工作,溝通他們的想法以及遇到的問題,并動(dòng)態(tài)地做出調(diào)整,朝著共同的組織目標(biāo)努力。
組合示例
通過分析兩個(gè)攀援者的溝通、澄清和相互信任,可以形象地描述這個(gè)重要的組合,攀援活動(dòng)要求攀援的人在天然巖石或合成墻上向上、向下或左右攀行。共同目標(biāo)是到達(dá)頂端或者到達(dá)某個(gè)特定路線的終點(diǎn),通常攀援過程中不能掉落。這是體力和腦力的結(jié)合,一方面要有攀爬所需要的耐力,另一方面還要有理解能力及做好下一步準(zhǔn)備的敏銳判斷力。
在某些攀援活動(dòng)中,一個(gè)人(即攀援者)會(huì)用一個(gè)繩子和一個(gè)背帶作為保護(hù)措施防止掉落。第二個(gè)人(即保護(hù)者)會(huì)監(jiān)視繩子的張力,要為攀援者提供足夠的張力,一方面防止掉落幅度太大,另一方面還要提供足夠的松馳度,使他在攀援時(shí)有靈活機(jī)動(dòng)的空間。
要提供適當(dāng)而安全的保護(hù),不僅要求對(duì)工具和過程有共同的理解,還需要持續(xù)不斷地溝通,攀援者要安全地打好背帶,保護(hù)者則要確保他的保護(hù)設(shè)備與攀援者的攀援背帶正確連接,開始攀援之前,每個(gè)人都要信任對(duì)方,不過還要檢查另一個(gè)人的工作狀攀援有一套自己的口頭提示,可以在攀援前指示準(zhǔn)備情況,攀援者問“ on belay?(保護(hù)就緒了嗎?),保護(hù)者回應(yīng)“ belay on”(保護(hù)就緒),然后攀援者再回應(yīng)climbing(準(zhǔn)備攀援)來表示他已經(jīng)準(zhǔn)備好。最后,保護(hù)者回應(yīng)“ climb on”(開始攀援)作為確認(rèn)保證這個(gè)組合有效工作的原則包括:
> 明確定義的共同目標(biāo)
> 持續(xù)不斷的溝通
> 對(duì)理解的動(dòng)態(tài)調(diào)整和修正
接下來我們會(huì)談到,這些原則不僅對(duì)攀援者很有意義,對(duì)于具體實(shí)現(xiàn)devops的人也具有同樣的意義。
Devops組合示例
青藍(lán)公司的兩個(gè)員工分別在不同的團(tuán)隊(duì)里工作, Zora是一個(gè)高級(jí)開發(fā)人員,工作背景很豐富,有很多不同的工作經(jīng)歷,他在青藍(lán)公司已經(jīng)任職兩年,Loco是一個(gè)運(yùn)維工程師,有一些經(jīng)驗(yàn),在 青藍(lán)公司里還算是一個(gè)新員工他們所在的兩個(gè)團(tuán)隊(duì)要為依靠青藍(lán)公司網(wǎng)站開展創(chuàng)新活動(dòng)的全球用戶社區(qū)提供支持。他們的共同目標(biāo)是實(shí)現(xiàn)一個(gè)新特性,提升最終用戶的價(jià)值,而且希望不要影響這個(gè)網(wǎng)站。
由于在公司里更有經(jīng)驗(yàn),Zora要向Loco明確青藍(lán)公司的預(yù)期、價(jià)值觀和目前的流程。反過來,Loco要向Zora明確他什么時(shí)候需要幫助或者不能理解流程的哪部分。在繼續(xù)接下來的步驟之前, Zora和Loco要遷入彼此的工作,這正是攀援過程中描述的信任但確認(rèn)( trust-but-verify)模型的一個(gè)例子。
Zora和Loco對(duì)他們的目標(biāo)有共同的理解:
> 實(shí)現(xiàn)一個(gè)新特性,增加對(duì)青藍(lán)公司客戶的價(jià)值
> 在相互溝通中保持安全和信任
在一個(gè)非 devops的割據(jù)環(huán)境中,往往缺乏共同的理解,這可能表現(xiàn)為Zora打算開始編寫代碼,但未能確保Loco確實(shí)理解需求,也許最后可以實(shí)現(xiàn)這個(gè)新特性,但是由于對(duì)目標(biāo)沒有溝通,前景可能不容樂觀。
一個(gè)組織在發(fā)展過程中肯定會(huì)遇到意外的問題或阻礙,不過如果有共同的理解,認(rèn)識(shí)到每個(gè)人都是這個(gè)組合的一部分,就會(huì)采取行動(dòng)完成一系列的修正。對(duì)于誰完成某個(gè)特性或者什么時(shí)候完成我們可能有一些誤解,首先要修正這些誤解。另外對(duì)于軟件表現(xiàn)如何我們有自己的理解,可能存在一些bug會(huì)影響我們的理解,因此需要修正這些bug。如果生產(chǎn)環(huán)境中的實(shí)際工作與我們預(yù)期的不同,還要修正流程和相應(yīng)的文檔。
青藍(lán)咨詢將采用這種devops組合的觀念,介紹如何利用devops的技術(shù)和文化來發(fā)展和維護(hù)這種共同的相互理解。
青藍(lán)老師帶您理解devops運(yùn)動(dòng)的關(guān)鍵。這種觀點(diǎn)鼓勵(lì)我們分享故事,因?yàn)樗星闆r是學(xué)習(xí)機(jī)會(huì)。
分享故事可以:
> 增進(jìn)團(tuán)隊(duì)中的透明度和信任
> 指導(dǎo)同事避免成本很高的錯(cuò)誤,而不需要他們親身體驗(yàn)這個(gè)錯(cuò)誤
> 增加解決新問題的可用時(shí)間,從而可以有更多創(chuàng)新
通過在全行業(yè)中分享這些故事,我們會(huì)影響整個(gè)行業(yè),創(chuàng)造新的機(jī)會(huì),知識(shí)和共同理解。
DevOps更多資訊
深圳青藍(lán)咨詢服務(wù)有限公司
電 話:0755-86950769
官 網(wǎng):fcbcre.com
郵 箱:peixun@shzhchina. com
地 址: 深圳市南山區(qū)高新南一道06號(hào)TCL大廈B座3樓309室
深圳地鐵1號(hào)線高新園站C出口