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