999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于GIT的氣象數(shù)值模式代碼管理平臺METCODE

2021-08-25 11:10:32趙春燕王彬孫婧常飚胡江凱周斌
氣象科技 2021年4期
關(guān)鍵詞:管理

趙春燕 王彬* 孫婧 常飚 胡江凱 周斌

(1 國家氣象信息中心,北京 100081; 2 國家氣象中心,北京 100081)

引言

氣象數(shù)值模式是氣象科技創(chuàng)新的核心組成部分,已成為氣象部門技術(shù)進(jìn)步與業(yè)務(wù)發(fā)展的重要標(biāo)志之一。氣象數(shù)值模式不同于一般意義的軟件產(chǎn)品,其研發(fā)是一個科學(xué)探索性較強(qiáng)的過程,同時需要規(guī)范嚴(yán)格的技術(shù)手段保障業(yè)務(wù)運(yùn)行。由于兼具科研試驗(yàn)、業(yè)務(wù)管理以及科研-業(yè)務(wù)轉(zhuǎn)化的多重需求,持續(xù)改進(jìn)的過程管理和代碼版本控制對氣象數(shù)值模式的可持續(xù)發(fā)展至關(guān)重要。代碼管理是軟件配置管理中的基礎(chǔ)管理過程[1],是軟件能力成熟度評估標(biāo)準(zhǔn)中的關(guān)鍵過程域。近幾年,軟件開發(fā)規(guī)模越來越大,開發(fā)團(tuán)隊也隨之?dāng)U大,分布式開發(fā)成為常態(tài),團(tuán)隊開發(fā)質(zhì)量和協(xié)作效率問題也越來越突出,而優(yōu)秀的代碼管理平臺能夠支撐開發(fā)人員更高效地協(xié)同開發(fā),同時保證軟件資產(chǎn)的完整性和可跟蹤性。

代碼管理軟件技術(shù)的發(fā)展經(jīng)歷了本地版本控制、集中式的版本控制和分布式版本控制3個階段[2]。在20世紀(jì)中葉,計算機(jī)得到初步應(yīng)用,軟件系統(tǒng)開發(fā)周期較長,出現(xiàn)了如RCS的基于計算機(jī)系統(tǒng)本地的代碼管理工具[3]。隨著計算機(jī)的發(fā)展和軟件規(guī)模的擴(kuò)大,20世紀(jì)70、80年代,出現(xiàn)了C/S架構(gòu)的集中式代碼管理工具如CVS、SVN、Perforce等[3],由服務(wù)端提供合并、版本記錄集中式的管理。20世紀(jì)90年代到21世紀(jì)初,隨著互聯(lián)網(wǎng)的蓬勃發(fā)展、軟件規(guī)模日益擴(kuò)大,分布式開發(fā)團(tuán)隊廣泛出現(xiàn),分布式版本控制系統(tǒng)應(yīng)運(yùn)而生,如Git[4]、Mercurial。隨著互聯(lián)網(wǎng)開放程度的提高與云計算技術(shù)的發(fā)展成熟,代碼托管及共享服務(wù)平臺、項目協(xié)作生態(tài)社區(qū)成為代碼管理的主要形式,如全球最大的開源社交編程及代碼托管網(wǎng)站的GitHub[5]、國內(nèi)的碼云Gitee和CODING[6],其分布式、高效協(xié)同共享的特點(diǎn),使其成為現(xiàn)代代碼管理的主要手段。國際上,歐洲中期天氣預(yù)報中心、美國國家環(huán)境預(yù)報中心、美國國家大氣研究中心均已采用Git分布式技術(shù)支撐模式協(xié)同研發(fā),解決了國際合作研究的研發(fā)協(xié)同問題,提升了模式研發(fā)的協(xié)同效率。

