汪淑平 黃萍 王貝貝
摘要:面對(duì)軟件行業(yè)的競爭愈加激烈,傳統(tǒng)研發(fā)模式難以滿足核電信息化業(yè)務(wù)復(fù)雜多變的需求。為更高效、更透明交付高質(zhì)量軟件產(chǎn)品,面向核電信息化業(yè)務(wù)的軟件開發(fā)正向開發(fā)運(yùn)維一體化(DevOps)軟件開發(fā)模式轉(zhuǎn)型升級(jí)。本文構(gòu)建了需求、開發(fā)、測(cè)試、運(yùn)維“四位一體”的軟件開發(fā)工具鏈,集成了問題跟蹤系統(tǒng)、在線辦公系統(tǒng)、代碼管理系統(tǒng)、核源平臺(tái)等工具,并在本單位進(jìn)行推廣使用,實(shí)現(xiàn)了軟件全生命周期的透明化管控。
關(guān)鍵詞:四位一體 問題跟蹤系統(tǒng) 在線辦公系統(tǒng) 代碼管理系統(tǒng) 核源平臺(tái)
Software Development Management for Nuclear Power Information Business Research on Tool Chain Integration
WANG Shuping1? HUANG ping2? ?WANG beibei2
(1. China nuclear power operation techenology corporation,LTD.,Wuhan, Hebei Province, 430070 China;2. Research institute of nuclear power operation,Wuhan, Hebei Province, 430070 China)
Abstract: Facing the increasingly fierce competition in the software industry, the traditional? model is difficult to meet the complex and changeable needs of nuclear power information business. In order to deliver high-quality software products more efficiently and transparently, the software development for nuclear power information business is transforming and upgrading to the development, operation and maintenance integration. software development mode. This paper constructs a "four in one" software development tool chain of demand, development, testing and operation and maintenance, integrates tools such as problem tracking system, online office system, code management system and nuclear source platform, and promotes them in our unit, realizing transparent management and control of the whole software life cycle.
Key Words:Four in one;Problem tracking system;Online office system;Code management system;Nuclear source platform
我國正處在數(shù)字化、網(wǎng)絡(luò)化、智能化為特征的科技變革的浪潮中,新一輪技術(shù)革命為“數(shù)字核電”建設(shè)帶來了新機(jī)遇和挑戰(zhàn)。將新一代信息技術(shù)與傳統(tǒng)的核電行業(yè)深度融合,是提升核電信息化水平的關(guān)鍵。然而,在核電信息化建設(shè)過程中,軟件產(chǎn)品的業(yè)務(wù)需求復(fù)雜多變、交付速度越來越快、軟件質(zhì)量要求越來越高,傳統(tǒng)研發(fā)模式開發(fā)成本高、周期長、系統(tǒng)維護(hù)升級(jí)困難等,難以滿足核電產(chǎn)業(yè)數(shù)字化轉(zhuǎn)型的需求[1]。具體表現(xiàn)在以下幾個(gè)方面:
(1)傳統(tǒng)的瀑布軟件開發(fā)模式,從需求到測(cè)試最后到產(chǎn)品交付,整個(gè)開發(fā)周期長,而軟件技術(shù)發(fā)展速度之快,往往軟件開發(fā)完成后,已經(jīng)和當(dāng)前的技術(shù)水平有了一定的差距[2];
(2)前期開發(fā)人員實(shí)力、團(tuán)隊(duì)項(xiàng)目經(jīng)驗(yàn)會(huì)直接影響后續(xù)維護(hù)迭代,自主研發(fā)軟件的團(tuán)隊(duì)常常是缺乏經(jīng)驗(yàn)的,后期復(fù)雜的系統(tǒng)優(yōu)化與維護(hù)、以及不斷更新的需求帶來的二次開發(fā)任務(wù)非常重;
(3)傳統(tǒng)開發(fā)模式下,過程管理閉塞,不能實(shí)時(shí)動(dòng)態(tài)的、透明的、全面的展現(xiàn)項(xiàng)目的進(jìn)展情況、員工績效信息等,無法盡早地發(fā)現(xiàn)開發(fā)過程中的質(zhì)量問題、管理問題和風(fēng)險(xiǎn)問題,過程中形成的知識(shí)和經(jīng)驗(yàn)沒有沉淀,無法形成有效寶貴的組織過程;
(4)項(xiàng)目開發(fā)過程的工具繁多且雜亂,需求、開發(fā)、測(cè)試、發(fā)布等都各自使用不同的系統(tǒng),系統(tǒng)缺乏互聯(lián)互通、業(yè)務(wù)數(shù)據(jù)分散,沒有一套完整統(tǒng)一的工具鏈,導(dǎo)致各環(huán)節(jié)容易出現(xiàn)黑盒狀態(tài),上下游協(xié)作效率低下,溝通成本較高,導(dǎo)致最終用戶體驗(yàn)不佳[3]。
綜上所述,傳統(tǒng)開發(fā)模式的問題根源在于開發(fā)和運(yùn)維的分離,而倡導(dǎo)開發(fā)和運(yùn)維一體化的DevOps理念的出現(xiàn)能夠很好解決該問題,特別是近年來隨著微服務(wù)架構(gòu)和容器技術(shù)的成熟,越來越多的軟件研發(fā)企業(yè)向DevOps軟件開發(fā)模式轉(zhuǎn)型升級(jí)[4]。DevOps是Development和Operation兩個(gè)英文的組合,即一組過程、方法和系統(tǒng)的統(tǒng)稱,旨在通過自動(dòng)化的流程,高效組織團(tuán)隊(duì)成員通過工具協(xié)作完成軟件全生命周期的管理,打破開發(fā)、運(yùn)維之間的壁壘,從而實(shí)現(xiàn)更快、更高質(zhì)量的交付軟件及軟件開發(fā)和運(yùn)維一體化[5-6]。然而,DevOps目前在蘋果、沃爾瑪?shù)葒獯笮突ヂ?lián)網(wǎng)公司使用較多,國內(nèi)僅像騰訊等大型互聯(lián)網(wǎng)企業(yè)有所涉及,但并未廣泛推廣。阻礙DevOps推廣的主要原因是企業(yè)對(duì)DevOps認(rèn)知不足。
本單位承擔(dān)了集團(tuán)板塊核電領(lǐng)域信息化建設(shè)以及核電廠日常運(yùn)營的信息化工具的開發(fā),中心正在向DevOps開發(fā)模式轉(zhuǎn)型。針對(duì)上述問題,本文基于目前比較成熟高效的DevOps前沿理論和業(yè)內(nèi)成熟的軟件工具,通過不斷的研究實(shí)踐,打造了貫通需求、開發(fā)、測(cè)試和運(yùn)維“四位一體”的軟件開發(fā)全過程管理工具鏈,支持云端開發(fā)、在線協(xié)同辦公和問題跟蹤,實(shí)現(xiàn)了軟件從需求管理、測(cè)試管理、代碼管理、持續(xù)集成、持續(xù)部署、智能運(yùn)維的全生命周期一體化的智能化管理。
1 “四位一體”軟件開發(fā)管理工具鏈設(shè)計(jì)
在核電信息化建設(shè)中,軟件開發(fā)管理包括需求管理、配置管理、知識(shí)管理、代碼管理、測(cè)試管理、質(zhì)量管理等工作,涉及到開發(fā)、技術(shù)運(yùn)維和質(zhì)量保障等部門間的溝通、協(xié)作與整合。本文建立了需求-開發(fā)-測(cè)試-運(yùn)維“四位一體”的軟件開發(fā)管理模式(見圖1),支持問題跟蹤、協(xié)同辦公、代碼管理、持續(xù)集成、持續(xù)交付等功能,實(shí)現(xiàn)了軟件開發(fā)全流程、全方位的跟蹤與管理。
1.1“四位一體”工具鏈集成框架設(shè)計(jì)
“四位一體”軟件開發(fā)管理工具鏈旨在打通軟件研發(fā)中需求、開發(fā)、測(cè)試、運(yùn)維的各個(gè)環(huán)節(jié),完成從項(xiàng)目需求、測(cè)試、Bug、代碼掃查、CI\CD(持續(xù)集成\持續(xù)發(fā)布)、配置管理于一體的全流程軟件開發(fā)業(yè)務(wù)管理,實(shí)現(xiàn)軟件開發(fā)過程中用戶、產(chǎn)品經(jīng)理、敏捷教練、開發(fā)人員、測(cè)試人員、運(yùn)維人員等各環(huán)節(jié)不同角色無障礙的溝通交流?!八奈灰惑w”軟件開發(fā)管理工具鏈的總體集成框架如圖2所示。
1.2 四位一體”工具鏈集成功能設(shè)計(jì)
根據(jù)“四位一體”軟件開發(fā)管理的設(shè)計(jì)理念,集成的工具鏈具有配置管理和知識(shí)管理、需求和任務(wù)管理、代碼管理、測(cè)試管理、持續(xù)集成和持續(xù)部署等功能。
(1) 配置管理:配置管理是對(duì)開發(fā)生命周期內(nèi)產(chǎn)生的數(shù)據(jù)和文檔進(jìn)行標(biāo)識(shí)、存儲(chǔ)和控制,以維護(hù)其完整性、可追溯性及正確性。配置管理是通過對(duì)項(xiàng)目各配置項(xiàng)進(jìn)行持續(xù)追蹤管理,控制配置項(xiàng)的變更,對(duì)比驗(yàn)證需求的一致性,檢驗(yàn)配置項(xiàng)與成果的關(guān)系,提高軟件集成的準(zhǔn)確度,同時(shí)對(duì)后續(xù)的運(yùn)維工作提供依據(jù)。
(2) 知識(shí)管理:集中管理企業(yè)經(jīng)驗(yàn)教訓(xùn)、先進(jìn)技術(shù)等組織過程資產(chǎn),供全員進(jìn)行在線學(xué)習(xí)、分享。通過對(duì)人員進(jìn)行權(quán)限分級(jí),按角色提供系統(tǒng)功能,變革傳統(tǒng)的集中式的辦公方式,實(shí)現(xiàn)異地協(xié)同辦公,促進(jìn)知識(shí)顯性化、沉淀企業(yè)的知識(shí)資產(chǎn),保護(hù)組織的核心競爭力。
(3) 需求管理:細(xì)化拆分每個(gè)需求,明確每個(gè)功能需求的使用角色、完成業(yè)務(wù)、流程走向、實(shí)現(xiàn)效果,組織對(duì)分解后的需求進(jìn)行評(píng)審。開發(fā)人員認(rèn)領(lǐng)面板所示通過評(píng)審的需求并進(jìn)行開發(fā)。系統(tǒng)記錄追蹤每一項(xiàng)需求變更,確保軟件產(chǎn)品一致性、可控性、可追溯性,使得產(chǎn)品與用戶需求完全吻合。
(4) 任務(wù)管理:跟蹤管理項(xiàng)目的日常事務(wù)性內(nèi)容??筛鶕?jù)要求靈活定制系統(tǒng)界面、流程,記錄工作日志,通過數(shù)據(jù)的積累,可以多維度地可視化項(xiàng)目各項(xiàng)指標(biāo),包括項(xiàng)目工作進(jìn)度、績效數(shù)據(jù)、質(zhì)量指標(biāo)等,每個(gè)應(yīng)用都為用戶提供量身定制的體驗(yàn)。
(5) 代碼管理:集中管理、存儲(chǔ)、版本控制代碼,供團(tuán)隊(duì)成員進(jìn)行訪問。通過設(shè)置多分支對(duì)代碼進(jìn)行開發(fā),提交、拉取、合并、推送等操作,完成項(xiàng)目內(nèi)的代碼共享和協(xié)助等內(nèi)容。
(6) 測(cè)試管理:在相應(yīng)的需求下面創(chuàng)建測(cè)試用例/測(cè)試用例集,按照測(cè)試步驟執(zhí)行測(cè)試用例,記錄測(cè)試結(jié)果。若有問題,編寫測(cè)試故障,監(jiān)控跟蹤項(xiàng)目故障整改情況。
(7) 持續(xù)集成和持續(xù)部署:允許代碼的頻繁提交與合并,階段性完成的代碼即進(jìn)入測(cè)試,從而讓開發(fā)人員更早的發(fā)現(xiàn)問題、修復(fù)問題。通過不斷獲取反饋、響應(yīng)反饋,降低集成的復(fù)雜度。同時(shí),定時(shí)、自動(dòng)地將穩(wěn)定的版本部署到生產(chǎn)環(huán)境中,讓軟件迅速投入生產(chǎn)階段,提高軟件開發(fā)和上線效率。另外,提供第三方質(zhì)量檢測(cè)接口(如SonarQube等),通過統(tǒng)一的規(guī)范要求對(duì)輸出物進(jìn)行檢查,保障源碼和原始參數(shù)的可靠性。
2 “四位一體”軟件開發(fā)管理工具鏈實(shí)現(xiàn)及應(yīng)用
2.1 “四位一體”軟件開發(fā)管理工具鏈實(shí)現(xiàn)
“四位一體”軟件開發(fā)管理工具鏈包括了問題跟蹤系統(tǒng)、在線辦公系統(tǒng)、代碼管理系統(tǒng)、核源平臺(tái)等四大工具,實(shí)現(xiàn)了軟件開發(fā)的全過程管理。本文基于虛擬化技術(shù)將“四位一體”工具鏈集成于云開發(fā)平臺(tái)中,為各類工具提供統(tǒng)一的開發(fā)環(huán)境和入口。云開發(fā)平臺(tái)運(yùn)行于內(nèi)網(wǎng)環(huán)境,數(shù)據(jù)統(tǒng)一存儲(chǔ)于內(nèi)網(wǎng)服務(wù)器上,可有效保護(hù)數(shù)據(jù)安全,防止代碼擴(kuò)散。用戶可動(dòng)態(tài)按需產(chǎn)生自定義的虛擬桌面,在云桌面中使用相關(guān)工具進(jìn)行開發(fā)。
(1)問題跟蹤系統(tǒng):是強(qiáng)大的事務(wù)收集跟蹤工具,應(yīng)用于需求收集管理、測(cè)試管理、缺陷跟蹤、流程審批、任務(wù)跟蹤、項(xiàng)目跟蹤和敏捷管理等。問題跟蹤系統(tǒng)與代碼管理系統(tǒng)聯(lián)通,通過需求和代碼管理系統(tǒng)關(guān)聯(lián),實(shí)時(shí)展示需求對(duì)應(yīng)的代碼編寫、改動(dòng)情況。問題跟蹤系統(tǒng)與在線辦公系統(tǒng)關(guān)聯(lián),完成需求與配置項(xiàng)相互映射,明確每一個(gè)配置項(xiàng)的變更。
(2)在線辦公系統(tǒng):用于企業(yè)知識(shí)管理與協(xié)同辦公的工具,具有強(qiáng)大的編輯和站點(diǎn)管理功能,能夠幫助團(tuán)隊(duì)成員之間共享信息、文檔協(xié)作、集體討論、信息推送等。系統(tǒng)實(shí)現(xiàn)了文檔管理的自動(dòng)化,使各類文檔能夠按照權(quán)限進(jìn)行保存、共享、使用,提供一個(gè)有效的信息發(fā)布和交流的場(chǎng)所。同時(shí),在線辦公系統(tǒng)也實(shí)現(xiàn)了項(xiàng)目配置管理工作,在項(xiàng)目立項(xiàng)初即搭建配置管理庫,由配置管理員統(tǒng)一進(jìn)行管理,同時(shí)與問題跟蹤系統(tǒng)聯(lián)通,對(duì)軟件開發(fā)過程中相關(guān)內(nèi)容進(jìn)行實(shí)施追蹤,提取相關(guān)配置項(xiàng)信息。
(3)代碼管理系統(tǒng):一個(gè)基于Git實(shí)現(xiàn)的在線代碼倉庫托管軟件,用于內(nèi)部網(wǎng)絡(luò)搭建Git私服。該系統(tǒng)集成代碼靜態(tài)掃查工具(SonarQube),進(jìn)行統(tǒng)一代碼質(zhì)量和注釋率檢查,并通過圖形化的界面公開檢查統(tǒng)計(jì)結(jié)果,實(shí)現(xiàn)強(qiáng)制性檢查機(jī)制。代碼管理系統(tǒng)與問題跟蹤系統(tǒng)集成,每個(gè)需求下面可以展示代碼編寫情況。代碼管理系統(tǒng)與核源平臺(tái)聯(lián)通,代碼一經(jīng)提交即自動(dòng)掃查,進(jìn)一步確保軟件代碼的質(zhì)量。
(4)核源平臺(tái):該平臺(tái)為本單位自主研發(fā)的平臺(tái),提供了多租戶權(quán)限管理、多集群管理、DevOps、微服務(wù)治理等基本功能,包括彈性伸縮、灰度發(fā)布、交付中心、快速接入原生資源(YAML、Helm)、多維度監(jiān)控與運(yùn)維中心等主要模塊。平臺(tái)支持微服務(wù)軟件架構(gòu)應(yīng)用的開發(fā)(包含服務(wù)治理環(huán)境),提供統(tǒng)一的分布式技術(shù)棧,降低質(zhì)量問題發(fā)生率以及運(yùn)維難度;平臺(tái)還可以實(shí)時(shí)監(jiān)控整個(gè)系統(tǒng)環(huán)境的運(yùn)行數(shù)據(jù),提前預(yù)警和按照預(yù)先的策略進(jìn)行自動(dòng)化修正,保障整個(gè)容器云環(huán)境的有序高效運(yùn)行,提供整個(gè)資源的高可用支持[1]。
2.2 “四位一體”軟件開發(fā)管理工具鏈應(yīng)用
“四位一體”軟件開發(fā)管理工具鏈已在本單位核電大型管理系統(tǒng)研發(fā)項(xiàng)目中運(yùn)用。該核電大型管理信息系統(tǒng)以核電廠設(shè)備信息管理為主,以工作管理流程為主線,將設(shè)備管理、工作管理、配置管理、運(yùn)行管理、輻射防護(hù)管理及安全管理集成一體,功能需求復(fù)雜,涉及核電上下游產(chǎn)業(yè)鏈業(yè)務(wù)。
該項(xiàng)目模塊任務(wù)多、開發(fā)周期長、人員組成復(fù)雜,傳統(tǒng)的開發(fā)模式建成一個(gè)穩(wěn)定流暢的系統(tǒng)需要付出大量的時(shí)間和成本,且過于依賴開發(fā)人員,導(dǎo)致開發(fā)的系統(tǒng)無法跟上快速變化的需求,后期的運(yùn)維和升級(jí)維護(hù)異常復(fù)雜。項(xiàng)目開發(fā)過程中的工具繁多且雜亂,需求、開發(fā)、測(cè)試、發(fā)布等都各自使用不同的系統(tǒng),系統(tǒng)缺乏互聯(lián)互通、業(yè)務(wù)數(shù)據(jù)分散,缺乏一套完整統(tǒng)一的工具鏈。
項(xiàng)目啟動(dòng)后,配置管理員采用“四位一體”工具鏈創(chuàng)建項(xiàng)目空間、建立賬號(hào)、分配角色權(quán)限,通過在線辦公系統(tǒng)創(chuàng)建項(xiàng)目配置庫,用于管理整個(gè)項(xiàng)目的配置項(xiàng)及變更相關(guān)內(nèi)容,配置管理員和項(xiàng)目組在核源平臺(tái)中聯(lián)合完成流水線搭建,讓開發(fā)人員可以持續(xù)集成和持續(xù)部署;項(xiàng)目負(fù)責(zé)人將項(xiàng)目相關(guān)過程資產(chǎn)、前期相關(guān)資料共享至在線辦公系統(tǒng)供成員進(jìn)行學(xué)習(xí),同時(shí)在問題跟蹤系統(tǒng)中將相關(guān)需求分解,并分發(fā)任務(wù),明確責(zé)任人、完成時(shí)間,并在開發(fā)階段實(shí)時(shí)跟蹤每個(gè)需求對(duì)應(yīng)的代碼編寫情況,確保所有任務(wù)都有跟蹤;開發(fā)人員在問題跟蹤系統(tǒng)中領(lǐng)取任務(wù),進(jìn)行開發(fā)工作,在開發(fā)過程中可實(shí)時(shí)地將代碼提交到代碼管理系統(tǒng)中,并通過集成的代碼掃查工具自動(dòng)完成掃查,通過質(zhì)量門后即可在核源平臺(tái)進(jìn)行持續(xù)集成部署。
核電大型管理系統(tǒng)項(xiàng)目研發(fā)管理采用“四位一體”工具鏈后,實(shí)現(xiàn)了從需求、開發(fā)、測(cè)試到運(yùn)維全流程的透明化、多樣化、智能化、透明化的管控,提升了管理力度和效率。項(xiàng)目管理人員使用“四位一體”工具鏈后,可以實(shí)時(shí)查看軟件開發(fā)任務(wù)執(zhí)行情況,通過豐富的動(dòng)態(tài)圖表多維度、多視圖、多區(qū)間的展示項(xiàng)目相關(guān)數(shù)據(jù),全面監(jiān)控軟件項(xiàng)目質(zhì)量。在項(xiàng)目實(shí)施過程中,“四位一體”工具鏈幫助快速識(shí)別產(chǎn)出物質(zhì)量風(fēng)險(xiǎn)、安全風(fēng)險(xiǎn)、產(chǎn)品是否真正符合客戶需求的風(fēng)險(xiǎn),縮短了產(chǎn)品開發(fā)、修復(fù)問題的時(shí)間,節(jié)省了時(shí)間和成本,提升了軟件產(chǎn)品的質(zhì)量。
3 結(jié)語
本文分析了當(dāng)前核電行業(yè)信息化開發(fā)面臨的問題,提出了需求、開發(fā)、測(cè)試、運(yùn)維“四位一體”的軟件開發(fā)模式,集成并構(gòu)建了問題跟蹤系統(tǒng)、在線辦公系統(tǒng)、代碼管理系統(tǒng)、核源平臺(tái)“四位一體”軟件開發(fā)工具鏈,支持配置管理、知識(shí)管理、需求管理、任務(wù)管理、代碼管理、測(cè)試管理、持續(xù)集成和持續(xù)部署等功能,實(shí)現(xiàn)了軟件開發(fā)的全過程管理。該工具鏈目前已經(jīng)在本單位全面推廣使用,完成了從需求、開發(fā)、測(cè)試到發(fā)布的全流程、全方位的跟蹤和綜合管理,適應(yīng)了大規(guī)模項(xiàng)目精細(xì)化管理,助力企業(yè)實(shí)現(xiàn)降本增效。我們后續(xù)將持續(xù)優(yōu)化工具鏈各項(xiàng)功能,搭建集成系統(tǒng)并打造管理駕駛?cè)芭?,為用戶提供更友好的智能化管理平臺(tái)。
參考文獻(xiàn)
[1] 任宇陽.淺談DevOps在核電大型管理系統(tǒng)中的應(yīng)用[J].科技創(chuàng)新導(dǎo)報(bào),2020(27):26-27.
[2] 高棟. DevOps平臺(tái)建設(shè)分析[J].中國科技信息, 2019(24):39-40.
[3] 歐利松.基于J2EE架構(gòu)敏捷開發(fā)的研究[J].電子科技,2017,30(5):162-164.
[4] 王敏,賈百強(qiáng),李翔,等.基于JIRA的全生命周期軟件開發(fā)管理平臺(tái)[J].上海船舶運(yùn)輸科學(xué)研究所學(xué)報(bào),2017,40(2):78-82.
[5] 劉博涵. DevOps中國調(diào)查研究[J].軟件學(xué)報(bào),2019,30(10):35-36.
[6] 高麗娟.基于DevOps的軟件開發(fā)管理模式[J].計(jì)算機(jī)工程應(yīng)用技術(shù),2021(2):28-29.