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

一種基于Jenkins提升軟件產(chǎn)品安裝服務(wù)質(zhì)量的自動構(gòu)建系統(tǒng)

2018-01-02 08:44:50張高毓張建強
軟件 2017年12期
關(guān)鍵詞:系統(tǒng)

張高毓,張建強

(中國移動通信集團設(shè)計院有限公司山東分公司,山東 濟南 250001)

一種基于Jenkins提升軟件產(chǎn)品安裝服務(wù)質(zhì)量的自動構(gòu)建系統(tǒng)

張高毓,張建強

(中國移動通信集團設(shè)計院有限公司山東分公司,山東 濟南 250001)

隨著《SmartBudget通信工程概預(yù)算軟件》用戶數(shù)的不斷增長和軟件版本的不斷升級,傳統(tǒng)手動打包的方式在效率和正確率上的弊端越來越突出,已經(jīng)不能滿足用戶對安裝服務(wù)質(zhì)量的要求。針對該問題通過構(gòu)建一種基于 Jenkins的自動構(gòu)建系統(tǒng),可以提供更高質(zhì)量的安裝服務(wù),通過與傳統(tǒng)手動打包方式進行對比,自動構(gòu)建系統(tǒng)在效率和正確率上的優(yōu)勢更加突出。

Jenkins;自動構(gòu)建;手動打包;安裝服務(wù)質(zhì)量

0 引言

為了提高設(shè)計效率,方便設(shè)計人員正確編制預(yù)算[1],中國移動通信集團設(shè)計院有限公司山東分公司全力研發(fā)《SmartBudget通信工程概預(yù)算軟件》[2],以下均簡稱(概預(yù)算軟件)。概預(yù)算軟件一直致力于為用戶提供簡潔、高效和正確的用戶體驗,并為達到該需求不斷進行更新和優(yōu)化,從開發(fā)環(huán)境、開發(fā)框架和數(shù)據(jù)庫均進行了更新和性能提升。

然而,概預(yù)算軟件一直以來采用手動打包的方式為用戶提供安裝程序,這種方式嚴重影響了安裝程序的正確率和打包效率,在時間緊任務(wù)重的情況還會造成開發(fā)人員的資源浪費。基于這種形勢,如何充分發(fā)揮所有開發(fā)人員的能動性,實現(xiàn)概預(yù)算軟件的“四化”,即模塊化、數(shù)字化、自動化和智能化,提高打包效率和軟件版本正確性,實現(xiàn)開發(fā)人員最大價值,進而提升軟件安裝服務(wù)質(zhì)量和運維支撐,已經(jīng)成為急需解決的問題。

本文介紹了一種基于Jenkins的自動構(gòu)建系統(tǒng),實現(xiàn)軟件產(chǎn)品的自動打包,并保證安裝程序的正確性,可以為用戶提供更高質(zhì)量的安裝服務(wù)。另外,通過與傳統(tǒng)手動打包方式在性能上的對比,進一步突出自動構(gòu)建系統(tǒng)的主要優(yōu)勢。

1 傳統(tǒng)手動打包存在的問題

隨著概預(yù)算軟件在中國移動通信集團設(shè)計院有限公司內(nèi)部以及其他通信設(shè)計企業(yè)的廣泛使用,其用戶數(shù)發(fā)生了巨大的變化,用戶安裝使用的反饋也隨之增多,其安裝服務(wù)質(zhì)量已經(jīng)成為衡量其可用性的重要標(biāo)準(zhǔn)。

概預(yù)算軟件共有三個版本,即試用版、設(shè)計院內(nèi)部版和商用版,且每個版本都包含全量安裝包和升級包兩個版本包供用戶選擇使用,所以在進行打包時,需至少進行6次打包。傳統(tǒng)手動打包的流程如圖1所示,開發(fā)人員需要完成代碼的編寫并通過SVN上傳代碼,利用打包軟件NSIS實現(xiàn)手動打包,然后安裝軟件并進行測試,以保證其正確性,測試無誤后最終發(fā)布軟件。