氣象數(shù)值模式[7]是實(shí)現(xiàn)數(shù)值天氣預(yù)報的核心技術(shù)手段,氣象數(shù)值模式具有持續(xù)性、科學(xué)性、分布性、廣泛交叉應(yīng)用衍生等特性,對代碼管理提出了新的挑戰(zhàn)。以GRAPES[8](Global/Regional Assimilation PrEdiction System)模式為例,從2001年起至今,經(jīng)歷了近20年的持續(xù)改進(jìn)升級,如何保持研發(fā)歷史脈絡(luò)的清晰和可持續(xù)性成為關(guān)鍵問題之一。GRAPES模式包括資料同化[9]、模式動力框架、物理過程等模塊,基于Fortran采用模塊化的設(shè)計[10]組合調(diào)用,采用并行框架調(diào)試運(yùn)行在氣象高性能計算機(jī)系統(tǒng)[11],融合了氣象科學(xué)、計算科學(xué),尤其在眾核異構(gòu)計算發(fā)展趨勢下,支持眾核加速計算架構(gòu)下模式移植優(yōu)化研發(fā)[12]、跨學(xué)科跨部門的交叉協(xié)同合作成為迫切需求。GRAPES模式已發(fā)展了GRAPES_GFS[13](全球中期預(yù)報模式)和GRAPES_MESO(區(qū)域中尺度模式),各區(qū)域氣象業(yè)務(wù)中心根據(jù)業(yè)務(wù)的特點(diǎn)發(fā)展了特色的應(yīng)用模式,如集合預(yù)報[14]、沙塵暴預(yù)報、臺風(fēng)預(yù)報[15]、水文洪水預(yù)警預(yù)報等,擁有眾多的分布式開發(fā)團(tuán)隊,研發(fā)力量地理上分散,涉及大量的分布式協(xié)同共享、集成合并管理需求。綜上,需要建立支撐模式分布式協(xié)同眾創(chuàng)研發(fā)的代碼管理平臺,支持大規(guī)模協(xié)作共享研發(fā)、科學(xué)規(guī)范代碼集成管理和脈絡(luò)清晰可追蹤的研發(fā)成果管理。

本文圍繞氣象數(shù)值預(yù)報模式的研發(fā)特點(diǎn)和發(fā)展需求,通過技術(shù)選型分析,設(shè)計建立了一個基于Git的分布式代碼協(xié)作共享管理平臺METCODE,保存模式研發(fā)歷史,支撐氣象數(shù)值模式的持續(xù)發(fā)展和國省合作研發(fā)應(yīng)用的協(xié)作共享,建立了模式代碼管理標(biāo)準(zhǔn),規(guī)范化研發(fā)、集成合作和業(yè)務(wù)化各個環(huán)節(jié)。

1 氣象數(shù)值模式研發(fā)管理現(xiàn)狀

2010年,中國氣象局引進(jìn)了商業(yè)版本管理軟件應(yīng)用于GRAPES研發(fā)[16],建立了氣象數(shù)值模式代碼管理系統(tǒng),首次實(shí)現(xiàn)了GRAPES模式研發(fā)的代碼管理,運(yùn)行至今建立了956個用戶終端,更新次數(shù)21260次,系統(tǒng)集成2059次,支撐發(fā)布版本21套。隨著模式研發(fā)歷史的累積,系統(tǒng)訪問性能開始出現(xiàn)下降。同時,由于服務(wù)端軟件版本沒有升級,一定程度上限制了客戶端軟件版本的兼容性,在新的高性能計算平臺上應(yīng)用存在困難。

發(fā)展我國自主可控的氣象數(shù)值模式,是一個持續(xù)發(fā)展的科學(xué)工程。氣象科學(xué)發(fā)展邁入了地球系統(tǒng)時代,天氣和氣候模式呈現(xiàn)一體化發(fā)展融合的趨勢。天氣、環(huán)境、水文等學(xué)科呈現(xiàn)更廣泛交叉應(yīng)用衍生的趨勢,模式研發(fā)的生態(tài)逐漸建立,模式研究更加開放共享,分布式協(xié)作的需求更加突出。因此,亟待建立一套安全、分布、支持協(xié)作共享的代碼管理系統(tǒng)。同時,隨著地球系統(tǒng)模式發(fā)展、數(shù)值模式預(yù)報的精度與預(yù)報時效的不斷提高,科學(xué)計算規(guī)模呈指數(shù)級增加,異構(gòu)眾核、低耗高效超算架構(gòu)體系[17]成為高性能計算的發(fā)展趨勢,多態(tài)、異構(gòu)[12]的研發(fā)計算平臺需要代碼管理工具具備較高的兼容性,廣泛的支持混合計算架構(gòu)[13]下的研發(fā)交互以及結(jié)合代碼編輯工具的集成使用。

