DevOps對(duì)你意味著什么?
6 位專家為你解析 DevOps 及其實(shí)現(xiàn)、實(shí)踐和哲學(xué)的關(guān)鍵。
如果你問(wèn) 10 個(gè)人關(guān)于 DevOps 的問(wèn)題,你會(huì)得到 12 個(gè)答案。這是對(duì)于 DevOps 的意見和期望的多樣性的結(jié)果,更不用說(shuō)它在實(shí)踐中的差異。
為了解讀 DevOps 的悖論,我們找到了最了解它的人 —— 這個(gè)行業(yè)的***從業(yè)者。這些人熟悉 DevOps,了解技術(shù)的來(lái)龍去脈,并且已經(jīng)有了多年 DevOps 實(shí)踐。他們的觀點(diǎn)應(yīng)該能鼓勵(lì)、刺激和激發(fā)你對(duì) DevOps 的想法。
DevOps 對(duì)你意味著什么?
讓我們從基本原理開始。我們不能只在教科書上尋找答案,而應(yīng)該需要知道專家們?cè)趺凑f(shuō)。
簡(jiǎn)而言之,專家們說(shuō)的是關(guān)于 DevOps 的原則、實(shí)踐和工具。
IBM 數(shù)字企業(yè)集團(tuán) DevOps 商業(yè)平臺(tái)*** Ann Marie Fred,說(shuō),“對(duì)于我來(lái)說(shuō),DevOps 是一套實(shí)踐和原則,旨在使團(tuán)隊(duì)在設(shè)計(jì)、開發(fā)、交付和操作軟件方面有更好的效率。”
據(jù)紅帽資深 DevOps 布道者 Daniel Oh,“通常來(lái)說(shuō),DevOps 促使企業(yè)基于當(dāng)前的 IT 發(fā)展與應(yīng)用開發(fā)、IT 運(yùn)維和安全協(xié)議的流程和工具。”
Tactec 戰(zhàn)略解決方案的創(chuàng)始人 Brent Reed,談及了利益相關(guān)者的持續(xù)改進(jìn),“DevOps 對(duì)我來(lái)說(shuō)意味著包括了一種思維方式的工作方式,它允許持續(xù)改進(jìn)運(yùn)維績(jī)效,進(jìn)而提升組織績(jī)效,從而讓利益相關(guān)者受益。”
許多專家也強(qiáng)調(diào) DevOps 文化。Ann Marie 說(shuō),“這也是持續(xù)改進(jìn)和學(xué)習(xí)的問(wèn)題。它涉及的是人和文化,以及工具和技術(shù)。”
美國(guó)保監(jiān)會(huì) (NAIC) ***架構(gòu)師兼 DevOps *** Dan Barker,“DevOps 主要是關(guān)于文化…它將幾個(gè)獨(dú)立的領(lǐng)域聚集在一起,如精益生產(chǎn)、公正文化 和持續(xù)的學(xué)習(xí)。我認(rèn)為文化是最關(guān)鍵和最難執(zhí)行的。”
Atos 的 DevOps 負(fù)責(zé)人 Chris Baynham-Hughes,說(shuō),“[DevOps] 實(shí)踐是通過(guò)組織內(nèi)的文化、流程和工具的發(fā)展而被采用的。重點(diǎn)是文化變革,DevOps 文化借鑒的關(guān)鍵是協(xié)作、試驗(yàn)、快速反饋和持續(xù)改進(jìn)。”
云架構(gòu)師 Geoff Purdy,談及敏捷和反饋,“縮短和放大反饋回路。我們希望團(tuán)隊(duì)在幾分鐘內(nèi)而不是幾周內(nèi)獲得反饋。”
但在***,Daniel 通過(guò)解釋開源和開源文化是如何讓他以簡(jiǎn)單快捷的方式實(shí)現(xiàn)目標(biāo)來(lái)強(qiáng)調(diào)這點(diǎn),“在推動(dòng) DevOps 中,最重要的事情應(yīng)該是開源文化而不是具體的工具或復(fù)雜的解決方案。”
你認(rèn)為哪些 DevOps 實(shí)踐有效?
專家列舉的那些***實(shí)踐是普遍存在的,但又各不相同。
Ann Marie 表示:“一些十分強(qiáng)大靈活的項(xiàng)目管理[實(shí)踐],能在職能、獨(dú)立的小組之間打破壁壘;全自動(dòng)化持續(xù)部署,藍(lán)/綠部署實(shí)現(xiàn)零時(shí)間停機(jī)狀態(tài);開發(fā)人員設(shè)置自己的監(jiān)控和警告,無(wú)縫自我修復(fù),自動(dòng)化的安全性與合規(guī)性。”
Chris 說(shuō),“特別的突破是傾情合作、持續(xù)改進(jìn)、開放領(lǐng)導(dǎo)、縮短業(yè)務(wù)距離、從垂直孤島轉(zhuǎn)向橫向/跨功能的產(chǎn)品團(tuán)隊(duì)、工作透明化、相互影響、Mobius 循環(huán)、縮短反饋回路、自動(dòng)化(從環(huán)境到 CI/CD)。”
Brent 支持“發(fā)展學(xué)習(xí)文化,包括 TTD [測(cè)試驅(qū)動(dòng)開發(fā)] 和 BDD [行為驅(qū)動(dòng)開發(fā)]捕獲事件,并通過(guò)持續(xù)集成和持續(xù)交付從設(shè)計(jì)、構(gòu)建和測(cè)試到實(shí)施在生產(chǎn)環(huán)境上一系列事件的自動(dòng)化。測(cè)試采用故障優(yōu)先的方法,能夠自動(dòng)化集成和交付流程,并在整個(gè)生命周期中包含快速反饋。”
Geoff 強(qiáng)調(diào)自動(dòng)化配置。“選擇一個(gè)自動(dòng)化配置,對(duì)我的團(tuán)隊(duì)來(lái)說(shuō)非常有效。更具體地說(shuō)從版本控制代碼庫(kù)中自動(dòng)配置。”
Dan 則玩的開心,“ 我們做了很多不同的事情來(lái)建立 DevOps 文化。我們舉辦 ‘午餐 & 學(xué)習(xí)’ 活動(dòng),提供免費(fèi)的食物來(lái)鼓勵(lì)大家一起學(xué)習(xí)。我們買書,分組學(xué)習(xí)。”
你如何激勵(lì)你的團(tuán)隊(duì)實(shí)現(xiàn) DevOps 這個(gè)目標(biāo)?
Daniel 強(qiáng)調(diào)“自動(dòng)化的問(wèn)題就是為了減少 DevOps 計(jì)劃中來(lái)自多個(gè)團(tuán)隊(duì)的異議,你應(yīng)該鼓勵(lì)你的團(tuán)隊(duì)提高開發(fā)、測(cè)試與 IT 運(yùn)營(yíng)的自動(dòng)化能力,以及新的流程和程序。例如,Linux 容器是實(shí)現(xiàn) DevOps 自動(dòng)化功能的關(guān)鍵工具。”
Geoff 很是贊同,“機(jī)械化的勞作,你有討厭現(xiàn)在做的任務(wù)嗎?很棒。如果可能的話,讓它們消失。不行,那就讓它們自動(dòng)化。它能使工作不會(huì)變得太枯燥,因?yàn)楣ぷ骺偸窃谧兓?rdquo;
Dan、Ann Marie 和 Brent 強(qiáng)調(diào)團(tuán)隊(duì)的執(zhí)行力。
Dan 說(shuō),“在 NAIC,我們有個(gè)很好的獎(jiǎng)勵(lì)系統(tǒng)來(lái)鼓勵(lì)特定的行為。我們有多個(gè)級(jí)別的獎(jiǎng)項(xiàng),其中兩個(gè)獎(jiǎng)項(xiàng)可以由任何人頒布給某人。我們也會(huì)頒獎(jiǎng)給完成重要任務(wù)的團(tuán)隊(duì),但我們通常只獎(jiǎng)勵(lì)給個(gè)人貢獻(xiàn)者。”
Ann Marie 表示,“我所在地區(qū)的團(tuán)隊(duì)***的動(dòng)力是看見其他人成功。我們每周都會(huì)彼此回放一次,其中一部分是分享我們從嘗試新工具或?qū)嵺`中學(xué)到的東西。團(tuán)隊(duì)熱衷于他們現(xiàn)在做的事情,并愿意幫助其他人開始,相信更多的團(tuán)隊(duì)很快也會(huì)加入進(jìn)來(lái)。”
Brent 表示贊同。“讓每個(gè)人學(xué)習(xí),并掌握同樣的基礎(chǔ)知識(shí)至關(guān)重要……我喜歡從評(píng)估什么能幫助團(tuán)隊(duì)實(shí)現(xiàn)目標(biāo)[以及]產(chǎn)品負(fù)責(zé)人和用戶需要提供的內(nèi)容入手。”
Chris 推薦采用雙管齊下的方法。“運(yùn)行可以每周可以實(shí)現(xiàn)的小目標(biāo),并且[在這]可以看到他們正在運(yùn)做的功能工作之外的進(jìn)展,慶祝你所取得的進(jìn)步。”
DevOps 和敏捷開發(fā)如何協(xié)同工作?
這是一個(gè)重要的問(wèn)題,因?yàn)?DevOps 和敏捷開發(fā)都是現(xiàn)代軟件開發(fā)的基石。
DevOps 是一個(gè)軟件開發(fā)的過(guò)程,專注與溝通與協(xié)作,以促進(jìn)快速部署應(yīng)用程序和產(chǎn)品。而敏捷開發(fā)是一種開發(fā)方法,涉及持續(xù)開發(fā)、連續(xù)迭代和連續(xù)測(cè)試,以實(shí)現(xiàn)可預(yù)測(cè)和可交付的成果質(zhì)量。
那么,它們又有怎樣的聯(lián)系?讓我們?nèi)?wèn)問(wèn)專家吧。
在 Brent 來(lái)看,“DevOps != 敏捷。其次 敏捷 != Scrum 流程……敏捷工具和工作方式支撐著 DevOps 策略和目標(biāo),它們是如此融合在一起的。”
Chris 說(shuō),“對(duì)我而言敏捷是 DevOps 的一個(gè)基本組件。當(dāng)然,我們可以討論如何在非敏捷開發(fā)環(huán)境中采用 DevOps 文化,但最終表明,提高軟件設(shè)計(jì)方式的靈活性是采用 DevOps 成熟讀的一個(gè)關(guān)鍵指標(biāo)。”
Dan 將 DevOps 與更偉大的 敏捷宣言 聯(lián)系起來(lái)。“我在談到敏捷時(shí)總會(huì)引用敏捷宣言來(lái)設(shè)置基準(zhǔn),而有許多實(shí)現(xiàn)中并不關(guān)注該宣言。當(dāng)你閱讀這份宣言時(shí),你會(huì)發(fā)現(xiàn)它確實(shí)從開發(fā)的角度描述了 DevOps。因此,將敏捷融入 DevOps 文化非常容易,因?yàn)槊艚蓐P(guān)注于溝通、協(xié)作、變化的靈活性以及快速地投入生產(chǎn)。”
Geoff 認(rèn)為 “DevOps 是敏捷實(shí)施的眾多實(shí)現(xiàn)之一。敏捷本質(zhì)上是一套原則,而 DevOps 則是體現(xiàn)這些原則的文化、流程和工具鏈。”
Ann Marie 簡(jiǎn)潔說(shuō)明,“敏捷是 DevOps 的先決條件。DevOps 使敏捷變得更加有效。”
DevOps 是否受益于開源?
這個(gè)問(wèn)題得到了所有參與者的熱烈肯定,然后解釋了他們看到的好處。
Ann Marie 說(shuō),“我們站在巨人的肩膀上,在已有的基礎(chǔ)之上發(fā)展。拉取請(qǐng)求和代碼評(píng)審的開源模式,對(duì) DevOps 團(tuán)隊(duì)維護(hù)軟件很有效果。”
Chris 贊同 DevOps “毫無(wú)疑問(wèn)”受益于開源。“從設(shè)計(jì)和工具方面(例如,Ansible),到流程和人員方面,通分享行業(yè)內(nèi)的故事和開源社區(qū)的領(lǐng)導(dǎo)。”
Geoff 提到一個(gè)好處是“基層的采納”。免費(fèi)的軟件不需要簽署購(gòu)買申請(qǐng)。團(tuán)隊(duì)發(fā)現(xiàn)了滿足他們需求的工具,可以自行進(jìn)行修改。[然后]在它之上構(gòu)建,并為更大的社區(qū)提供更好的功能。如此往復(fù)。
開源已經(jīng)向 DevOps 展示著“就像開源軟件開發(fā)者正在做的那樣,采用更好的方式來(lái)克服新的變化”,Daniel 說(shuō)。
Brent 同意道 “DevOps 從開源中獲益良多。一種方法是使用這些工具來(lái)理解它們是如何加速 DevOps 的目標(biāo)和策略;在自動(dòng)化、自動(dòng)伸縮、虛擬化和容器化等關(guān)鍵方面對(duì)開發(fā)人員和操作人員進(jìn)行培訓(xùn),如果不引入使 DevOps 更加容易的技術(shù)支持,就很難實(shí)現(xiàn)這些特性。”
Dan 指出了 DevOps 和開源之間的雙向共生關(guān)系,“做好開源需要 DevOps 文化。大多數(shù)開源項(xiàng)目都具有非常開放的溝通結(jié)構(gòu),很少有不透明的地方。對(duì)于 Devops 實(shí)踐者來(lái)說(shuō),這實(shí)際上是一個(gè)很好的學(xué)習(xí)機(jī)會(huì),可以讓他們了解到可能需要將什么引入自己的組織中。此外能夠使用來(lái)自社區(qū)與組織類似的工具來(lái)鼓勵(lì)自己的文化成長(zhǎng)。我喜歡用 GitLab 作為這種共生關(guān)系的一個(gè)例子。當(dāng)我把 GitLab 帶入一家公司時(shí),我們得到了一個(gè)很棒的工具,但我們真正購(gòu)買的是他們獨(dú)特的文化,通過(guò)我們與他們的互動(dòng)以及我們的貢獻(xiàn)帶來(lái)了巨大價(jià)值。他們的工具也可以為 DevOps 組織提供更多東西,而他們的文化已經(jīng)在我引入它的公司中引起了他們的敬畏。”
現(xiàn)在我們的 DevOps 專家已經(jīng)參與進(jìn)來(lái)了,請(qǐng)?jiān)谠u(píng)論中分享你對(duì) DevOps 的理解,以及向我們提出其他問(wèn)題。

























