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