2 METCODE平臺設(shè)計

氣象數(shù)值模式代碼管理平臺METCODE在Git、Docker、Spring、React.js、MySQL、Redis等開源軟件基礎(chǔ)上,進(jìn)行了自主定制開發(fā)形成了國產(chǎn)代碼管理和共享協(xié)作平臺,部署于中國氣象局私有云[18-19],是以B/S為主、C/S為輔的整套應(yīng)用級軟件,支持DevOps[20]研發(fā)運(yùn)維一體化的過程管理。

2.1 平臺功能

METCODE平臺由云端代碼管理共享協(xié)作平臺和云端集成開發(fā)工具組成(圖1)。云端代碼管理共享協(xié)作平臺以Web方式,圍繞研發(fā)流程提供項目管理、分布式代碼管理、文件管理、知識管理及DevOps等功能,以項目為組織單元建立代碼庫,實(shí)現(xiàn)對項目的代碼管理和協(xié)作共享,支持對項目人員及權(quán)限管理、集成共享管理、項目文件、項目任務(wù)、版本發(fā)布等進(jìn)行管理。云端集成開發(fā)環(huán)境支撐協(xié)同編輯的Web在線開發(fā)終端環(huán)境,定制了氣象主要編程語言Fortran語法提示功能。

圖1 METCODE功能結(jié)構(gòu)

METCODE代碼管理共享協(xié)作平臺支持實(shí)現(xiàn)項目生命周期的DevOps一體化全過程管理,可用于氣象各類項目建設(shè)的過程管理和成果管理,包含項目管理、任務(wù)管理、代碼管理、持續(xù)集成、測試管理、部署管理和構(gòu)建管理等功能,實(shí)現(xiàn)了結(jié)合云端開發(fā)環(huán)境提供代碼的在線開發(fā)、編譯、部署。

2.2 氣象數(shù)值模式研發(fā)應(yīng)用設(shè)計

METCODE基于中國氣象局私有云部署,根據(jù)用戶分布式的特點(diǎn),設(shè)計支持氣象部門內(nèi)部用戶、區(qū)域中心的用戶和外部用戶的合作研發(fā)管理。設(shè)立了備份系統(tǒng),對關(guān)鍵數(shù)據(jù)進(jìn)行定時備份以保證應(yīng)用數(shù)據(jù)的安全完整。METCODE提供統(tǒng)一域名訪問Web頁面,支持項目管理和代碼管理、集成交互和共享,發(fā)揮代碼托管和共享的主要功能(B/S方式),研發(fā)人員可在個人電腦、筆記本電腦上通過瀏覽器訪問Web網(wǎng)頁界面或通過可視化客戶端來訪問METCODE代碼庫。 氣象數(shù)值模式一般基于高性能計算機(jī)系統(tǒng)研發(fā)和業(yè)務(wù)運(yùn)行,在中國氣象局“派-曙光”高性能計算機(jī)上部署Git客戶端,通過命令行操作可與METCODE代碼庫交互,開展模式研發(fā)、模式異構(gòu)眾核移植優(yōu)化的代碼管理(C/S方式)。用戶也可通過Git可視化客戶端、集成IDE結(jié)合METCODE域名,實(shí)現(xiàn)代碼管理。為了支持內(nèi)外部用戶合作研發(fā)成果的集成共享,平臺實(shí)現(xiàn)了代碼庫分支級別的數(shù)據(jù)同步功能(圖2)。

圖2 氣象數(shù)值模式研發(fā)應(yīng)用示意

模式研發(fā)用戶在“派-曙光”高性能計算機(jī)上通過命令行訪問METCODE代碼倉庫的工作流程如圖3所示,首先從遠(yuǎn)程代碼庫克隆到高性能計算機(jī)本地工作目錄,或者從遠(yuǎn)程代碼庫拉取代碼到本地代碼庫,并與本地代碼庫進(jìn)行合并。用戶在本地用戶工作目錄下進(jìn)行研發(fā)(增、刪、改),將修改的版本提交到本地代碼庫,文件先被添加到緩存區(qū),再被提交到本地代碼庫,通過推送到METCODE遠(yuǎn)程代碼庫統(tǒng)一管理。

圖3 “派-曙光”訪問流程

