( 1. 地圖生活(北京)信息技術有限公司,北京 100015; 2. 中國(guó)科學院 地(dì / de)理科學與資源研究所,北京 100010)
論文來(lái)源:《測繪與空間地(dì / de)理信息》第39卷 第12期 2016年12月
摘要(yào / yāo):随着軟件企業研發産品規模的(de)擴大(dà)和(hé / huò)功能的(de)成熟,軟件研發和(hé / huò)維護所需的(de)計算資源逐漸增多,軟件産品測試也(yě)占用大(dà)量計算資源。但是(shì),物理節點的(de)計算能力受到(dào) CPU 大(dà)小的(de)限制,且産品測試并非時(shí)刻發生。因此,爲(wéi / wèi)充分利用計算資源,本文引入雲計算技術,搭建了(le/liǎo)軟件持續集成與自動化測試系統。目前,該系統已成功應用于(yú)國(guó)内 GIS 企業的(de)産品研發與維護應用實踐,不(bù)僅可以(yǐ)保障軟件質量,還可避免計算資源的(de)閑置,降低能耗,有利于(yú)減少企業成本,并有效降低環境污染風險。
關鍵詞: GIS軟件,自動化測試,持續集成系統,雲計算,虛拟化
随着信息技術不(bù)斷創新發展和(hé / huò)變化多樣的(de)用戶需求,單一(yī / yì /yí)的(de)軟件産品往往無法滿足現實應用中的(de)需要(yào / yāo)。因此,軟件企業的(de)産品一(yī / yì /yí)般呈規模化、成熟化發展,除了(le/liǎo)僅産品類型逐漸增多之(zhī)外,同一(yī / yì /yí)類型還可能包含處在(zài)軟件生命周期不(bù)同階段的(de)産品形态[1]。産品規模的(de)擴大(dà)和(hé / huò)産品功能的(de)成熟,使得僅依靠有限地(dì / de)人(rén)工進行軟件測試的(de)手段變得捉襟見肘,不(bù)僅在(zài)測試時(shí)難以(yǐ)全面覆蓋軟件産品的(de)所有功能模塊,測試效率低下,而(ér)且無法實時(shí)發現代碼缺陷,及時(shí)交付出(chū)優質的(de)軟件産品或軟件補丁包,影響用戶滿意度[1 - 2]。
軟件持續集成與自動化測試可解決上(shàng)述問題。這(zhè)是(shì)敏捷軟件研發方法的(de)一(yī / yì /yí)種有效的(de)實踐。持續集成可以(yǐ)提高研發人(rén)員的(de)工作效率,及時(shí)響應用戶缺陷報告,保障各類型軟件産品處于(yú)穩定可控的(de)狀态[3]。例如,對于(yú)大(dà)型軟件産品 Visual Studio Tools for Office 的(de)研發團隊而(ér)言,應用持續集成後,其代碼檢查過程所花費的(de)時(shí)間從兩個(gè)多小時(shí)降低至不(bù)到(dào)一(yī / yì /yí)個(gè)小時(shí)[4]。
由于(yú)各類型産品研發和(hé / huò)維護的(de)需要(yào / yāo),持續集成與自動化測試系統一(yī / yì /yí)般 7 × 24 h 随時(shí)待命。但是(shì),各類型産品對計算資源的(de)需求并不(bù)一(yī / yì /yí)緻。對于(yú)處在(zài)維護階段的(de)産品,一(yī / yì /yí)般是(shì)在(zài)接到(dào)用戶缺陷報告時(shí),相應産品的(de)研發人(rén)員才會修改代碼,觸發持續集成與自動化測試系統。由用戶觸發的(de)産品維護并非時(shí)刻發生,但系統計算資源卻随時(shí)準備供其使用。對于(yú)在(zài)研産品,即使一(yī / yì /yí)天内多次集成并進行自動化構建,也(yě)不(bù)會占用系統所有的(de)計算資源,否則其他(tā)産品将面臨很大(dà)的(de)計算壓力。這(zhè)些情況,造成系統計算資源的(de)閑置,而(ér)且浪費能耗,加重企業成本,增加環境污染的(de)風險。
爲(wéi / wèi)解決上(shàng)述問題,本文引入了(le/liǎo)雲計算技術。雲計算的(de)虛拟化技術是(shì)一(yī / yì /yí)種資源管理技術,它将物理計算資源 ( 如 CPU、内存、存儲和(hé / huò)網絡) 進行抽象和(hé / huò)轉換,允許在(zài)一(yī / yì /yí)個(gè)物理節點上(shàng)同時(shí)運行多個(gè)相互隔離虛拟計算節點。虛拟化技術還是(shì)一(yī / yì /yí)種高效利用物理資源的(de)技術,它可以(yǐ)實現資源池化管理,并可根據實際應用需求進行資源重新分配,充分發揮物理計算資源的(de)潛能[5]。
本文利用 OpenStack[6]開源雲平台,利用其虛拟化技術和(hé / huò)資源池化技術,搭建了(le/liǎo)軟件持續集成和(hé / huò)自動化測試系統,用于(yú)規模化的(de)軟件産品研發和(hé / huò)維護。該系統不(bù)再随時(shí)爲(wéi / wèi)所有産品都預留物理計算資源,隻在(zài)有計算需求時(shí),才去啓動虛拟計算節點,執行代碼的(de)集成測試,既節約了(le/liǎo)成本,又可保障軟件質量,一(yī / yì /yí)舉兩得。
更多内容請點擊下方的(de)PDF下載