DevOps:它是什麼以及它為什麼重要
已發表: 2022-03-11儘管沒有萬無一失的“靈丹妙藥”方法來提高 IT 效率,但 DevOps 已經產生了難以忽視的結果。 顧名思義,DevOps 將軟件開發和軟件運營原則相結合,旨在幫助組織以更快的速度和效率開發產品。 例如,TIAA-CREF 已經看到其 400 億美元的業務通過使用 DevOps 原則取得了重大進展。 TechBeacon 對 TIAA 首席數字官 Scott Blandford 的採訪解釋了 TIAA 如何從笨重的遺留軟件和系統轉變為“基於敏捷的 DevOps 方法”,從而將開發效率提高了四倍。 更新發布的速度要快得多,並且“隨著它開始滿足用戶的期望,IT 已經重新獲得了多年來受到侵蝕的信任。”
2017 年 DevOps 狀況報告的結果表明,採用 DevOps 原則的高性能組織與不採用 DevOps 原則的組織之間存在顯著差異。 根據該報告,與績效較低的組織相比,高績效組織的軟件部署頻率要高得多(頻率高 46 倍)、變更提前期要快得多(快 440 倍)、軟件變更失敗率要低得多(低 5 倍)同行。
儘管有這些顯著的好處,DevOps 仍然是一個重要的、相對較新的技術概念的典型例子,它經常被濫用或誤解。 對於許多人來說,這個想法仍然很模糊,甚至 DevOps 的基本定義也難以捉摸。
這種缺乏明確性可能會對試圖實施 DevOps 原則的組織和團隊產生負面影響,導致戰略混亂並阻礙 DevOps 應該促進的速度和效率。 正如 IBM 的 DevOps 工程師在 InfoWorld 發表的一篇文章中所說,“我們需要回答一些基本問題並確定我們試圖解決的問題……如果你不知道工作實際上是如何完成的,那麼你就不知道哪些問題值得解決。”
隨著軟件開發和運營變得更加緊密地交織在一起,並且隨著公司越來越依賴雲基礎設施,高管和項目經理必須提高 DevOps 的流暢度,以保持競爭力並確保他們的團隊充分發揮潛力。
DevOps 不應被視為另一個模糊的流行語,而應被視為具有顯著改善產品和業務潛力的重要概念。 這篇文章針對的是相對非技術的讀者,首先是要明確什麼是 DevOps。 然後,本文將使用具體示例探討 DevOps 原則在做得好時會是什麼樣子,以及為什麼 DevOps 對您和您的組織很重要。
DevOps 作為一種工程師、文化和實踐
什麼是 DevOps? 在 Toptal 之前發表的一篇文章中,Demir Semanovic 寫道:“DevOps 是一種文化和思維方式,它是整個 IT 的一部分。” 他進一步寫道,DevOps 是一種使組織能夠跨 IT 職能優化速度和效率的實踐。
Amazon Web Services 是雲基礎設施領域的最大參與者,因此開發了重要的 DevOps 專業知識,它使用類似的定義,稱“DevOps 是文化理念、實踐和工具的結合,可提高組織交付應用程序和服務的能力高速:以比使用傳統軟件開發和基礎設施管理流程的組織更快的速度發展和改進產品。”
“DevOps 人員基本上是那些對系統管理和軟件開發都感興趣並決定結合他們的技能為兩者創建統一、更好的方法的人。”
對於已經精通相關領域的受眾來說,這些都是有用的定義,但對於技術背景不太廣泛的高管來說,它們可能過於抽象。 事實上,圍繞 DevOps 定義的一些混淆可能源於這樣一個事實,即它經常被同時稱為一種工程師、一組實踐和文化。 雖然 DevOps 確實包含了這些元素中的每一個,但從單獨考慮它們開始是有用的。
首先介紹 DevOps 工程師的樣子,Martin Chikilian 曾是 IBM 和 Hewlett Packard 的一名軟件開發人員,在使用 DevOps 原則方面擁有十多年的經驗,他用簡單而具體的術語說:“DevOps 人基本上是那些發現興趣的人在系統管理和軟件開發方面,並決定將他們的技能結合起來,為兩者創建一個統一的、更好的方法。”
他們能夠維護公司擁有的服務器、網絡和其他類型的基礎設施系統,並通過軟件開發積極地迭代和改進這些系統。 正如 Chikilian 所說的那樣,“DevOps 人可以利用軟件開發的基礎來幫助自己和公司構建更好的工具來處理基礎設施。”
正如亞馬遜所說,“文化哲學的結合”是指軟件開發人員使用的方法與具有基礎設施或軟件運營、專業知識的人使用的方法的結合。 在打破這些實踐之間的傳統障礙時,DevOps 文化旨在使組織能夠從開發人員和基礎設施專家帶來的獨特優勢中受益。 對於孤立這些不同類型工程師的公司來說,成功實施 DevOps 原則“需要改變文化和思維方式”。 正如 Emily Dowdle 在 2016 年北歐 API 平台峰會上所描述的那樣,消除障礙還有助於緩解開發人員和基礎設施專家之間有時可能存在的自然摩擦,並營造一個更加友好、合作的工作環境。
簡單地說,DevOps 就是將涉及容易出錯的人機交互的複雜手動流程轉化為可以測試、測量和輕鬆擴展的儀器化方法。
有了對 DevOps 實踐者和文化的理解,DevOps 作為一種實踐的意義就變得更加明顯。 簡單地說,DevOps 就是將涉及容易出錯的人機交互的複雜手動流程轉化為可以測試、測量和輕鬆擴展的儀器化方法。 例如,如果開發人員想要創建一個允許業務用戶提供反饋的環境,他或她可以啟動一個自動化流程,在該流程中,開發人員可以發出 DevOps 團隊創建的命令(而不是交出一段代碼)到基礎架構團隊),它以一致且經過測試的方式執行相關任務,快速獲得預期結果並實現協作。
DevOps 的全面定義需要了解它作為一種工程師、文化和實踐的含義。 從這些角度探討了 DevOps 的含義之後,現在深入研究成功實施後 DevOps 的樣子很重要。
您的 DevOps 工具包
除了前面提到的文化轉變——從一家孤立軟件開發人員和基礎設施專家的公司到一家接受他們協作的公司——公司還需要了解一些對 DevOps 至關重要的具體實踐和工具。 以下是此類實踐中最關鍵的三個(儘管肯定不是唯一的):
自動化:提高效率是 DevOps 的核心,這可以通過自動化軟件開發和基礎設施維護中一系列相對緩慢、繁重的流程來顯著實現。 亞馬遜引用的一個具體例子是自動發送相對較小但頻繁的軟件更新的做法。 這種做法減輕了系統管理員的責任,否則他們可能不得不手動執行這些更新。 正如亞馬遜指出的那樣,這種做法還具有降低軟件部署風險的好處,因為它使管理員能夠更輕鬆地捕獲和修復可能出現的錯誤。 自動化是 DevOps 的基石,對下面討論的其他 DevOps 實踐至關重要。