3 關(guān)鍵技術(shù)及實(shí)現(xiàn)

3.1 平臺技術(shù)架構(gòu)

METCODE是B/S架構(gòu)的系統(tǒng),基于國產(chǎn)CODING軟件系統(tǒng)定制開發(fā),采用Linux、容器技術(shù),基于微服務(wù)[21]、服務(wù)發(fā)現(xiàn)方式進(jìn)行架構(gòu),具有去中心管理、粒度小、耦合度低、易擴(kuò)展、易維護(hù)等優(yōu)點(diǎn)。系統(tǒng)從上至下分為應(yīng)用層、微服務(wù)層、數(shù)據(jù)庫層和基礎(chǔ)架構(gòu)層(圖4)。基礎(chǔ)架構(gòu)層采用容器技術(shù)編排維護(hù)系統(tǒng),數(shù)據(jù)庫層采用MySQL關(guān)系型數(shù)據(jù)庫存儲項目等通用信息,采用Redis緩存技術(shù)實(shí)現(xiàn)數(shù)據(jù)的高效訪問。微服務(wù)層采用了Git-Server 和Repo Manager實(shí)現(xiàn)代碼倉庫的傳輸服務(wù)和管理,將代碼庫的管理、維護(hù)、備份等功能通過微服務(wù)組件管理,以精細(xì)粒度管理應(yīng)用,耦合了Git本身可獨(dú)立應(yīng)用的特點(diǎn)。基于SSO技術(shù)實(shí)現(xiàn)了用戶統(tǒng)一認(rèn)證和單點(diǎn)登錄集成,應(yīng)用層采用Nginx實(shí)現(xiàn)服務(wù)請求管理,并實(shí)現(xiàn)了分布式架構(gòu)的負(fù)載均衡,基于云架構(gòu)可有效支持高并發(fā)訪問,集成了集成開發(fā)環(huán)境插件及第三方的Jenkins、Sonar等插件。

圖4 METCODE技術(shù)架構(gòu)

3.2 用戶統(tǒng)一認(rèn)證及單點(diǎn)登錄

“派-曙光”高性能計算機(jī)系統(tǒng)設(shè)計有一套規(guī)范的高性能計算機(jī)用戶管理機(jī)制,并建有北京高性能計算機(jī)應(yīng)用中心門戶網(wǎng)站,實(shí)現(xiàn)了用戶的統(tǒng)一管理和單點(diǎn)登錄。為了便捷支撐研發(fā)人員在“派-曙光”上基于METCODE開展模式研發(fā)協(xié)同,實(shí)現(xiàn)了METCODE與北京高性能計算機(jī)應(yīng)用中心的用戶統(tǒng)一認(rèn)證管理和單點(diǎn)登錄[22],采用SSO 認(rèn)證機(jī)制,與北京高性能計算機(jī)應(yīng)用中心 SSO 認(rèn)證中心的接口通信以交換令牌、校驗(yàn)令牌及發(fā)起登錄、注銷請求。認(rèn)證流程如圖5所示,用戶通過向門戶網(wǎng)站發(fā)送登錄請求,門戶網(wǎng)站將該請求轉(zhuǎn)發(fā)到統(tǒng)一認(rèn)證中心進(jìn)行認(rèn)證請求,認(rèn)證中心認(rèn)證通過后,返回認(rèn)證唯一令牌到門戶網(wǎng)站,門戶網(wǎng)站攜帶認(rèn)證中心提供的令牌信息,向被保護(hù)資源發(fā)送訪問請求響應(yīng)。

圖5 METCODE用戶統(tǒng)一認(rèn)證流程

3.3 分支同步技術(shù)

國家級氣象數(shù)值模式研發(fā)主要基于中國氣象局骨干網(wǎng)進(jìn)行,解決了國省合作、外部單位的合作研發(fā)協(xié)同,保障模式代碼庫的安全性,實(shí)現(xiàn)了骨干網(wǎng)代碼庫和互聯(lián)網(wǎng)DMZ區(qū)代碼庫分支級別的同步功能,支持內(nèi)外網(wǎng)研發(fā)成果交互共享。分支同步由內(nèi)網(wǎng)項目管理員發(fā)起,支持雙向分支同步,基于SSH協(xié)議和接口技術(shù)實(shí)現(xiàn)。通過Git獲取訪問分支的公鑰,讀取分支內(nèi)容,基于SSH協(xié)議傳輸至目標(biāo)系統(tǒng),再通過Git操作提交到目標(biāo)項目中,實(shí)現(xiàn)分支信息的同步(圖6)。

