高麗娟



摘要:DevOps是繼敏捷研發后的又一個先進的研發理念,通過整合開發和運維,有效解決了敏捷研發中軟件開發與運維之間的鴻溝,提升了軟件開發效率和交付質量。文章首先分析了DevOps概念、優勢和應用現狀,接著研究了基于DevOps的軟件開發流程,最后以某公司安全軟件開發為例,對基于DevOps的軟件開發管理模式進行深入探討,以供參考和借鑒。
關鍵詞:DevOps;軟件開發;管理模式
中圖分類號: TP311? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)04-0258-03
隨著信息化網絡時代的到來,海量的數據信息出現在人們的視野中,這給企業業務工作創新提出了更高的要求。企業要想在這樣的背景下獲得穩定發展,必須借助高質量的軟件開發,實現業務方面的創新應用。對于現代化企業,特別是互聯網企業而言,需要將有價值的信息快速準確地傳遞給用戶,以便于用戶做出及時的反饋,進而對產品進行修改和優化。而對于這一過程的實現,必須要求開發團隊與測試、運維團隊相互配合,改變以往相互割裂的情況,這正是DevOps理念的核心所在,可見運用DevOps理念進行企業軟件開發管理已經成為當前的一大趨勢,這對于提升軟件交付質量有著積極作用。
1 DevOps相關概述研究
1.1 DevOps的概念
DevOps是集自動化、持續監控以及共享等元素于一身,將軟件開發、運維以及測試緊密聯系到一起,是三個部門進行溝通協作的重要方法和依據。DevOps最早出現在歐洲,主要以解決傳統IT在運維方面的問題而出現的,相關專家總結出一個能力環結構,以此更好的解釋DevOps內涵,詳細如圖1所示。
DevOps的出現,讓軟件開發團隊可以用同樣的方式對開發、生產以及測試等環境進行有效操控,同時可以在任意情況下將數據包部署到相應環境中。DevOps從軟件交付的整體出發,加強各個角色之間的協調合作,而且由于其具有自動化的功能特點,可以有效降低人工勞動力和人機交互,提升開發設計效率,所以在實際開展工作中需要盡可能選擇一些支持腳步化、無須人機交互界面的工具,而這些工具在使用中會涉及環境當中的相關函數,函數具有復雜性、抽象性等特征,因此可以構建一個具有形象化特征的框架結構,達到簡化處理目的。除此之外,在實際運用DevOps時,可以將全局系統的視角運用到高層次的模型中,使其在應用、操作系統服務、網絡服務以及數據庫等層面發生變化,更好地發揮應用效果。
1.2 DevOps的優勢
以往的軟件開發模型是溫斯頓·羅伊斯在1970年提出的瀑布開發模型,其后續一直被應用到軟件開發管理中。該模型的主要核心在于將功能的實現與設計相分離,并且將軟件開發管理周期劃分為以下六個環節,即計劃制定、需求分析、軟件設計、程序編寫、測試以及運行維護等,同時該模型還規定了各個環節之間的依次性,即遵循自上而下、相互銜接的基本原則,就好比瀑布流水的原理,因此被稱為瀑布模型。該模型優勢在于提供了軟件開發設計按階段劃分的檢查點,但是也不可避免地存在一些不足,即只有在軟件開發項目周期到達后期時,才能看到開發設計的結果,所以當出現需求變化時,很難得到有效的滿足。后續在瀑布模型基礎上進行了優化,產生了一種新的理念,即敏捷開發理論,其有效彌補了瀑布模型的各類缺陷,有效提升了軟件開發效率和響應能力。在應用該理論進行軟件開發設計時,主要將其劃分為多個子項目,并且可以確保每一個子項目成果都經過測試,具備了可視化、可運行的特征優勢,但是該理論卻沒有解決軟件開發與運維之間的問題,所以難以提升軟件開發效果。而DevOps則是在敏捷模型基礎上再次優化產生的理論,其在敏捷理論的基礎上,將運維理念應用其中,實現了軟件開發、測試與運維的統一集成,使得軟件開發管理模式更加的規范,圖2是各類軟件開發模型進化的過程。
對于傳統行業的數據中心來說,數據安全性和穩定性是至關重要的,所以IT管理人員對于數據中心的管理必須側重于兩個方面,即通過對數據中心各環節的維護確保數據的穩定性、通過定位分析,及時發現問題并給予處理,確保數據的安全性。但是傳統數據中心的軟件開發管理模式中的開發模型,都沒有很好地滿足數據安全性和穩定性的要求。而DevOps由于集開發、測試和運維于一體,可以實現各個團隊和部門之間的協調配合,所以軟件開發效率大大提升,相應的穩定性和安全性也有了保障。
1.3 DevOps的應用現狀
就目前而言,很多國外的大型互聯網企業,包括蘋果、星巴克以及沃爾瑪等,他們在軟件開發管理當中都是采用DevOps實現業務方面的創新應用。DevOps雖然在國外應用比較廣泛,但是從目前來說,該理論在國內還沒有得到廣泛的推廣和使用,僅僅對于一些大型企業成功應用了DevOps,而在一些中小企業中卻沒有得到較為廣泛地應用,原因是他們沒有認識到軟件開發、測試與運維協作所產生的效果。
2 基于DevOps的軟件開發管理流程
面向于DevOps理念的軟件開發管理模式,其主要的流程如下:第一,持續的管理與計劃。由研發人員、測試人員以及運維人員共同制定軟件的交付計劃方案,其中的每一個角色需要結合自身的工作內容對方案計劃的制定作出建議。此外,項目管理人員作用主要是對項目方案流程實施跟蹤監督,包括軟件開發管理全生命周期的各個節點,整體項目計劃方案需要在管理平臺中對所有人可見,并實時更新;第二,持續集成與測試。軟件開發工作者在對軟件功能進行研發時,需要編寫相應功能的測試代碼,然后由運維人員進行代碼的翻譯,并實施單元測試模塊的運行管理,同時對于測試結果做出準確判斷,分析是否需要進行修改;第三,持續交付與部署。對于軟件代碼開發實施和每日集成情況,借助集成工具(jenkins)將構建產物部署至仿真狀態,交由測試工作人員進行驗證處理;第四,持續的分析與計劃。對于軟件開發管理項目狀態進行分析,及時發現存在的問題,并給予整改和優化,全面提升軟件開發設計質量和效率。
3基于DevOps的軟件開發管理模式研究
3.1標準化和自動化流程的構建
本次研究中基于DevOps的軟件開發設計,主要核心在于提升軟件設計質量和效率,以此為目的建立標準化和自動化的研發流程,具體涉及以下幾點,即自動化測試執行、自動化測試回歸以及自動化發布和部署等,通過構建自動化、標準化的開發流程,不僅提升了開發設計效率和質量,而且大幅度降低了人工勞動力。
3.2 統一工具鏈建設
在完成研發流程構建后,需要統一工具鏈建設,即重新定義項目所關聯的唯一標識,將配置管理作為流程驅動的關鍵和前提,以數據中心作為載體,實現軟件開發的規范化和標準化。
3.3規范自動化功能
構建全生命周期持續化平臺,包括編譯構建、靜態分析、測試追蹤以及數據分析等分布式自動化節點,目的在于確保軟件開發的自動化執行、發布以及部署等。從目前來看,項目開發中已經實現了單點環境的資源部署,并且已經初步形成了與研發流程相匹配的自動化鏈路,詳細如圖3所示。
3.4可視化反饋機制
在軟件開發管理中提升交付質量十分重要,但同時也需要盡可能地縮短軟件迭代周期。為了達到這一目的,提升可視化反饋機制就顯得十分必要,具體是結合軟件的工作場景開展相應工作。通常情況下,可視化反饋機制實現的基礎是工具間數據是否打通,關鍵技術在于突破各個通信交互間的接口,反饋的形式主要包括以下兩種,即郵箱反饋、通信和監控看板反饋。
3.5方案的實施
本次研究中主要通過并行開展實施方案的計劃,詳細方案包括以下幾種:第一,Hubot方案。在異步處理和TCP通信的基礎上,使用目前應用比較廣泛的nodejs框架,通過調用即時通信系統的接口單點接入,最終達到用戶差異性反饋目的。此外,該方案還通過利用單點接入技術與研發流程二者的有效融合,向軟件開發工作人員定期實時推送定制化消息,從而實現人機交互的管理模式;第二,TBox方案。該方案中主要利用OSGI模塊化設計理念,并且融入C/S部署架構,在軟件開發管理工具的自主研發環節建立一個規范下載管理和監控平臺,同時構造線程池管理消息隊列,收集在線情況并且存儲為組織級的度量數據,詳細原理如圖4。
第三,報表展示方案。利用數據庫讀取的報表工具,在大量的數據信息中提取、處理得到軟件開發管理所評估的數據信息,并且以實時看板的反饋方式為用戶提供快捷的服務,同時也全面提升項目的運行效率,詳細如圖5。
基于DevOps的軟件開發管理還實現了多個自主研發的軟件工具和商用軟件工具,這給用戶提供了統一規范的工具/設備下載使用和監控平臺。
本次研究中在方案制定和流程研發中克服了多個關鍵問題及難點,對項目管理、軟件工程等經典方法論進行了有效整合,技術創新總結如下:第一,基于DevOps的安全軟件開發設計不僅實現了規范的軟件生命周期數據管理,而且打通了九類工具間的數據聯系,這使得傳統開發管理中數據孤島問題得以解決;第二,本次開發管理模式通過分布式的部署環境支持多樣化自動化服務,一方面為開發流程自動化、標準化的構建提供了幫助,另一方面也降低了人工操作壓力。
4 結束語
綜上所述,基于DevOps的安全軟件開發管理模式,在滿足原有需求、配置等優勢基礎上,實施了優化改良,即根據自身的研發組織和技術特點進行大量的集成、定制和自動化開發,不僅解決了傳統敏捷交付當中的缺陷和不足,有效實現了開發、測試與運維于一體的穩定安全的開發管理模式,并且以自動化的全生命周期配置維護管理,有效滿足了網絡信息環境的復雜性需求。
參考文獻:
[1]王慶.基于容器的DevOps云平臺設計與實現[D].電子科技大學,2020.
[2] 童向杰,鄭武,謝鳳玲,等.企業數字化轉型中的硬件DevOps實踐[J].價值工程,2020,39(1):1-5.
[3] 高棟王殿勝張思琪張曉明.DevOps平臺建設分析[J].中國科技信息,2019(24):39-40.
[4] 榮國平,白曉穎,岳濤.面向DevOps的軟件工程新技術專題前言[J].軟件學報,2019,30(10):3054-3055.
[5]郭健.基于DevOps的D公司軟件項目管理改進研究[D].電子科技大學,2019.
【通聯編輯:唐一東】