如何實施成功的 DevOps 策略?
已發表: 2022-06-29介紹
DevOps 是一種開發策略,強調軟件開發人員和 IT 運營人員之間的協作。 但是,實施 DevOps 不僅僅是要求您的團隊一起工作。
DevOps 一詞由 Patrick Debois 在 2009 年創造,他也被普遍稱為“DevOps 之父”。 該過程包括以下主要階段:
- 計劃
- 創建/編碼
- 建造
- 測試
- 發布
- 部署
- 操作和
- 監視器
以下是成功實施 DevOps 所需的指南以及許多不同的策略。
不要試圖一次做所有事情
當您第一次開始使用 DevOps 時,很容易不知所措。 那裡有很多信息,很難知道從哪裡開始。 我建議從小處著手,逐步向上。
首先,選擇一個易於自動化、監控和與最終用戶交流的區域。 這將使您更容易在早期展示成功並為其他業務領域建立動力。 例如:如果您正在自動化部署或設置監控工具,那麼可以考慮從部署 Web 應用程序或容器化應用程序(如 Docker)之類的東西開始。 這些類型的服務通常比其他類型的系統(例如數據庫)具有更少的依賴關係,因此它們往往是更容易的測試用例,我們可以通過這些用例來衡量我們在整個組織中實施 DevOps 實踐的進度。
盡你所能,盡你所能
首先要做的是讓您的團隊使用他們需要的工具。 從可用的功能開始,隨著您的舒適度增加,添加更多功能。 不要試圖一次做所有事情; 找到一兩個對你有用的東西,然後繼續下一個。
使用自動化
DevOps 的目標是提高速度、降低成本和人為錯誤並提高質量。 這就是為什麼自動化被認為如此重要的原因。 自動化在不同的上下文中可能意味著不同的東西(自動化測試和持續集成是兩個常見的例子),但它通常是指使用軟件來執行特定的任務。 這意味著參與開發和生產過程的人員將減少,從而在提高質量的同時降低成本,同時提高速度。
從現有工具開始開發定制解決方案
從現有工具開始可能比開發定制解決方案更容易。 如果您剛剛開始,有許多開源項目和雲服務可以幫助您快速啟動和運行。 例如:
- DevOps 自動化框架 Jenkins Stack:一個管理整個軟件開發生命週期的開源項目。 它包括用於持續集成 (CI) 和持續交付 (CD) 的工具,以及用於測試、構建、打包和部署代碼等其他常見 DevOps 任務的工具。 它支持多種操作系統,包括 Linux 和 macOS。
- Elasticsearch:基於 Apache Lucene 的搜索引擎,為跨多台服務器的大量非結構化數據提供實時全文搜索功能。 Netflix 或 PayPal 等許多公司都在使用它,因此他們可以非常快速地索引他們在這些實體中發生的所有交易,因為它能夠水平擴展(即在需要時添加更多實例)。
從與您的文化完美融合的工具開始
當您開始您的 DevOps 之旅時,重要的是要了解您無法一次更改所有內容。 你不能強迫你的文化、流程、人員或技術改變; 如果它們不符合 DevOps 和敏捷開發的目標,那麼它們將阻礙其成功。
與其試圖將這些元素強加到一個不適合您當今業務運作方式的固定模式中,不如尋找專為採用敏捷方法的軟件團隊設計的工具,並隨著團隊的能力隨著時間的推移而增長,為他們提供增長空間.
盡可能專注於協作並獲得最佳大腦
但是找到和僱用這些資源並不容易。
幸運的是,有幾個很好的選擇來獲得幫助:
- 向其他已經實施 DevOps 的公司尋求幫助。 他們已經吸取了一些艱鉅的教訓,並且可以根據自己的經驗為您提供建議。
- 如果您沒有時間自己學習 DevOps 的來龍去脈,顧問也是一個不錯的選擇。 他們往往知道要問什麼問題以及在哪裡尋找答案; 他們也比其他公司的員工(他們可能專注於他們的日常工作)更有可能,因為他們受到金錢的激勵,而不僅僅是知識共享。* GitHub 等開源社區在之後提供了額外的資源了解他們如何通過協作來協同工作。*如果您希望獲得其他人的專業知識,或者不想聘請外部顧問,培訓課程可能是另一種選擇。 它們通常由參與實施它的個人編寫,而不僅僅是從遠處觀察。
自動監控和報告
自動化監控和報告是 DevOps 的一項關鍵實踐。 為了提高軟件的質量,您需要能夠衡量它在生產中的表現。 開發人員應該負責監控他們的代碼,以便他們能夠快速發現問題。 他們還需要製定策略來收集這些數據並實施分析工具,以使他們能夠了解其應用程序在生產中運行時發生的情況。