通過圖1完成三個版本的打包,需要重復(fù)進行多次相同操作,而這些操作基本都由開發(fā)人員人工完成,如果在時間緊任務(wù)重的情況下,正確率和效率會大大降低,也造成軟件發(fā)布的速度嚴重減慢,重復(fù)的打包工作無疑又給開發(fā)人員增加了額外的工作量。

圖1 手動打包流程圖Fig.1 The manual packing flow chart

另外,在軟件集中發(fā)布版本期間,為了盡早滿足用戶所需,在最短的時間內(nèi)開發(fā)出完全符合工信部新標(biāo)準(zhǔn)的概預(yù)算軟件,必須持續(xù)為用戶提供試用版本,在試用過程中發(fā)新問題,并不斷優(yōu)化,最緊張的情況一周可能發(fā)布3-4個試用版本。

在這種情況下采用手動打包方式,每次打包時間就要花費半個小時,在緊張的開發(fā)階段,半個小時開發(fā)人員可以完成一個小功能的開發(fā)、一個BUG修復(fù)、一篇說明文檔的編寫等,這在無形中給開發(fā)人員增加了工作量,也增加了開發(fā)人員的心理壓力。另外,由于開發(fā)人員有限,在最緊張時期,為了滿足用戶需求,可能需要多個開發(fā)人員合理完成三個版本的更新,這樣更會造成資源的浪費

2 基于Jenkins的自動構(gòu)建系統(tǒng)

2.1 Jenkins簡介

Jenkins[3]是一個開源軟件項目,旨在提供一個開放易用的軟件平臺,使持續(xù)集成[4]變成可能經(jīng)濟界,是基于Java開發(fā)的一種持續(xù)集成工具[5],用于監(jiān)控秩序重復(fù)的工作,包括:持續(xù)的軟件版本發(fā)布/測試項目和監(jiān)控外部調(diào)用執(zhí)行的工作。

另外,Jenkins支持一系列SCM工具,包括Git、Mercurial、Subversion以及Clearcase等。用戶可以以該項目為基礎(chǔ)構(gòu)建Apache Ant以及Apache Maven外加其它shell腳本,或者利用Windows批處理文件完成各類預(yù)/后構(gòu)建操作。Jenkins同時也可以作為來自第三方供應(yīng)商的服務(wù)方案,更適合運行在自己的服務(wù)器之上,不僅能夠保證對基礎(chǔ)設(shè)施問題擁有全面控制能力,同時也有助于企業(yè)客戶保障軟件安全水平。

2.2 Jenkins搭建[6]

1. Jenkins安裝和配置

安裝:官網(wǎng)下載JDK和Jenkins,并完成安裝,Jenkins安裝完成后,需要在管理工具->服務(wù)中對Jenkins服務(wù)進行啟動,并將Jenkins配置到apache中,通過瀏覽器進行訪問。

配置:在系統(tǒng)管理->管理插件下,根據(jù)項目需要安裝MSBuild和Subversion插件,以保障后面配置的順利進行。

2. 建立SmartBudget項目

新建:點擊新建,輸入項目名稱,完成SmartBudget項目的創(chuàng)建。

配置:對 SmartBudget項目進行配置,包括項動檢索更新的時間。

目名稱、描述,并設(shè)置SVN源代碼的管理路徑。為了實現(xiàn)項目的自動構(gòu)建,需要配置觸發(fā)器,設(shè)置自

SmartBudget項目構(gòu)建完成后的界面如圖 2所示,可以查看項目上次構(gòu)建成功時間、上次構(gòu)建失敗時間、上次構(gòu)建所使用的時間,另外可以查看console、工作空間等基礎(chǔ)信息和配置信息。

2.3 自動構(gòu)建SmartBudget項目

SmartBudget項目創(chuàng)建以后,需要根據(jù)概預(yù)算軟件的獨特特性,通過腳本對項目進行深入配置。

