基于云計算的 GIS 軟件持續(xù)集成應(yīng)用研究

蔡文文,王少華,鐘陽,鐘耳順,李少華

( 1. 北京超圖軟件股份有限公司,北京 100015; 2. 中國科學(xué)院 地理科學(xué)與資源研究所,北京 100010)

論文來源:《測繪與空間地理信息》第39卷 第12期 2016年12月

摘要:隨著軟件企業(yè)研發(fā)產(chǎn)品規(guī)模的擴大和功能的成熟,軟件研發(fā)和維護所需的計算資源逐漸增多,軟件產(chǎn)品測試也占用大量計算資源。但是,物理節(jié)點的計算能力受到 CPU 大小的限制,且產(chǎn)品測試并非時刻發(fā)生。因此,為充分利用計算資源,本文引入云計算技術(shù),搭建了軟件持續(xù)集成與自動化測試系統(tǒng)。目前,該系統(tǒng)已成功應(yīng)用于國內(nèi) GIS 企業(yè)的產(chǎn)品研發(fā)與維護應(yīng)用實踐,不僅可以保障軟件質(zhì)量,還可避免計算資源的閑置,降低能耗,有利于減少企業(yè)成本,并有效降低環(huán)境污染風(fēng)險。

關(guān)鍵詞: GIS軟件,自動化測試,持續(xù)集成系統(tǒng),云計算,虛擬化

0 引 言

隨著信息技術(shù)不斷創(chuàng)新發(fā)展和變化多樣的用戶需求,單一的軟件產(chǎn)品往往無法滿足現(xiàn)實應(yīng)用中的需要。因此,軟件企業(yè)的產(chǎn)品一般呈規(guī)?;?、成熟化發(fā)展,除了僅產(chǎn)品類型逐漸增多之外,同一類型還可能包含處在軟件生命周期不同階段的產(chǎn)品形態(tài)[1]。產(chǎn)品規(guī)模的擴大和產(chǎn)品功能的成熟,使得僅依靠有限地人工進行軟件測試的手段變得捉襟見肘,不僅在測試時難以全面覆蓋軟件產(chǎn)品的所有功能模塊,測試效率低下,而且無法實時發(fā)現(xiàn)代碼缺陷,及時交付出優(yōu)質(zhì)的軟件產(chǎn)品或軟件補丁包,影響用戶滿意度[1 - 2]。

軟件持續(xù)集成與自動化測試可解決上述問題。這是敏捷軟件研發(fā)方法的一種有效的實踐。持續(xù)集成可以提高研發(fā)人員的工作效率,及時響應(yīng)用戶缺陷報告,保障各類型軟件產(chǎn)品處于穩(wěn)定可控的狀態(tài)[3]。例如,對于大型軟件產(chǎn)品 Visual Studio Tools for Office 的研發(fā)團隊而言,應(yīng)用持續(xù)集成后,其代碼檢查過程所花費的時間從兩個多小時降低至不到一個小時[4]。

由于各類型產(chǎn)品研發(fā)和維護的需要,持續(xù)集成與自動化測試系統(tǒng)一般 7 × 24 h 隨時待命。但是,各類型產(chǎn)品對計算資源的需求并不一致。對于處在維護階段的產(chǎn)品,一般是在接到用戶缺陷報告時,相應(yīng)產(chǎn)品的研發(fā)人員才會修改代碼,觸發(fā)持續(xù)集成與自動化測試系統(tǒng)。由用戶觸發(fā)的產(chǎn)品維護并非時刻發(fā)生,但系統(tǒng)計算資源卻隨時準(zhǔn)備供其使用。對于在研產(chǎn)品,即使一天內(nèi)多次集成并進行自動化構(gòu)建,也不會占用系統(tǒng)所有的計算資源,否則其他產(chǎn)品將面臨很大的計算壓力。這些情況,造成系統(tǒng)計算資源的閑置,而且浪費能耗,加重企業(yè)成本,增加環(huán)境污染的風(fēng)險。

為解決上述問題,本文引入了云計算技術(shù)。云計算的虛擬化技術(shù)是一種資源管理技術(shù),它將物理計算資源 ( 如 CPU、內(nèi)存、存儲和網(wǎng)絡(luò)) 進行抽象和轉(zhuǎn)換,允許在一個物理節(jié)點上同時運行多個相互隔離虛擬計算節(jié)點。虛擬化技術(shù)還是一種高效利用物理資源的技術(shù),它可以實現(xiàn)資源池化管理,并可根據(jù)實際應(yīng)用需求進行資源重新分配,充分發(fā)揮物理計算資源的潛能[5]。

本文利用 OpenStack[6]開源云平臺,利用其虛擬化技術(shù)和資源池化技術(shù),搭建了軟件持續(xù)集成和自動化測試系統(tǒng),用于規(guī)模化的軟件產(chǎn)品研發(fā)和維護。該系統(tǒng)不再隨時為所有產(chǎn)品都預(yù)留物理計算資源,只在有計算需求時,才去啟動虛擬計算節(jié)點,執(zhí)行代碼的集成測試,既節(jié)約了成本,又可保障軟件質(zhì)量,一舉兩得。

更多內(nèi)容請點擊下方的PDF下載