持續集成:從根本上講,DevOps 是關於工程師之間以及整個團隊之間的密切協作。 持續集成是指工程師在一個中心位置共享和合併代碼的實踐。 正如亞馬遜解釋的那樣,“過去,團隊中的開發人員可能會長時間孤立地工作,並且只會在他們的工作完成後才嘗試合併他們的更改。” 通過持續集成,工程師可以更有效地協作並避免與以更零碎的方式開發和集成代碼相關的瓶頸。
持續交付:持續交付是指自動交付和實施軟件產品更改的實踐。 換句話說,持續交付是由持續集成實現的,因為只有在代碼已經存放在中心位置的情況下,對代碼的更改才能有效地推送到整個系統。 自動化對於持續交付也至關重要。 事實上,前面提到的發送小而頻繁的系統更新的例子也可以被認為是持續交付的例子。 持續交付使組織能夠快速實施變更和改進,它使工程師能夠更有效地將時間集中在其他復雜的問題上。
僱用合適的人
當然,公司需要聘請合適的工程師才能成功實施上述做法。 DevOps 工程師必須具備結合軟件開發和系統基礎設施專業知識的技能,而這種組合可能很難找到。
“重要的是,他們能夠彌合原始代碼與企業每天必鬚麵對的挑戰之間的差距——例如減少創意、交付和消費者之間的摩擦。”
Andrea Villa 是 Atlassian 的前 DevOps 工程師和 CloudReach 的系統架構師,在系統管理、信息安全和網絡方面擁有 15 年的經驗,他認為 DevOps 工程師需要廣泛的經驗和知識才能取得成功。
“為了有效,今天的 DevOps 工程師需要具有開發人員背景,並擁有廣泛的系統管理知識和網絡知識,”Villa 說。 “重要的是,他們能夠彌合原始代碼與企業每天必鬚麵對的挑戰之間的差距——例如減少創意、交付和消費者之間的摩擦。”
成為一名優秀的 DevOps 工程師顯然說起來容易做起來難,找到這樣的工程師也同樣困難。 儘管如此,了解 DevOps 實踐背後的工具可以使您的組織能夠更準確地圍繞尋找合適的人才並成功實施這些實踐來定制招聘實踐。
為什麼 DevOps 真的很重要
使用 DevOps 實踐會帶來一系列好處,其中一些好處——包括更高的效率、安全性和組織協作——已經被闡明。 2017 年 DevOps 狀況報告量化了這種效率提升,報告稱採用 DevOps 實踐的高績效組織在計劃外工作和返工上花費的時間減少了 21%,在新工作上花費的時間增加了 44%。
然而,更一般地說,成功實施 DevOps 實踐可以通過提高關鍵領域的效率和執行力,從而對您的公司產生深遠的影響。
Fredrik Haard 是一位擁有超過 12 年 DevOps 經驗的工程師,曾在麥肯錫和 Wondersign 擔任高級雲架構師,他更充分地闡述了這一點。
“優秀的 DevOps 工程師必須是組織的擁護者並承擔責任——所有可能沒有被組織優先考慮的領域,例如數據安全、災難恢復、緩解和審計,”哈德說。 “你在 DevOps 中做出的選擇會對公司產生持久的影響。”
Microsoft 通過在其 Cloud + Enterprise 工程組中實施 DevOps 實踐也看到了這些積極影響。 微軟解釋說,為了提供最佳結果,“我們需要工程和運營部門在從設計到生產部署的整個開發生命週期中緊密合作。” 通過轉變為 DevOps 文化並使用 DevOps 實踐,Microsoft 能夠比以前更快地擴展並向客戶提供高質量的服務。
解決這些問題並提高效率本身就很好,但它們最終是實現更根本目標的一種手段:生產令人驚嘆的產品並產生更大的利潤和客戶滿意度。
DevOps 工程師可以有效地充當公司的內部突擊隊,幫助解決各種各樣的問題,儘管這些問題可能平淡無奇或不為人知,但對於公司的正常運作絕對至關重要。
解決這些問題並提高效率本身就很好,但它們最終是實現更根本目標的一種手段:生產令人驚嘆的產品並產生更大的利潤和客戶滿意度。 DevOps 之所以真正重要的最重要原因可能是它可以使組織最大化這些指標中的每一個。
用 DevOps 面對未來
2015 年,Andreessen Horowitz 的合夥人 Scott Weiss 表示,DevOps “不僅僅是一種方法論。 它是現代程序員必備的技能——並且越來越多地成為它自己的部門。”
這已被證明是正確的,因為包括亞馬遜、微軟和谷歌在內的一系列科技公司已經建立了 DevOps 團隊,並投入了大量資源來建立該領域的專業知識。 Weiss 和其他主要科技公司認為 DevOps 不僅僅是一種曇花一現的時尚,而是未來軟件的關鍵組成部分。
隨著行業越來越依賴雲基礎設施,DevOps 將繼續變得尤為重要。 Gartner Research 在 2017 年的一份報告中預測,到 2020 年,雲服務市場將以每年 15% 以上的速度增長。用美元來衡量這一增長,福布斯最近發表的一篇文章指出,雲計算市場將從大約 2600 億美元增長從 2017 年到 2020 年大約 4110 億美元。DevOps 可以對貴公司成功將系統遷移到雲的速度產生巨大影響。 在 Toptal,我們從一開始就使用 DevOps——它是我們作為一家高速增長的雲公司成功不可或缺的一部分。
正如雲服務市場正在快速增長一樣,DevOps 的重要性也是如此。 無論是在能源、醫療保健還是高等教育領域,您的公司都需要發展 DevOps 專業知識。 了解 DevOps 是什麼、它是如何實現的以及它為什麼如此重要,是您考慮使用這一關鍵實踐向前邁出的重要的第一步。