1. 自動打包:采用固定的向?qū)0澹ㄟ^編寫腳本auto_package.bat獲取每個版本的基本信息,進而更新向?qū)0澹罱K打包生成實際使用的安裝程序。如圖2所示。

圖2 Smartbudget項目界面Fig.2 The smartbudget UI

圖 自動打包腳本Fig.3 Automatic packaging script

2. 版本切換:通過編寫腳本 change_version.bat,實現(xiàn)對三個版本的自動切換。如圖3所示。

3. 插件檢測:概預(yù)算軟件的正常運行需要用戶操作系統(tǒng)中安裝.NET 4.5.2和VC++2015兩個插件。通過編寫腳本auto_package.bat,自動檢測目標(biāo)系統(tǒng)是否安裝這兩個插件,如果沒有檢測到相應(yīng)的注冊表信息,則直接運行安裝程序進行安裝,如果成功檢測到相應(yīng)注冊表信息,則忽略插件安裝,繼續(xù)完成概預(yù)算軟件的安裝。如圖4所示。

2.4 自動構(gòu)建系統(tǒng)[7]

在Jenkins的基礎(chǔ)上,通過腳本文件進行二次開發(fā),完成自動構(gòu)建系統(tǒng)的建設(shè),配置概預(yù)算軟件項目(SmartBudget),搭配SVN代碼管理工具實現(xiàn)軟件的版本更新和自動打包。概預(yù)算軟件通過自動構(gòu)建系統(tǒng)完成版本發(fā)布的流程如圖5所示。

圖4 版本切換腳本Fig.4 Versions switching script

圖5 插件檢測腳本Fig.5 Plug-in Dectection Script

圖6 自動構(gòu)建系統(tǒng)軟件發(fā)布流程圖Fig.6 The flow chart of automatic construction system

自動構(gòu)建系統(tǒng)除了可以完成軟件版本的自動更新、自動打包,還可以通過控制臺輸出直接監(jiān)控打包流程,對打包過程中或者代碼中的錯誤進行提示,使打包流程更加直觀,方便后期查閱。另外,自動構(gòu)建系統(tǒng)可以直接查看每次 SVN代碼上傳的修改記錄,方便開發(fā)人員對代碼進行管理。除此之外還可以設(shè)置自動構(gòu)建的時間,通過循環(huán)對SVN進行監(jiān)控確定是否自動構(gòu)建,例如將監(jiān)控時間設(shè)置為15分鐘,則系統(tǒng)會每15分鐘檢查SVN是否存在代碼上傳,如果存在則直接進行自動構(gòu)建(版本更新和自動打包),否則再等待下一個15分鐘的檢查,如此循環(huán)往復(fù)。

通過自動構(gòu)建系統(tǒng)可以充分節(jié)約人工,方便開發(fā)人員將更多的經(jīng)歷集中到軟件的應(yīng)急開發(fā)和維護當(dāng)中,也提高了整個項目的開發(fā)效率,另外,自動構(gòu)建系統(tǒng)生成正確的軟件版本也同時提升了概預(yù)算軟件的安裝服務(wù)質(zhì)量。

3 自動構(gòu)建系統(tǒng)與手動打包方式對比

自動構(gòu)建系統(tǒng)和手動打包兩種方式性能上存在明顯差異,下面從兩個方面對這兩種方式進行比較。

3.1 打包時間

一次自動構(gòu)建所需時間如圖 7所示,時長為2分57秒,根據(jù)每次代碼更新內(nèi)容的多少自動構(gòu)建的時間也會有不同,但一般都在5分鐘以內(nèi)。

采用手動打包的方式,新代碼并打包一次一般需要15分鐘,打包六次,并且在不出現(xiàn)意外的情況下也要至少90分鐘。

自動構(gòu)建和手動打包兩種方式在打包時間上的對比圖如圖8所示。可以看到自動構(gòu)建系統(tǒng)打包時間只有手動打包時間的1/18,其速度大大提升。

