亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2018-01-02 08:44:50張高毓張建強(qiáng)
        軟件 2017年12期
        關(guān)鍵詞:開(kāi)發(fā)人員概預(yù)算插件

        張高毓,張建強(qiáng)

        (中國(guó)移動(dòng)通信集團(tuán)設(shè)計(jì)院有限公司山東分公司,山東 濟(jì)南 250001)

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

        張高毓,張建強(qiáng)

        (中國(guó)移動(dòng)通信集團(tuán)設(shè)計(jì)院有限公司山東分公司,山東 濟(jì)南 250001)

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

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

        0 引言

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

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

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

        1 傳統(tǒng)手動(dòng)打包存在的問(wèn)題

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

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

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

        圖1 手動(dòng)打包流程圖Fig.1 The manual packing flow chart

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

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

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

        2.1 Jenkins簡(jiǎn)介

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

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

        2.2 Jenkins搭建[6]

        1. Jenkins安裝和配置

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

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

        2. 建立SmartBudget項(xiàng)目

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

        配置:對(duì) SmartBudget項(xiàng)目進(jìn)行配置,包括項(xiàng)動(dòng)檢索更新的時(shí)間。

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

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

        2.3 自動(dòng)構(gòu)建SmartBudget項(xiàng)目

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

        1. 自動(dòng)打包:采用固定的向?qū)0?,通過(guò)編寫腳本auto_package.bat獲取每個(gè)版本的基本信息,進(jìn)而更新向?qū)0?,最終打包生成實(shí)際使用的安裝程序。如圖2所示。

        圖2 Smartbudget項(xiàng)目界面Fig.2 The smartbudget UI

        圖 自動(dòng)打包腳本Fig.3 Automatic packaging script

        2. 版本切換:通過(guò)編寫腳本 change_version.bat,實(shí)現(xiàn)對(duì)三個(gè)版本的自動(dòng)切換。如圖3所示。

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

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

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

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

        圖5 插件檢測(cè)腳本Fig.5 Plug-in Dectection Script

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

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

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

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

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

        3.1 打包時(shí)間

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

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

        自動(dòng)構(gòu)建和手動(dòng)打包兩種方式在打包時(shí)間上的對(duì)比圖如圖8所示??梢钥吹阶詣?dòng)構(gòu)建系統(tǒng)打包時(shí)間只有手動(dòng)打包時(shí)間的1/18,其速度大大提升。

        3.2 打包正確率

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

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

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

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

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

        4 總結(jié)

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

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

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

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

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

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

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

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

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

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

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

        [11] 段清蛇, 李筠. 基于Jenkins的持續(xù)集成測(cè)試環(huán)境插件開(kāi)發(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

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

        張高毓(1990-),中國(guó)移動(dòng)通信集團(tuán)設(shè)計(jì)院有限公司山東分公司,咨詢?cè)O(shè)計(jì)師,主要負(fù)責(zé)咨詢?cè)O(shè)計(jì)平臺(tái)工具和軟件的研發(fā)和支撐;張建強(qiáng)(1974-),中國(guó)移動(dòng)通信集團(tuán)設(shè)計(jì)院有限公司山東分公司,高級(jí)咨詢?cè)O(shè)計(jì)師,研發(fā)項(xiàng)目負(fù)責(zé)人。

        猜你喜歡
        開(kāi)發(fā)人員概預(yù)算插件
        探討土建工程概預(yù)算編制對(duì)工程造價(jià)的影響
        水利工程概預(yù)算及造價(jià)控制分析
        土建工程概預(yù)算編制對(duì)工程造價(jià)的影響
        自編插件完善App Inventor與樂(lè)高機(jī)器人通信
        電子制作(2019年22期)2020-01-14 03:16:34
        Semtech發(fā)布LoRa Basics 以加速物聯(lián)網(wǎng)應(yīng)用
        MapWindowGIS插件機(jī)制及應(yīng)用
        讓W(xué)indows 10進(jìn)入開(kāi)發(fā)者模式
        電腦迷(2015年12期)2015-04-29 23:22:51
        后悔了?教你隱藏開(kāi)發(fā)人員選項(xiàng)
        基于Revit MEP的插件制作探討
        水利工程的概預(yù)算及造價(jià)控制探討
        国产午夜亚洲精品午夜鲁丝片| 在线观看高清视频一区二区三区 | 久久亚洲综合亚洲综合| 经典三级免费看片天堂| 国产美女爽到喷出水来视频| 狠狠色噜噜狠狠狠狠米奇777| 国产精品爽爽va在线观看无码| 大陆啪啪福利视频| 性色国产成人久久久精品二区三区| 自拍偷拍 视频一区二区| 亚洲欧美中文字幕5发布| 内射少妇36p九色| 91精品国产91久久久无码色戒| 精品蜜桃在线观看一区二区三区| 国产av一级片在线观看| 亚洲精品蜜夜内射| 亚洲午夜福利在线观看| 中文字幕无码免费久久9一区9| av天堂在线免费播放| 日本人视频国产一区二区三区| 精品久久久久香蕉网| 最近中文字幕在线mv视频在线| 日韩av无卡无码午夜观看| 中文字幕精品久久一区二区三区| 成人免费自拍视频在线观看| 国语对白嫖老妇胖老太| 国产成人77亚洲精品www| 国产高潮精品一区二区三区av| 桃色一区一区三区蜜桃视频| 看久久久久久a级毛片| 无码手机线免费观看| 2021亚洲色中文字幕| 亚洲精品一区二区三区麻豆| 狠狠cao日日橹夜夜十橹| 熟妇丰满多毛的大隂户| 精品在免费线中文字幕久久| 天堂精品人妻一卡二卡| 亚洲精品无码不卡| 激情综合一区二区三区| 亚洲色www无码| 亚洲专区路线一路线二网|