運營團隊應該監控其基礎設施,因為他們負責確保一切日常運行順利。 這意味著收集有關 CPU 使用率、磁盤空間使用率、網絡帶寬消耗等的指標,並記錄應用程序出現的任何問題,以便立即解決這些問題。
您的企業應通過衡量每個新功能相對於成本(例如開發時間和未來的維護成本(包括持續支持))帶來的收入來監控其底線。 準確測量這些類型的指標的能力允許組織內或跨多個組織在一個項目上合作的團隊(例如使用微服務的項目)在根據財務目標構建產品路線圖時更好地決定哪些功能應該優先考慮而不是只關注技術性債務減少而不考慮大局。”
讓您的客戶了解情況,他們可能不喜歡驚喜
假設您的組織正在為整個 Web 應用程序實施新的代碼庫。 您知道這會影響最終用戶,並且如果他們對更改感到驚訝,他們將不會喜歡它。
您可以警告他們並給他們時間為更改做準備,或者您可以等到它上線,然後解釋發生了什麼,為什麼會發生,以及他們如何幫助自己適應這些更改。
讓用戶了解情況的一種方法是通過電子郵件活動發送日曆邀請,其中包含有關人們應該如何使用他們的新工具的說明,以及一旦將這些功能發佈到生產環境中他們如何從使用這些功能中受益的提示(例如,將有一個新的搜索功能)。
從小處著手、自動化、監控進度和優化
實施 DevOps 的最佳策略是從小處著手、自動化並隨著時間的推移監控進度。
從小處著手:從可管理的範圍開始更容易建立動力。 如果你試圖一次解決你的整個部門或組織,這可能會讓人不知所措,感覺不可能。 與其嘗試一次在整個公司中實施 DevOps,不如一次專注於一個項目或團隊。
自動化:有許多工具可以幫助自動化您的部分開發過程(持續集成服務器,如 Jenkins 或 TeamCity),但可能有些事情還沒有任何現有工具可用 - 例如為生產設置備份AWS CloudFormation 模板中的服務器——因此在繼續進行其他任何事情之前,請確保將這些內容包含在您的自動化計劃中!
隨著時間的推移監控進度:制定指標將使所有相關人員(包括您自己)能夠評估事情的進展情況,以便我們可以在實現完全自動化的每一步中根據需要進行調整!
結論
我們希望您現在能夠更好地了解 DevOps 如何為您的組織工作。 正如我們所看到的,DevOps 團隊充滿了有用的資源和工具,可以幫助您開始並在您完成初始過渡後繼續前進。 成功實施的關鍵是從您已經知道的開始,然後對其進行迭代直到完善。 通過這樣做,您將能夠實施有效的 DevOps 策略,而不會超出預算或讓您的團隊承擔新的責任!
特色圖片: DevOps的工作流程:來源:Pease,2017。
作者簡介:
Priya 在市場研究方面擁有約 7 年的經驗。 目前,她在 Valasys Media 工作,擔任助理經理 - 內容策略師,該公司是全球頂級 B2B 媒體出版商之一。 她一直在為我們的客戶準備幾份個性化報告,並對市場細分、受眾群體分析和入站方法進行了大量研究。 她曾在多個項目中與政府機構和公司合作過。 她擁有各種興趣,並相信以數據驅動的方法來解決問題。 除了市場營銷、科學、數據科學和統計學,她擁有科學專業的研究生學位,還廣泛撰寫有關生活的所有內容。 她堅信更高的現實,生活總是比我們理解的要多。 她是一位心理治療師和塔羅牌練習者,她相信一種精神生活方式,並練習瑜伽和冥想。 不寫作時,您會發現她喜歡音樂或烹飪。