3.2 打包正確率

通過手動打包的方式,由于人工干預(yù),會在不經(jīng)意間選錯選項,或者遺漏某些內(nèi)容,造成打包生成的版本不能正常使用,從而需要重新打包,其正確性在一定程度上是有風(fēng)險的,正確率在80%左右。

圖7 一次自動構(gòu)建完成顯示界面Fig.7 The competion UI for one building

圖8 自動構(gòu)建和手動打包一次時間對比圖Fig.8 Automatic construction system and manual packing comparison diagram

而自動構(gòu)建系統(tǒng)生成的打包文件,只要前期在配置打包數(shù)據(jù),編寫打包腳本時保證正確,在后期的自動打包過程中就可以保證100%的正確性。

通過對自動構(gòu)建系統(tǒng)和手動打包兩種方式在打包時間和打包正確率兩種性能上的比較發(fā)現(xiàn),自動構(gòu)建系統(tǒng)在打包時間和正確率上都遠遠優(yōu)于手動打包方式,通過自動構(gòu)建系統(tǒng)打包生成的概預(yù)算軟件的正確率的保證,更能提升軟件的安裝服務(wù)質(zhì)量。

4 總結(jié)

基于 Jenkins的自動構(gòu)建系統(tǒng)既能保證打包的正確性、完整性,還可以為開發(fā)人員提供更多的額外支撐,只需要簡單的配置和腳本編寫就可以實現(xiàn)復(fù)雜多變的功能,將原本 1.5小時一次的安裝服務(wù)包手工打包時間,直接替換為無需人工干預(yù)的自動打包,在消除大量人工操作時間的同時,又提升了打包過程的標(biāo)準(zhǔn)化程度,最終為用戶提供了高質(zhì)量的概預(yù)算軟件的安裝服務(wù)。

[1] 中華人民共和國工業(yè)和信息化部. 《信息通信建設(shè)工程預(yù)算定額》[S]. 2017.2.

[2] 中華人民共和國工業(yè)和信息化部. 《信息通信建設(shè)工程概預(yù)算編制規(guī)程》[S]. 2017.2.

[3] Jobn Ferguson Smart, 郝樹偉, 于鎮(zhèn)苓譯. Jenkins權(quán)威指南[M]. 電子工業(yè)出版社. 2016.

[4] 徐仕成. 持續(xù)集成在現(xiàn)代軟件開發(fā)中的應(yīng)用與研究[D].中南大學(xué), 2007.

[5] 吳文平. 持續(xù)集成在項目開發(fā)中的應(yīng)用研究[J]. 硅谷, 2011,15.

[6] 陶鎮(zhèn)威. 基于Jenkins的持續(xù)集成研究與應(yīng)用[D]. 華南理工大學(xué), 2012.

[7] Joe Enos. 自動化構(gòu)建: 一致性關(guān)鍵之道[EB/OL]. 2013.

[8] 徐萌. 持續(xù)集成在現(xiàn)代企業(yè)軟件開發(fā)中的研究與實現(xiàn)[D].中國海洋大學(xué), 2013.

[9] 張力文. 基于Jenkins的項目持續(xù)集成方案研究與實現(xiàn)[D].西安交通大學(xué), 2017.

[10] 卞孟春. 基于Jenkins的持續(xù)集成方案設(shè)計與實現(xiàn)[D]. 中國科學(xué)院大學(xué), 2014.

[11] 段清蛇, 李筠. 基于Jenkins的持續(xù)集成測試環(huán)境插件開發(fā)[M]. 段清蛇李筠. 信息技術(shù), 2013.

An Automatic Construction System Based on Jenkins to Improve The Quality of Installation Service for Software Product

ZHANG Gao-yu, ZHANG Jian-qiang
(China Mobile Group Design Institute Co., Ltd. Shandong Branch, JiNan 250001, China)

