您好,登錄后才能下訂單哦!
DevOps是當前IT領域最熱門的話題之一,了解、掌握、應用DevOps對于提升軟件交付與管控具有重要的意義。然而時至今日DevOps尚無統一的定義。
本文主要從業務及IT的發展對DevOps的誕生背景、定義演進以及落地價值等方面進行了分析和闡述,以期對DevOps的內涵進行探討。
DevOps在2009年提出以來,已經走過了十個年頭。近幾年來,DevOps的熱度呈快速上漲趨勢,從DORA的年度報告也可以看出來,到2018年末全球主要行業的DevOps的應用程度已達到30%,上升勢頭迅猛。
然而,時至今日,對于DevOps仍沒有一個準確的定義,這對于我們理解DevOps,或者說在落地DevOps的過程中會帶來不小的困擾,各方都有自己的理解。那么,DevOps的內涵究竟是什么呢?我們期望從DevOps的發展背景、定義演進以及落地價值等方面進行一次探討。
民用軟件系統的應用崛起于上個世紀八十年代, 2000年后蓬勃發展,其中,作為重要組成部分的軟件系統,逐漸深入到社會的每一個角落,從整體的發展過來來看,業務與軟件系統的關系可分為三個階段。
輕度依賴
在這個階段主要出現在早期,軟件系統主要解決業務中重復多或計算量大的問題,支撐范圍主要局限在業務中的某一過程或環節。或者說,在這個階段,業務離開了軟件系統也能開展,軟件對業務來說不是必選項,軟件功能的更新頻率可以是數天乃至數月、年。
重度依賴
隨著業務的發展,業務的關聯性與復雜度提高后,業務完全依賴人工完成已經成為不可能。到這個時期,軟件系統成為業務的核心支撐,業務的開展已經離不開軟件系統,但尚可接受短暫的非服務期存在,軟件功能的更新頻率被要求在數天、月。
完全依賴
隨著軟件服務深入社會各個角落,社會生活的衣、食、住、行、用都依賴于軟件系統,從某一領域或應用來說,軟件系統相對于業務已經進入了主導階段,軟件系統必須提供365*7*24的服務,任何中斷服務可能都會帶來極大的經濟或社會損失,軟件功能的更新頻率必須控制在數天、小時、分鐘。
IT管理與研發模式的演進,與IT對業務的響應效率密不可分,大致可分為三個階段;
“穩態”模式
傳統穩態模式的管理上,業務、研發、測試、運維依次分階段管理,各階段的人員只需關注本階段內部的相關內容即可,研發以系統軟件包交付為目標;整體結構如下圖所示:
在研發模式上,以瀑布模型為主要特點,其優勢是各階段劃分比較清晰、整體成本較低,但迭代速度較慢,其在業務對軟件輕度依賴階段適用性較好。
“穩態+敏捷”模式
隨著業務對軟件依賴程度的提高,傳統模式下軟件的迭代效率成為了一個阻礙業務發展的主要問題點,于是針對軟件研發過程最耗時的開發過程出現了一系列的優化措施,敏捷研發是其代表。這個時期的IT管理模式變成了“穩態+敏捷”的模式,研發仍舊以系統軟件包交付為目標,如下圖所示:
當然,在這個時期,針對各階段的效率提升也進行得如火如荼,出現了了一大批針對不同階段提速的工具軟件,如下圖所示:
“敏態”模式
當業務對軟件系統完全依賴時,IT管理與研發模式就需要進入“敏態”模式了。而這個模式也就是我們今天時常提起的DevOps。在這個模式下,研發交付目標不再是系統軟件包,而是面向業務的服務能力,如下圖所示:
由于業務與軟件的關系越來越緊密,研發的交付已經由原來的面向軟件包產品,而轉向面向業務需要的服務能力,然而,這種服務能力也是涉及多個方面,下面我們從DevOps的定義發展,來看看DevOps的內容豐富過程。
“穩態+敏捷”模型只能實現局部效率提升,而DevOps那么唯一的途徑就是從整體上進行優化和提升,使整個研運過程形成一個有機的整體。從2009年提出依賴,DevOps的內涵也在進行著不斷的發展與豐富,我們先看一下不同時期的定義。
2009年10月,【Patrick Debois】DevOps(英文Development和Operations的組合)是一組過程、方法與系統的統稱,用于促進開發(應用程序/軟件工程)、技術運營和質量保障(QA)部門之間的溝通、協作與整合。
2010年5月,DevOps是一個重要的理論,它通過敏捷、精益等在方法、在一個傳統的組織中,把獨立的部門協同在一起實現跨部門集成,建立更加緊密的多部門協作。DevOps不僅僅關注軟件部署這一技術問題,它是考慮部門與部門之間溝通和協作的管理方法。
2014年12月 DevOps是一種軟件開發方法,它強調軟件開發人員和信息技術人員之間的溝通、協作和集成。
2015年11月 DevOps是一種文化、運動或實踐,它強調軟件開發人員和其他信息技術人員的協作和溝通,同時強調自動化軟件交付和基礎設施變更的過程。
2018年AWS DevOps定義:DevOps是一組實踐,目的是在確保高質量的情況下,快速地把變更導入到生產環境。
我們把不同時期的定義整理為一個時間軸,并做一些關鍵字抽取:
可以看出針對DevOps的定義,隨著時間的推移,DevOps的內涵在不斷豐富,已經從最初一組過程、方法與系統的組合簡的單定義,發展為一套有理論、有方法、有文化、有實踐的體系。
DevOps體系與傳統模式是有著本質的不同的,主要體現在以下幾個方面:
組織方式不同
DevOps中強調以項目或產品的一體化管理為基本管理模式,從而消除傳統模式下分階段任務管理與執行,通過管理模式的調整,消除傳統模式下不同階段的銜接問題。
關注重點不同
DevOps是以最終向業務的服務能力交付為目標,而不是傳統模式下分階段任務交付為目標。
提升維度不同
DevOps關注軟件系統的整個生命周期,是從整體上提升軟件交付的質量與效率,而不單只關注某一個階段的提升,各階段的提升可以更加的有機協同。
管控深度不同
DevOps強調全程監控,全程度量,通過技術手段透明化軟件交付的全程,包括過程與結果,而傳統模式下過程數據缺乏,難以進行有效的過程度量與分析。
效益效果不同
DevOps支持針對交付過程的持續優化,通過度量數據分析可以快速定位交付過程的問題與努力方向,支持持續科學的優化提升,傳統模式難以做到。
DevOps的定義演進以及與傳統模式的對比,可以看出DevOps體系本身系統化、整體性的設計思想,其既包括了軟件全生命周期的系統化考慮,也包括了了IT管理的多方訴求,DevOps的落地涉及DevOps平臺的建設、流程體系建設、人員賦能、標準規范等多個方面,其可以為帶來如下方面的提升。
業務響應能力提升
DevOps的落地,在提升效率的同時可以提升交付的質量,自動化程度的提升可以提升對業務需求迭代的響應能力,研運吞吐量可以得到幾何級的提升。
研發交付規范提升
不同項目或產品的研發團隊,在同一套平臺上開展研發交付活動,通過平臺預先制定的流程、規則等約束不同研發團隊的交付活動,從而實現研發交付規范與標準的統一,實現企業級的優化提升與改進。
研發交付效率提升
通過針對研發交付過程中的環境準備、編譯構建、代碼質量檢查、系統測試、軟件部署等過程的自動化實現,降低人工操作或等待人工操作時間,全面提升研發交付過程的自動化水平,提升研發交付效率。
研發交付質量提升
研發交付質量的從現有的部署結果質量保障,延伸到源代碼質量保障、測試覆蓋度保障等過程,從而實現從源代碼到部署全過程的質量檢查與提升,全鏈路提升研發交付質量
研發交付管控提升
針對研發交付的需求、開發、測試、發布和部署等過程,進行全面的數據化和度量,針對重點關注指標建立質量門禁,從而實現自動化的技術管控,結合已有的行政管控,由單一的結果管控,實現研發交付“過程+結果”管控,提升管控力度。
研發交付持續優化
基于DevOps平臺,通過流水線過程數據收集,以及進一步的度量分析,實現研發交付過程的持續優化,既包括DevOps平臺的優化,也包括研發交付流程、標準規范等方面的優化。
DevOps的演進簡單來說就是從一項技術到文化的構建與實踐;從無關緊要到依賴;從業務的局部到全部。而DevOps的落地價值實現于研、運的整合并且提升對業務需求的響應。趨勢已成,只愿大家都能共襄盛舉。
作者:黃全中
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。