圖6 METCODE分支同步示意

4 業(yè)務(wù)應(yīng)用

METCODE在氣象部門內(nèi)得到成功應(yīng)用,支撐了GRAPES全球/區(qū)域模式、GRAPES大氣化學(xué)耦合模式(GRAPES_CUACE)聯(lián)合研發(fā),為氣候海洋模式(MOM5)、模式后處理[23]、模式GPU移植開發(fā)、模式支撐軟件、氣象信息軟件等項目建立了協(xié)同開發(fā)和代碼管理功能。

4.1 代碼庫遷移

為了保障模式研發(fā)歷史的延續(xù)性,實(shí)現(xiàn)新舊系統(tǒng)的無縫過渡遷移,在METCODE建立了GRAPES模式的歷史代碼庫,用于遷移在原有代碼庫中的模式研發(fā)歷史。在不同技術(shù)架構(gòu)的代碼庫中,完整的遷移研發(fā)歷史信息,需從原系統(tǒng)遷出歷史記錄,導(dǎo)入到新的系統(tǒng)保存。基于Git-p4遷移工具進(jìn)行了二次開發(fā),調(diào)用原有代碼庫命令行工具讀取原代碼庫的內(nèi)容,包括用戶信息、路徑信息、文件類型信息、變更信息等,通過METCODE的命令行工具將讀取出的內(nèi)容推送到METCODE的代碼庫中。對原有代碼庫中的路徑信息、文件名、作者信息、代碼正文中的中文進(jìn)行過濾(路徑、文件名、作者信息、文件內(nèi)容),對.docx, .doc, .pdf等二進(jìn)制文件進(jìn)行過濾、正文非轉(zhuǎn)碼處理,實(shí)現(xiàn)了中文UTF8轉(zhuǎn)碼,解決了GRAPES模式研發(fā)歷史遷移中文亂碼的關(guān)鍵問題,完成了GRAPES歷史庫近10年超過10 GB 研發(fā)歷史數(shù)據(jù)的遷移(圖7)。

圖7 模式研發(fā)歷史遷移原理

原有模式代碼管理系統(tǒng)為C/S架構(gòu),模式的研發(fā)歷史均存儲于服務(wù)端元數(shù)據(jù)庫,而基于需求分析中的統(tǒng)計數(shù)字,集成更新次數(shù)只占總更新次數(shù)的10%左右,而約90%的研發(fā)歷史記錄是團(tuán)隊內(nèi)部及個人的研發(fā)記錄,大量的元數(shù)據(jù)必然導(dǎo)致系統(tǒng)性能降低,同時也不利于保持模式研發(fā)歷史脈絡(luò)的清晰。基于METCODE代碼管理平臺,利用Git的分布式概念,將個人研發(fā)記錄保存在本地庫,METCODE遠(yuǎn)程庫僅保存團(tuán)隊以上的研發(fā)成果和歷史,能夠減少大量個人研發(fā)記錄,優(yōu)化了代碼庫的管理,更好地支撐模式持續(xù)發(fā)展。

4.2 系統(tǒng)性能

基于生產(chǎn)環(huán)境采用壓力測試工具模擬200并發(fā)數(shù)對METCODE的任務(wù)列表訪問、任務(wù)創(chuàng)建、代碼庫訪問、代碼目錄瀏覽、代碼源文件獲取等關(guān)鍵應(yīng)用場景的指令執(zhí)行、響應(yīng)時間、網(wǎng)絡(luò)吞吐和網(wǎng)絡(luò)收發(fā)速度進(jìn)行了壓力測試。表1測試結(jié)果顯示各類操作響應(yīng)時間平均小于5 s,性能滿足了模式分布式研發(fā)的需求。

表1 METCODE性能測試

5 結(jié)論