As the user growth and version updating ceaselessly of the SmartBudget software, the defects of traditional manual packing on the efficiency and accuracy was more and more outstanding. What's more, this way already couldn't meet the requirements of service qulity from users. An automatic construction system based on Jenkins, can provide a higher quality of installation services. In addition through the comparation with the traditional manual packaging, automatic construction system can provide more advantages in efficiency and accuracy.

Jenkins; Construction automatically; Package manually; The quality of installation servic

TP311

A

10.3969/j.issn.1003-6970.2017.12.033

本文著錄格式:張高毓,張建強. 一種基于Jenkins提升軟件產(chǎn)品安裝服務(wù)質(zhì)量的自動構(gòu)建系統(tǒng)[J]. 軟件,2017,38(12):175-179

張高毓(1990-),中國移動通信集團設(shè)計院有限公司山東分公司,咨詢設(shè)計師,主要負責(zé)咨詢設(shè)計平臺工具和軟件的研發(fā)和支撐;張建強(1974-),中國移動通信集團設(shè)計院有限公司山東分公司,高級咨詢設(shè)計師,研發(fā)項目負責(zé)人。

猜你喜歡
系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
基于UG的發(fā)射箱自動化虛擬裝配系統(tǒng)開發(fā)
半沸制皂系統(tǒng)(下)
FAO系統(tǒng)特有功能分析及互聯(lián)互通探討
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統(tǒng) 德行天下
PLC在多段調(diào)速系統(tǒng)中的應(yīng)用
主站蜘蛛池模板: 国产男人天堂| 国产福利一区视频| 国产精品久久久免费视频| 国产美女久久久久不卡| 国产男人的天堂| 国产91高跟丝袜| 伊人久久婷婷| h视频在线观看网站| 好吊日免费视频| 9久久伊人精品综合| 亚洲bt欧美bt精品| 亚洲黄色片免费看| 亚洲综合天堂网| a级毛片免费网站| 天天做天天爱天天爽综合区| 欧美一级片在线| 四虎成人精品在永久免费| 久久精品国产精品国产一区| 999在线免费视频| 欧美在线国产| 亚洲国产无码有码| 91精品日韩人妻无码久久| 日韩国产黄色网站| 2022国产无码在线| 日本道综合一本久久久88| 2021国产精品自拍| 啪啪免费视频一区二区| 欧美爱爱网| 伊人久久综在合线亚洲91| 四虎精品黑人视频| 日韩一级二级三级| 久久不卡国产精品无码| 欧美亚洲网| 9啪在线视频| 亚洲一区二区黄色| 国产毛片高清一级国语 | 国产三区二区| 亚洲美女一区| 色婷婷亚洲综合五月| 国产精品亚欧美一区二区| 99这里精品| 伊人激情久久综合中文字幕| 国产午夜无码专区喷水| 国产老女人精品免费视频| 日韩美毛片| 波多野结衣一二三| 一本久道久久综合多人 | 久久福利片| 另类重口100页在线播放| av在线手机播放| 无码精品福利一区二区三区| 成年看免费观看视频拍拍| 制服丝袜无码每日更新| 国产91全国探花系列在线播放| 永久在线精品免费视频观看| 欧美日本视频在线观看| 一区二区在线视频免费观看| 久久99国产视频| 国产草草影院18成年视频| 久草国产在线观看| 欧美精品1区| 手机成人午夜在线视频| a欧美在线| 国内精品小视频在线| 午夜精品久久久久久久99热下载 | 国产网站一区二区三区| 免费一极毛片| 在线观看亚洲成人| 国产激情第一页| 国产午夜福利在线小视频| 欧美在线综合视频| 东京热一区二区三区无码视频| 亚洲国产理论片在线播放| 日本人真淫视频一区二区三区| 黄色a一级视频| 欧美成人综合视频| 日本少妇又色又爽又高潮| 57pao国产成视频免费播放| 欧美午夜小视频| 国产免费怡红院视频| 一区二区三区四区在线| 伊人欧美在线|