一、前言
當前,我國處于以信息化、數字化、網絡化、智能化為特征的科技變革浪潮中,企業數字化轉型大勢所趨,那么作為支撐企業 IT 運轉的運營體系也在向多元方向發展,比如 DevOps(研發運營一體化)、AIOps (智能運維)、DataOps (數據研發運營一體化)、MLOps (機器學習研發運營一體化)、BizDevOps (業務研發運營一體化)、FinOps (云財務運營) 等內容,逐步形成圍繞研運一體化、研運效能度量、安全體系建設、智能化、IT 資源財務運營等多個方面的 XOps 體系。本文重點側重 DevOps 的知識內容闡述。
二、背景
隨著大數據、人工智能、云計算、數字孿生、5G、物聯網和區塊鏈等新一代數字技術應用的發展,企業業務試圖構建持續化、端到端的運營體系,從而推動新技術、新業務、新業態的發展。然而,企業 IT 管理卻面臨三個難點現狀:
- 業務需求變化快
- 技術迭代更新快
- IT 價值難體現
因此,當前企業 IT 管理旨在希望探索出新技術、新方法、新模式,從而提升需求響應速度以及技術深入應用與迭代能力,最終推動業務價值的實現。
三、發展歷程(DevOps->XOps)
整體而言,對于企業 IT 運營管理對象中可以劃分 7 層:戰略與規劃、業務管理、財務與成本、數據生命周期、機器學習工程、軟件生命周期和基礎設施運行。在戰略與規劃中,自 2009 年 DevOps 被首次提出,逐步在不同領域的面向對象中誕生出不同的創新應用體系。從筆者繪制的圖表中我們可以看出 DevOps 在企業應用成熟度最高、其次分別是 AIOps 和 MLOps、DataOps, 而在近幾年企業更多關注成本、業務創新,BizDevOps 和 FinOps 也進入企業重點關注和落地范圍內。
雖然 XOps 各領域面向的對象不同,但都是以文化、組織、流程三個維度串聯多個流程領域,在提升效率的同時提高質量,并強調持續的優化改進,對于人員意識的文化培養、組織的協同能力和流程閉環的管理與持續反饋。
四、什么是 DevOps
維基百科:對其定義為 “DevOps (Development 和 Operations 的組合詞) 是一組結合了軟件開發 (Dev) 和 IT 運營 (Ops)的實踐,其目的在于縮短軟件開發生命周期并持續交付高質量的軟件。
谷歌云:” 谷歌云認為 “DevOps 旨在提高軟件交付速度,提升服務可靠性,并在軟件利益相關者之間構建共享所有權的一種組織和文化運動。
AWS:”AWS 將 DevOps 定義為 “集文化理念、實踐和工具于一身,可以提高組織高速交付應用程序和服務的能力,與使用傳統軟件開發和基礎設施管理流程相比,能夠幫助組織更快地發展和改進產品。
Gartner: Gartner 認為其 “是一種使用敏捷方法、協作和自動化交付解決方案的業務驅動方法。”
從業界多方對 DevOps 的定義來看,DevOps 不只是一門技術或套工具平臺體系。DevOps 是 Development 和 Operations 的組合詞,是組過程、方法與系統的統稱,通過研發、測試、運維之間的協作打破各部門之間的信息壁壘,改善團隊之間的合作關系,通過自動化。敏捷化和一體化的軟件交付和架構變更流程,實現更加便捷、頻繁和可靠的發布軟件。
在筆者觀點理解而言,DevOps 是一種交付方式,其中涉及技術、工具、文化、組織多個環節的實踐方法。(如下圖是筆者簡單的理解)
五、DevOps 的價值和發展趨勢
隨著近年來 DevOps 在企業應用成熟度趨于成熟,不乏出現一些文章中提到 DevOps 已死的標題來吸引讀者的注意。正如為了推廣微服務而出現鋪天蓋地的單體架構的貶低言論,推廣敏捷而踩低瀑布開發,筆者認為在不同業務領域、業務復雜度情況、公司組織結構、企業 IT 基礎設施等多方面維度都會作為判斷決策依據,上面我們提到在戰略與規劃中,DevOps 是一種交付方式,只有交付方式適合不合適,沒有直接死掉這么一說。現在我們鋪墊了那么多,接下來看下 DevOps 的價值和發展趨勢。
根據 IDC 報告顯示,2021 年全球 DevOps 軟件工具市場總額為 159 億美元,據預測,2023 年全球 DevOps 軟件工具市場規模將超過 200 億美元,如下圖:
企業數字化轉型中,筆者曾經提到全新的業務模式、高效的業務流程、前沿的技術設施、精準的數據預測、健康的組織文化等 5 個內容方向,如果數字化轉型基于業務模式的是否改變,可以將其過程劃分為兩個類型,一種是自身數字化重構,另外一種是創新數字化業務。
對于自身數字化重構來說:我們旨在提升企業效率,DevOps 能力體系強調協作、自動化、和持續優化。
(1)其中協作來說,包含信息共享(業務類、執行類、反饋類等)和協作調度(全自動、簡化和基于事件);
(2)自動化包括軟件過程(開發、測試、部署等過程)和過程支撐能力(編譯構建、測試環境、部署環境等)。
(3)持續優化包括數據獲取、數據分析、數據呈現等。
對于創新數字化業務來說:我們旨在提升用戶體驗、業務創新,DevOps 能力體系強調更好的價值交付,建設工具賦能業務創新和敏捷。
(1)價值交付:更深入的業務認知和需求痛點挖掘,以及基于用戶進行量化體驗。
(2)工具賦能:圍繞工具平臺、配置、基礎設施等內容,由組織級統一團隊以服務化方式賦能項目團隊,為業務敏捷性和創新奠定基礎。
5.1、DevOps 的價值交付、協作與敏捷管理
在 DevOps 中,我們提倡價值交付,更深入的業務認知和需求痛點挖掘,完成用戶體驗提升和業務交付。而在敏捷開發中,我們知道敏捷開發管理是一種為應對快速變化的時長和技術環境的新型軟件開發方法,它更強調價值交付過程中所涉及的各類角色 (如業務產品、開發和測試等) 之間的緊密協作、能夠很好地適應變化的團隊組織、協作和工作方式,主張演進式的規劃和開發方式,以及持續和盡早的交付,并不斷反饋調整與持續改進,并且鼓勵快速與靈活的面對變更,更注重軟件開發過程中人的作用。而加快軟件交付速度是企業應用敏捷開發最主要的原因。企業的本質是利用組織和技術追求效率與成本控制從而產生商業利潤。敏捷開發管理實踐方法眾多,企業需根據自身特點選擇適合的敏捷實踐。
5.2、DevOps 的自動化與工具化賦能
首先,持續交付是指持續的將各類變更 (包括新功能、缺陷修復、配置變化、實驗等) 安全、快速、高質量地落實到生產環境或用戶手中的能力,是一組能夠幫助軟件開發團隊極大提高其軟件交付速度和質量的模式和最佳實踐的組成。
那么,持續交付與部署流水線為軟件的發布提供一個可重復且可靠的自動化過程,能夠實現價值的持續穩定傳遞。流水線打通軟件交付過程的各個環節,建立全流程、端到端、可視化的自動化部署流水線,每次變更都會觸發完整的自動化部署流水線,為團隊提供狀態可視化和及時反饋。
所以我們可以簡單定義,自動化部署流水線是實現持續交付的核心。
5.3、DevOps 的技術運營能力場景?
技術運營包含監控管理、配置管理、容量與成本管理、高可用管理、事件與變更管理、業務連續性管理和用戶體驗管理七個能力場景。
- 一是監控管理,多數企業監控采集的平臺化能力建設較為成熟,具有較強的靈活性和可擴展性,支持自定義數據采集、處理服務。
- 二是配置管理關注與技術運營相關的面向應用場景的配置對象及數據,配置對象可以實現誤告警的自動屏蔽,根據配置對象的狀態來設置規則,配置數據有多套配置系統管理方案,從線下轉為線上方式,支持對配置進行統一納管。
- 三是容量與成本管理,通過量化、精細化的方式對容量成本預算、成本核算等進行管理實施。
- 四是事件與變更管理,事件管理是對影響生產的事故和問題建立預防、高效處理及度量改進的制度和手段,變更管理是對 IT 基礎設施、系統應用、業務產品配置等場景實施變更所進行的審批和控制流程。
- 五是高可用管理,包含應用高可用管理和數據高可用管理,采用軟硬件結合的方式,以及多機房集群部署,最大限度保障系統的可用性。
- 六是業務連續性管理,通過風險管理、危機管理、應急管理等內容保障業務連續性要求。
- 七是用戶體驗管理,通過技術運營的方式關注用戶體驗,提升用戶滿意度,通常會通過埋點技術收集用戶體驗指標,并進行分析優化
5.4、DevOps 的應用設計與 DevSecOps
DevOps 的應用設計主要關注應用架構的可擴展性、可伸縮性、可觀測性、安全性和可用性。在應用設計中,隨著技術發展與業務變化,IT 架構已經經歷了單體架構、垂直架構、SOA 架構和微服務框架幾大階段,而當前微服務與云原生架構正在企業中廣泛試點。
在這里筆者想強調的是,應用設計中,往往安全是整個 IT 團隊所有成員的責任,需要貫穿整個業務生命周期的每個環節。
DevSecOps 通過建立完善的軟件安全開發生命周期管理體系,將安全內建到項目的生命周期每個階段,并流程化跟蹤項目安全建設中的各項安全活動。同時,在研發過程中融入安全基礎能力,要求和檢出一一對應,平臺可集成安全工具,提升自動化能力.
六、DevOps 的生命周期與工具全景圖
DevOps 通過其規劃、部署、交付和運營階段來影響應用程序生命周期。每個階段都依賴其他階段,且各階段并非特定于角色。DevOps 文化在某種程度上涉及每個階段中的所有角色。?
??圖片來自 https://learn.microsoft.com/zh-cn/devops/what-is-devops
貫穿云原生 DevOps 整個生命周期的工具鏈全景圖如下:
??圖片來自:https://mp.weixin.qq.com/s/yPeRriDT-miiLoJdY-aY8Q
七、DevOps 的成熟度評估體系
DevOps 成熟度是評估效維工具選擇的首要參考維度。不同企業可以基于自身實際情況可以從多維度進行評估:?
八、感悟
筆者認為越是成熟度高的東西,體系知識越是龐大,本文限于篇幅的原因對于部分內容細節并未全部展開描述,更多的是從定義、描述、價值、趨勢、知識體系和工具體系大的方向介紹,對于如何實施細節需要讀者去針對細節內容去學習。其中上述內容有很多是筆者的觀點,如有不同見解,還希望留言或者私下溝通。
九、參考資料
- 《中國 XOps 應用創新發展研究報告》- 中國信息通信研究院
- 《星漢未來綜合運維解決方案》
- 微軟 DevOps 資源中心:https://learn.microsoft.com/zh-cn/devops/what-is-devops
作者:京東零售 劉曉成
來源:京東云開發者社區 轉載請注明來源