在氣象數(shù)值模式發(fā)展的需求驅(qū)動下,設(shè)計建立了基于Git的國有自主知識產(chǎn)權(quán)METCODE代碼管理協(xié)作共享平臺。METCODE采用高可靠的架構(gòu)設(shè)計、分布式的部署,能夠安全、靈活地支撐內(nèi)部、外部及合作研發(fā)的需求。METCODE現(xiàn)已支持了100多個項目的管理,應(yīng)用單位覆蓋國家氣象中心、國家氣候中心、中國氣象科學(xué)研究院、國家氣象信息中心等業(yè)務(wù)科研單位,以及部分合作單位。

目前系統(tǒng)在企業(yè)級管理方面還需加強(qiáng),如對多層級單位組織架構(gòu)的支持和分級管理,將能更好地支撐中國氣象局各類大型、中型和小型等各類項目的靈活管理。METCODE隨著Git的深入發(fā)展具有更加廣泛的應(yīng)用前景,未來將進(jìn)一步完善,支撐全部氣象數(shù)值模式的研發(fā)管理,并推廣應(yīng)用到氣象軟件系統(tǒng)項目的代碼與過程管理。

猜你喜歡
管理
棗前期管理再好,后期管不好,前功盡棄
《水利建設(shè)與管理》征訂啟事
聆聽兩會
——關(guān)注自然資源管理
2020年《水利建設(shè)與管理》征稿函
運(yùn)行管理
管理就是溝通
中國制筆(2019年1期)2019-08-28 10:07:26
加強(qiáng)土木工程造價的控制與管理
如何加強(qiáng)土木工程造價的控制與管理
解秘眼健康管理
“這下管理創(chuàng)新了!等7則
雜文月刊(2016年1期)2016-02-11 10:35:51
主站蜘蛛池模板: 国产黄网永久免费| 四虎亚洲国产成人久久精品| 国产精女同一区二区三区久| 蜜桃臀无码内射一区二区三区| 怡春院欧美一区二区三区免费| 黄色免费在线网址| 亚洲人在线| 亚洲第一视频区| 国产永久免费视频m3u8| 国产欧美亚洲精品第3页在线| 欧美69视频在线| 亚洲av无码专区久久蜜芽| 久久久精品国产亚洲AV日韩| 日本高清在线看免费观看| 青青国产成人免费精品视频| 国产精品国产三级国产专业不| 美女高潮全身流白浆福利区| 国产波多野结衣中文在线播放| 国产一级视频在线观看网站| 国产黑丝一区| 欧美日韩高清在线| 亚洲黄网在线| 多人乱p欧美在线观看| 九色在线观看视频| 欧美第二区| 囯产av无码片毛片一级| 毛片a级毛片免费观看免下载| 亚洲国产日韩欧美在线| 性做久久久久久久免费看| 亚洲欧美日韩色图| 精品国产毛片| 亚洲日本韩在线观看| 色婷婷啪啪| 国产噜噜噜视频在线观看 | 国产高潮流白浆视频| 久久国产拍爱| 2022国产无码在线| 欧美在线视频a| 亚洲黄色激情网站| 欧美成人精品欧美一级乱黄| 国产久操视频| 免费在线色| 国产精品无码影视久久久久久久| 最新日本中文字幕| 日本不卡在线| 伊人久久青草青青综合| AV网站中文| 熟妇丰满人妻| 亚洲黄色网站视频| 无码AV高清毛片中国一级毛片| 国产精品片在线观看手机版 | 亚洲有码在线播放| 国产夜色视频| 国产69囗曝护士吞精在线视频| 国产一二三区视频| 天堂网国产| 欧美伊人色综合久久天天| 老司机午夜精品视频你懂的| 久久精品人人做人人| 免费aa毛片| 欧美日韩亚洲综合在线观看| 国产一区二区视频在线| 免费在线一区| 久久无码av三级| 国产免费久久精品99re不卡| 亚洲小视频网站| 国产亚洲高清在线精品99| 国产成人久久777777| 精品视频一区二区三区在线播| 男女男免费视频网站国产| 欧美激情视频二区三区| 日韩不卡高清视频| 国产视频大全| 免费看的一级毛片| 亚洲熟女偷拍| 色吊丝av中文字幕| 国产高清在线观看| 亚洲欧美自拍一区| 国产精品毛片一区视频播| 久久动漫精品| 久久综合丝袜日本网| AⅤ色综合久久天堂AV色综合|