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