一種數(shù)據(jù)監(jiān)控和代碼自動(dòng)生成與部署的系統(tǒng)及方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)監(jiān)控和代碼自動(dòng)生成與部署的系統(tǒng)及方法,能夠?qū)⒊掷m(xù)集成子系統(tǒng)分散的指標(biāo)數(shù)據(jù)自動(dòng)提取,集中顯示,有效地把指標(biāo)數(shù)據(jù)納入監(jiān)管,更好地實(shí)現(xiàn)一站式數(shù)據(jù)監(jiān)控。能夠自動(dòng)生成新建模塊的框架代碼,有效地節(jié)約新建模塊的框架搭建時(shí)間,增進(jìn)效率,同時(shí)可以保證軟件產(chǎn)品的框架代碼的一致性,易于開發(fā)維護(hù)。進(jìn)一步,自動(dòng)化部署方法能夠節(jié)約項(xiàng)目的人工部署時(shí)間,增進(jìn)開發(fā)和測(cè)試效率,同時(shí)其中的Linux腳本模板能夠幫助開發(fā)人員更容易地處理安裝包的部署,以及配置文件或依賴文件的拷貝和執(zhí)行。
【專利說明】
一種數(shù)據(jù)監(jiān)控和代碼自動(dòng)生成與部署的系統(tǒng)及方法
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及一種數(shù)據(jù)監(jiān)控和代碼自動(dòng)生成與部署的系統(tǒng)及方法,尤其涉及持續(xù)集成平臺(tái)的各子系統(tǒng)的數(shù)據(jù)監(jiān)控與軟件開發(fā)代碼自動(dòng)生成框架與自動(dòng)部署的系統(tǒng)及方法。
【背景技術(shù)】
[0002]目前在軟件開發(fā)領(lǐng)域,軟件開發(fā)過程包括軟件開發(fā)采用的方法和持續(xù)集成過程。其中敏捷方法被全球大型軟件公司普遍采用,敏捷開發(fā)方法是指一系列的軟件開發(fā)中的原則與方法,它以用戶的需求進(jìn)化為核心,采用迭代、循序漸進(jìn)的方法進(jìn)行軟件開發(fā),其特點(diǎn)是能夠快速響應(yīng)需求,細(xì)化軟件功能。在敏捷開發(fā)方法中為了提高軟件開發(fā)項(xiàng)目組的工作效率,減少軟件開發(fā)中出現(xiàn)集成錯(cuò)誤導(dǎo)致開發(fā)延誤的風(fēng)險(xiǎn),軟件開發(fā)普遍會(huì)使用持續(xù)集成系統(tǒng)(Cl)來幫助開發(fā)項(xiàng)目組控制風(fēng)險(xiǎn)。
[0003]軟件開發(fā)持續(xù)集成系統(tǒng)包含的子系統(tǒng)有代碼版本控制與存儲(chǔ)子系統(tǒng)GitLab,代碼編譯子系統(tǒng)jenkins,代碼質(zhì)量管理子系統(tǒng)Sonar,軟件安裝包存儲(chǔ)子系統(tǒng)Nexus。這些子系統(tǒng)一般由開源軟件搭建而成,這就使得各個(gè)子系統(tǒng)間通信和數(shù)據(jù)交換不夠靈活,尤其是涉及軟件重要衡量標(biāo)準(zhǔn)的數(shù)據(jù)獨(dú)立存儲(chǔ)于各個(gè)子系統(tǒng),這種數(shù)據(jù)不集中的情況極大影響數(shù)據(jù)的直觀性,因?yàn)檐浖_發(fā)項(xiàng)目組和監(jiān)管層必須依靠人工到各個(gè)子系統(tǒng)查看和抄寫數(shù)據(jù),將數(shù)據(jù)匯總和手動(dòng)存儲(chǔ)。這種情況必然造成人力的浪費(fèi)。
[0004]同時(shí)在軟件開發(fā)過程中初始軟件框架的搭建一般依賴技術(shù)熟練的軟件架構(gòu)師搭建,然后再把代碼上傳到代碼版本控制與存儲(chǔ)子系統(tǒng)GitLab中,然后再到Jenkins中手動(dòng)建立Job,這樣就耗費(fèi)很多人力工作。由此可以表明目前缺少自動(dòng)生成代碼框架然后自動(dòng)與持續(xù)集成各個(gè)子系統(tǒng)建立工作空間的方法。
[0005]進(jìn)一步,在持續(xù)集成系統(tǒng)中,自動(dòng)部署功能配置較為復(fù)雜,同時(shí)如果涉及到復(fù)雜工程,例如涉及軟件安裝包(War包)加上配置文件再加上腳本、圖片等其他依賴的文件的話,自動(dòng)部署就需要用戶編寫復(fù)雜腳本來達(dá)到目的,從而導(dǎo)致浪費(fèi)人力。并且持續(xù)集成系統(tǒng)一般只能部署最近編譯成功的項(xiàng)目安裝包,而無法記錄某個(gè)軟件項(xiàng)目所有歷史版本的安裝包。
[0006]因此,在軟件開發(fā)整體周期中需要解決的問題有:自動(dòng)化地提取持續(xù)集成子系統(tǒng)數(shù)據(jù)納入監(jiān)管,自動(dòng)化生成軟件開發(fā)代碼框架,便利地實(shí)現(xiàn)自動(dòng)部署,存儲(chǔ)歷史版本安裝包用于管理或部署。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的目的在于針對(duì)現(xiàn)有技術(shù)的不足,提供一種數(shù)據(jù)監(jiān)控和代碼自動(dòng)生成與部署的系統(tǒng)及方法,目的是解決軟件開發(fā)持續(xù)集成過程中數(shù)據(jù)無法集中顯示,軟件開發(fā)代碼框架不能自動(dòng)生成,自動(dòng)部署功能難于配置且無法部署歷史軟件安裝包的問題。
[0008]本發(fā)明的目的是通過以下技術(shù)方案來實(shí)現(xiàn)的:一種數(shù)據(jù)監(jiān)控和代碼自動(dòng)生成與部署的系統(tǒng),該系統(tǒng)包括:
[0009](I)模塊信息管理模塊:對(duì)項(xiàng)目的各個(gè)模塊信息進(jìn)行管理,包括新建模塊、編輯模塊、刪除模塊;并對(duì)項(xiàng)目模塊的屬性進(jìn)行管理,包括模塊屬性的新建、編輯、刪除、查詢。
[0010](2)數(shù)據(jù)自動(dòng)提取模塊:自動(dòng)提取持續(xù)集成系統(tǒng)中各個(gè)子系統(tǒng)數(shù)據(jù);所述子系統(tǒng)包括:代碼版本控制與存儲(chǔ)子系統(tǒng)GitLab、代碼編譯子系統(tǒng)Jenkins、代碼質(zhì)量管理子系統(tǒng)Sonar。提取方式為從GitLab中得到代碼提交數(shù)量和代碼提交狀態(tài)的訪問地址,從Jenkins中得到代碼編譯健康狀態(tài),從Sonar得到代碼質(zhì)量評(píng)審RCI (規(guī)則符合度)分?jǐn)?shù)。
[0011](3)代碼自動(dòng)生成模塊:在模塊信息管理模塊中如果有新建模塊A,則利用本模塊自動(dòng)生成新建模塊A的代碼并上傳代碼。代碼的自動(dòng)生成具體為:選用軟件的開發(fā)框架,生成代碼編譯工具M(jìn)aven可解析的Archetype框架,然后用Maven命令來執(zhí)行代碼生成動(dòng)作。代碼的上傳具體為:將生成的代碼用GitLab接口上傳到GitLab服務(wù)器中,并在代碼編譯子系統(tǒng)Jenkins中創(chuàng)建編譯任務(wù)Job,然后調(diào)用Jenkins編譯構(gòu)建功能,在構(gòu)建完成后獲取代碼質(zhì)量管理子系統(tǒng)Sonar中新建模塊A的代碼質(zhì)量報(bào)告地址。
[0012](4)自動(dòng)化部署模塊:在Web前端建立自動(dòng)化部署接口,用戶通過接口編寫部署步驟。部署步驟包含將安裝包部署到目標(biāo)機(jī)器的Tomcat容器中,拷貝配置文件和其他依賴文件到部署的目標(biāo)機(jī)器中;其中,將安裝包部署到目標(biāo)機(jī)器的Tomcat容器中的實(shí)現(xiàn)方法為:把倉庫中存儲(chǔ)的軟件安裝包下載到本地,然后再利用Tomcat的遠(yuǎn)程部署Manage功能來把軟件安裝包部署到目標(biāo)機(jī)器的Tomcat中;拷貝配置文件和其他依賴文件到部署的目標(biāo)機(jī)器中的實(shí)現(xiàn)方法為:編寫好Linux中的腳本模板,腳本模板中的內(nèi)容包括以用戶名和密碼通過SSH登錄目標(biāo)機(jī)器B,拷貝文件A到目標(biāo)機(jī)器B中,其中的文件A是配置文件或其他依賴文件。最后本模塊將腳本模板封裝到一個(gè)XML配置文件中,此XML文件的內(nèi)容按照J(rèn)enkins中Job配置文件進(jìn)行組織。封裝完成后,本模塊將調(diào)用Jenkins的更改配置文件的接口,將Jenkins中的Job配置文件進(jìn)行更改,然后再執(zhí)行Job的部署功能,最后實(shí)現(xiàn)項(xiàng)目模塊的自動(dòng)部署。
[0013]進(jìn)一步地,該系統(tǒng)還包括數(shù)據(jù)存儲(chǔ)模塊,該模塊將數(shù)據(jù)自動(dòng)提取模塊提取的指標(biāo)數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)庫中。指標(biāo)數(shù)據(jù)可采用(key ,value)對(duì)方式存儲(chǔ)。
[0014]進(jìn)一步地,該系統(tǒng)還包括數(shù)據(jù)顯示和報(bào)表模塊,該模塊負(fù)責(zé)把數(shù)據(jù)自動(dòng)提取模塊獲取的數(shù)據(jù)在web前端進(jìn)行顯示,同時(shí)提供報(bào)表生成和下載功能,方便管理人員獲取報(bào)告和統(tǒng)計(jì)。
[0015]進(jìn)一步地,該系統(tǒng)還包括項(xiàng)目信息管理模塊,此模塊負(fù)責(zé)項(xiàng)目信息的管理,包括項(xiàng)目屬性的新建、編輯、刪除、查詢功能。
[0016]進(jìn)一步地,所述代碼自動(dòng)生成模塊中采用的開發(fā)框架為:展示層使用基于HTML/CSS/JS的前端框架。接口層使用Apache Shiro+SpringMVC架構(gòu),并使用Velocity作為視圖解析器。服務(wù)層選用EhCache來進(jìn)行緩存管理,用Quatz來進(jìn)行定時(shí)調(diào)度。持久層使用SpringData和Mybatis來進(jìn)行持久存儲(chǔ)。數(shù)據(jù)存儲(chǔ)支持關(guān)系型數(shù)據(jù)庫和NoSQL型數(shù)據(jù)庫。
[0017]進(jìn)一步地,所述自動(dòng)化部署模塊中,如果文件A的格式也是Linux腳本文件,那么腳本模板調(diào)用執(zhí)行文件A。
[0018]進(jìn)一步地,該系統(tǒng)包括項(xiàng)目權(quán)限管理模塊,在用戶登錄本系統(tǒng)前,用戶需要向系統(tǒng)管理員申請(qǐng)項(xiàng)目權(quán)限,以便使用本系統(tǒng)的各個(gè)模塊。因此項(xiàng)目權(quán)限管理模塊負(fù)責(zé)配置管理項(xiàng)目的編輯訪問權(quán)限,權(quán)限控制方式為用角色標(biāo)定訪問權(quán)限,PM角色為項(xiàng)目經(jīng)理,其權(quán)限可以訪問和完全控制項(xiàng)目屬性和模塊屬性。DEV角色為開發(fā)人員,QA角色為測(cè)試人員,DEV和QA的權(quán)限擁有訪問但不能更改項(xiàng)目屬性權(quán)限。
[0019]—種數(shù)據(jù)監(jiān)控和代碼自動(dòng)生成與部署的方法,其特征在于,包括以下步驟:
[0020](I)構(gòu)建項(xiàng)目Maven Arche type 框架。
[0021](2)通過模塊信息管理模塊新建模塊A,然后用代碼自動(dòng)生成模塊對(duì)新建模塊A進(jìn)行代碼自動(dòng)化生成工作,包括以下子步驟:
[0022](2.1)根據(jù)步驟I構(gòu)建的Maven Archetype框架,通過代碼編譯工具M(jìn)aven編譯框架得到具體的代碼。
[0023]( 2.2 )通過G it Lab接口把代碼上傳到G it Lab中存儲(chǔ),再通過Jenkins接口在Jenkins中建立編譯任務(wù)Job,然后調(diào)用Jenkins編譯構(gòu)建功能,在構(gòu)建完成后獲取代碼質(zhì)量管理子系統(tǒng)Sonar中新建模塊A的代碼質(zhì)量報(bào)告地址。
[0024](2.3)代碼自動(dòng)生成模塊將新建模塊A的GitLab存儲(chǔ)地址和Jenkins Job地址以及Sonar中的代碼質(zhì)量報(bào)告地址存儲(chǔ)于數(shù)據(jù)庫中。
[0025](3)通過數(shù)據(jù)自動(dòng)提取模塊提取數(shù)據(jù)。在數(shù)據(jù)庫中查詢通過步驟2存入的模塊屬性信息,得到模塊的GitLab代碼存儲(chǔ)地址,Jenkins中對(duì)應(yīng)的Job地址,Sonar中的代碼質(zhì)量報(bào)告地址。然后根據(jù)地址和各個(gè)子系統(tǒng)數(shù)據(jù)提取接口分別提取得到GitLab中代碼提交數(shù)量和代碼提交狀態(tài)的訪問地址,Jenkins中的模塊的Job的代碼編譯健康狀態(tài)數(shù)據(jù),Sonar中的代碼質(zhì)量評(píng)審RCI(規(guī)則符合度)分?jǐn)?shù)。
[0026](4)用戶對(duì)項(xiàng)目模塊進(jìn)行代碼開發(fā),把新開發(fā)的代碼更新到該模塊所在的GitLab存儲(chǔ)地址。
[0027](5)項(xiàng)目模塊所對(duì)應(yīng)的Jenkins編譯Job自動(dòng)發(fā)現(xiàn)代碼的更新,開始編譯代碼,編譯完成后把安裝包帶上版本信息上傳到Nexus中,形成歷史軟件安裝包。
[0028](6)通過自動(dòng)化部署模塊提供的Web前端自動(dòng)化部署接口編寫部署步驟,包括以下子步驟:
[0029](6.1)將安裝包部署到目標(biāo)機(jī)器的Tomcat容器中:把步驟5中存儲(chǔ)的歷史軟件安裝包下載到本地,然后再利用Tomcat的遠(yuǎn)程部署Manage功能來把歷史軟件安裝包部署到目標(biāo)機(jī)器的Tomcat中。
[0030](6.2)拷貝配置文件和其他依賴文件到部署的目標(biāo)機(jī)器中:編寫好Linux中的腳本模板,腳本模板中的內(nèi)容包括:用戶名和密碼通過SSH登錄目標(biāo)機(jī)器B、拷貝文件A到目標(biāo)機(jī)器B中;其中的文件A為配置文件或其他依賴文件。
[0031 ] (6.3)將腳本模板封裝到一個(gè)XML配置文件中,此XML文件的內(nèi)容按照J(rèn)enkins中Job配置文件進(jìn)行組織。
[0032](6.4)調(diào)用Jenkins的更改配置文件的接口,將Jenkins中的Job配置文件進(jìn)行更改,然后再執(zhí)行Job的部署功能,最終實(shí)現(xiàn)項(xiàng)目模塊的自動(dòng)部署。
[0033]進(jìn)一步地,所述步驟I中,代碼框架組成為:展示層使用基于HTML/CSS/JS的前端框架。接口層使用Apache Shiro+SpringMVC架構(gòu),并使用Velocity作為視圖解析器。服務(wù)層選用EhCache來進(jìn)行緩存管理,用Quatz來進(jìn)行定時(shí)調(diào)度。持久層使用Spring Data和Mybatis來進(jìn)行持久存儲(chǔ)。數(shù)據(jù)存儲(chǔ)支持關(guān)系型數(shù)據(jù)庫和NoSQL型數(shù)據(jù)庫。
[0034]進(jìn)一步地,該方法還包括將步驟2所得數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)庫中的步驟,存儲(chǔ)方式采用(key,value)對(duì)方式存儲(chǔ),數(shù)據(jù)庫采用MySQL,存儲(chǔ)彈性可擴(kuò)展。
[0035]本發(fā)明的有益效果是:能夠?qū)⒊掷m(xù)集成子系統(tǒng)分散的指標(biāo)數(shù)據(jù)自動(dòng)提取,集中顯示,有效地把指標(biāo)數(shù)據(jù)納入監(jiān)管,更好地實(shí)現(xiàn)一站式數(shù)據(jù)監(jiān)控。能夠自動(dòng)生成新建模塊的框架代碼,有效地節(jié)約新建模塊的框架搭建時(shí)間,增進(jìn)效率,同時(shí)可以保證軟件產(chǎn)品的框架代碼的一致性,易于開發(fā)維護(hù)。進(jìn)一步,自動(dòng)化部署方法能夠節(jié)約項(xiàng)目的人工部署時(shí)間,增進(jìn)開發(fā)和測(cè)試效率,同時(shí)其中的Linux腳本模板能夠幫助開發(fā)人員更容易地處理安裝包的部署,以及配置文件或依賴文件的拷貝和執(zhí)行。
【附圖說明】
[0036]圖1是本發(fā)明一種基于持續(xù)集成的數(shù)據(jù)監(jiān)控和代碼自動(dòng)生成與部署的系統(tǒng)框架圖。
[0037]圖2是本發(fā)明數(shù)據(jù)監(jiān)控方法示意圖。
[0038]圖3是本發(fā)明代碼自動(dòng)生成方法示意圖。
[0039]圖4是本發(fā)明自動(dòng)化部署方法示意圖。
【具體實(shí)施方式】
[0040]下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
[0041]實(shí)施例1:一種數(shù)據(jù)監(jiān)控和代碼自動(dòng)生成與部署的系統(tǒng),此系統(tǒng)的組成包括:
[0042](I)數(shù)據(jù)自動(dòng)提取模塊,此模塊為本發(fā)明主要模塊之一,它的功能是自動(dòng)提取持續(xù)集成系統(tǒng)中各個(gè)子系統(tǒng)數(shù)據(jù)。這些子系統(tǒng)包括:代碼版本控制與存儲(chǔ)子系統(tǒng)GitLab,代碼編譯子系統(tǒng)Jenkins,代碼質(zhì)量管理子系統(tǒng)Sonar。提取方式為用各子系統(tǒng)接口來訪問各個(gè)子系統(tǒng),分析獲取的數(shù)據(jù)格式,從GitLab中得到代碼提交數(shù)量和代碼提交狀態(tài)的訪問地址,從Jenkins中得到代碼編譯健康狀態(tài),從Sonar得到代碼質(zhì)量評(píng)審RCI (規(guī)則符合度)分?jǐn)?shù)。
[0043](2)數(shù)據(jù)存儲(chǔ)模塊,此模塊負(fù)責(zé)將數(shù)據(jù)自動(dòng)提取模塊提取的指標(biāo)數(shù)據(jù)存儲(chǔ)于MySQL數(shù)據(jù)庫中。其中指標(biāo)數(shù)據(jù)采用(key,Value)對(duì)方式存儲(chǔ),存儲(chǔ)特點(diǎn)是彈性可擴(kuò)展。
[0044](3)數(shù)據(jù)顯示和報(bào)表模塊,此模塊負(fù)責(zé)把數(shù)據(jù)自動(dòng)提取模塊獲取的數(shù)據(jù)在web前端進(jìn)行顯示,同時(shí)提供報(bào)表生成和下載功能,方便管理人員獲取報(bào)告和統(tǒng)計(jì)。
[0045](4)項(xiàng)目信息管理模塊,此模塊負(fù)責(zé)項(xiàng)目信息的管理,包括項(xiàng)目屬性的新建、編輯、刪除、查詢功能。
[0046](5)模塊信息管理模塊,此模塊可以對(duì)項(xiàng)目的各個(gè)模塊信息進(jìn)行管理,包括新建模塊,編輯模塊,刪除模塊。進(jìn)一步地,此模塊還負(fù)責(zé)模塊屬性的新建、編輯、刪除、查詢功能。
[0047](6)代碼自動(dòng)生成模塊,此模塊為本發(fā)明主要模塊之一,負(fù)責(zé)自動(dòng)生成新建模塊的框架代碼,在模塊信息管理模塊中如果有新建模塊A,則可以利用本模塊來做A的代碼自動(dòng)生成工作,所謂代碼自動(dòng)生成就是選用軟件的開發(fā)框架,生成代碼編譯工具M(jìn)aven可解析的Archetype框架,然后用Maven命令來執(zhí)行代碼生成動(dòng)作。本發(fā)明采用的開發(fā)框架為:展示層使用基于HTML/CSS/JS的前端框架。接口層使用Apache Shiro+SpringMVC架構(gòu),并使用Velocity作為視圖解析器。服務(wù)層選用EhCache來進(jìn)行緩存管理,用Quatz來進(jìn)行定時(shí)調(diào)度。持久層使用Spring Data和Mybatis來進(jìn)行持久存儲(chǔ)。數(shù)據(jù)存儲(chǔ)支持關(guān)系型數(shù)據(jù)庫和NoSQL型數(shù)據(jù)庫。代碼自動(dòng)生成模塊還負(fù)責(zé)將生成的代碼用GitLab接口上傳到GitLab服務(wù)器中,并在代碼編譯子系統(tǒng)Jenkins中創(chuàng)建編譯任務(wù)Job,然后調(diào)用Jenkins編譯構(gòu)建功能,在構(gòu)建完成后獲取代碼質(zhì)量管理子系統(tǒng)Sonar中新建模塊A的代碼質(zhì)量報(bào)告地址,最后代碼自動(dòng)生成模塊將把新建模塊A的GitLab存儲(chǔ)地址和Jenkins Job地址以及Sonar中的代碼質(zhì)量報(bào)告地址以郵件的方式發(fā)送給項(xiàng)目管理員。
[0048](7)自動(dòng)化部署模塊,此模塊為本發(fā)明主要模塊之一,此模塊功能是自動(dòng)化部署軟件安裝包。實(shí)現(xiàn)的方法是在Web前端建立自動(dòng)化部署接口,用戶可以通過接口方便地編寫部署步驟。部署步驟包含將安裝包部署到目標(biāo)機(jī)器的Tomcat容器中,拷貝配置文件和其他依賴文件到部署的目標(biāo)機(jī)器中;其中,將安裝包部署到目標(biāo)機(jī)器的Tomcat容器中的實(shí)現(xiàn)方法為:把Nexus倉庫中存儲(chǔ)的軟件安裝包(War包)下載到本地,然后再利用Tomcat的遠(yuǎn)程部署Manage功能來把War包部署到目標(biāo)機(jī)器的Tomcat中;拷貝配置文件和其他依賴文件到部署的目標(biāo)機(jī)器中的實(shí)現(xiàn)方法為:編寫好Linux中的expect腳本模板,腳本模板中的內(nèi)容包括以用戶名和密碼通過SSH登錄目標(biāo)機(jī)器B,拷貝文件A到目標(biāo)機(jī)器B中,其中的文件A是配置文件或其他依賴文件,如果文件A的格式也是Linux腳本文件,那么腳本模板還具有調(diào)用執(zhí)行文件A的功能。最后本模塊將expect腳本模板封裝到一個(gè)XML配置文件中,此XML文件的內(nèi)容按照J(rèn)enkins中Job配置文件進(jìn)行組織。封裝完成后,本模塊將調(diào)用Jenkins的更改配置文件的接口,將Jenkins中的Job配置文件進(jìn)行更改,然后再執(zhí)行Job的部署功能,最后實(shí)現(xiàn)項(xiàng)目模塊的自動(dòng)部署。
[0049](8)項(xiàng)目權(quán)限管理模塊,在用戶登錄本系統(tǒng)前,用戶需要向系統(tǒng)管理員申請(qǐng)項(xiàng)目權(quán)限,以便使用本系統(tǒng)的各個(gè)模塊。因此項(xiàng)目權(quán)限管理模塊負(fù)責(zé)配置管理項(xiàng)目的編輯訪問權(quán)限,權(quán)限控制方式為用角色標(biāo)定訪問權(quán)限,PM角色為項(xiàng)目經(jīng)理,其權(quán)限可以訪問和完全控制項(xiàng)目屬性和模塊屬性。DEV角色為開發(fā)人員,QA角色為測(cè)試人員,DEV和QA的權(quán)限擁有訪問但不能更改項(xiàng)目屬性權(quán)限。
[0050]應(yīng)用上述系統(tǒng)的數(shù)據(jù)監(jiān)控和代碼自動(dòng)生成與部署的方法,包括以下步驟:
[0051 ] (I)構(gòu)建項(xiàng)目Maven Archetype框架。此框架按照Maven Archetype框架標(biāo)準(zhǔn)格式編寫,選用的代碼具體框架組成為:展示層使用基于HTML/CSS/JS的前端框架。接口層使用Apache Shiro+SpringMVC架構(gòu),并使用Velocity作為視圖解析器。服務(wù)層選用EhCache來進(jìn)行緩存管理,用Quatz來進(jìn)行定時(shí)調(diào)度。持久層使用Spring Data和Mybatis來進(jìn)行持久存儲(chǔ)。數(shù)據(jù)存儲(chǔ)支持關(guān)系型數(shù)據(jù)庫和NoSQL型數(shù)據(jù)庫。
[0052](2)通過模塊信息管理模塊新建模塊A,然后用代碼自動(dòng)生成模塊對(duì)新建模塊A進(jìn)行代碼自動(dòng)化生成工作,包括以下子步驟:
[0053](2.1)填寫模塊名稱,ID號(hào),選用步驟I所得到的Maven Archetype框架,通過代碼編譯工具M(jìn)aven編譯框架得到具體的代碼。
[0054]( 2.2 )通過G it Lab接口把代碼上傳到G it Lab中存儲(chǔ),再通過Jenkins接口在Jenkins中建立編譯任務(wù)Job,然后調(diào)用Jenkins編譯構(gòu)建功能,在構(gòu)建完成后獲取代碼質(zhì)量管理子系統(tǒng)Sonar中新建模塊A的代碼質(zhì)量報(bào)告地址。
[0055](2.3)代碼自動(dòng)生成模塊將把新建模塊A的GitLab存儲(chǔ)地址和Jenkins Job地址以及Sonar中的代碼質(zhì)量報(bào)告地址存儲(chǔ)于數(shù)據(jù)庫中,之后以發(fā)送郵件的方式通知項(xiàng)目管理員。
[0056](3)通過數(shù)據(jù)自動(dòng)提取模塊提取數(shù)據(jù)。在數(shù)據(jù)庫中查詢模塊屬性信息,此屬性信息是通過步驟2存入數(shù)據(jù)庫中的。查詢之后,得到模塊的GitLab代碼存儲(chǔ)地址,Jenkins中對(duì)應(yīng)的Job地址,Sonar中的代碼質(zhì)量報(bào)告地址。然后根據(jù)地址和各個(gè)子系統(tǒng)數(shù)據(jù)提取接口分別提取得到GitLab中代碼提交數(shù)量和代碼提交狀態(tài)的訪問地址,Jenkins中的模塊的Job的代碼編譯健康狀態(tài)數(shù)據(jù),Sonar中的代碼質(zhì)量評(píng)審RCI(規(guī)則符合度)分?jǐn)?shù)。
[0057](4)通過數(shù)據(jù)存儲(chǔ)模塊將步驟2所得數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)庫中,其中存儲(chǔ)方式采用(key,value)對(duì)方式存儲(chǔ),數(shù)據(jù)庫采用MySQL,存儲(chǔ)特點(diǎn)是彈性可擴(kuò)展。
[0058](5)通過數(shù)據(jù)顯示和報(bào)表模塊在Web前端顯示步驟3中存儲(chǔ)的數(shù)據(jù),同時(shí)提供下載報(bào)表功能。
[0059](6)用戶對(duì)項(xiàng)目模塊進(jìn)行代碼開發(fā)。開發(fā)達(dá)到一定時(shí)間段,可以是一天也可以是一小時(shí),之后用戶把新開發(fā)的代碼更新到該模塊所在的GitLab存儲(chǔ)地址。
[0060](7)步驟6中項(xiàng)目模塊所對(duì)應(yīng)的Jenkins編譯Job自動(dòng)發(fā)現(xiàn)代碼的更新,開始編譯代碼,編譯完成后把安裝包(War包)帶上版本信息上傳到Nexus中,形成歷史軟件安裝包,供步驟8的自動(dòng)化部署使用。
[0061](8)通過自動(dòng)化部署模塊提供的Web前端自動(dòng)化部署接口編寫部署步驟。部署步驟包含將安裝包部署到目標(biāo)機(jī)器的Tomcat容器中,拷貝配置文件和其他依賴文件到部署的目標(biāo)機(jī)器中,其中,將安裝包部署到目標(biāo)機(jī)器的Tomcat容器中的實(shí)現(xiàn)方法為:把步驟7中存儲(chǔ)的歷史軟件安裝包(War包)下載到本地,然后再利用Tomcat的遠(yuǎn)程部署Manage功能來把War包部署到目標(biāo)機(jī)器的Tomcat中??截惻渲梦募推渌蕾囄募讲渴鸬哪繕?biāo)機(jī)器中的實(shí)現(xiàn)方法為:編寫好Linux中的expect腳本模板,腳本模板中的內(nèi)容包括1、用戶名和密碼通過SSH登錄目標(biāo)機(jī)器12、拷貝文件A到目標(biāo)機(jī)器B中,其中的文件A為配置文件或其他依賴文件。3、如果文件A也是一個(gè)Linux腳本文件,那么腳本模板還具有調(diào)用執(zhí)行文件A的功能。最后本模塊將expect腳本模板封裝到一個(gè)XML配置文件中,此XML文件的內(nèi)容按照J(rèn)enkins中Job配置文件進(jìn)行組織。封裝完后,本模塊將調(diào)用Jenkins的更改配置文件的接口,將Jenkins中的Job配置文件進(jìn)行更改,然后再執(zhí)行Job的部署功能,最后實(shí)現(xiàn)項(xiàng)目模塊的自動(dòng)部署。
[0062]實(shí)施例2:如圖1所示,一種基于持續(xù)集成的數(shù)據(jù)監(jiān)控和代碼自動(dòng)生成與部署的系統(tǒng),包括:
[0063]數(shù)據(jù)自動(dòng)提取模塊,此模塊與持續(xù)集成系統(tǒng)三個(gè)子系統(tǒng)相連,它的功能是自動(dòng)提取持續(xù)集成系統(tǒng)中各個(gè)子系統(tǒng)數(shù)據(jù)。在圖1中,數(shù)據(jù)自動(dòng)提取模塊從圖右側(cè)所示的持續(xù)集成系統(tǒng)的三個(gè)子系統(tǒng):GitLab ,Jenkins,Sonar中自動(dòng)提取數(shù)據(jù)。
[0064]數(shù)據(jù)存儲(chǔ)模塊,此模塊把數(shù)據(jù)自動(dòng)提取模塊提取到的指標(biāo)數(shù)據(jù)存儲(chǔ)于MySQL數(shù)據(jù)庫中。其中指標(biāo)數(shù)據(jù)采用(key,Value)對(duì)方式存儲(chǔ),存儲(chǔ)特點(diǎn)是彈性可擴(kuò)展。
[0065]數(shù)據(jù)顯示和報(bào)表模塊,此模塊負(fù)責(zé)把數(shù)據(jù)存儲(chǔ)模塊所存儲(chǔ)數(shù)據(jù)在web前端進(jìn)行顯示,同時(shí)提供報(bào)表生成和下載功能,方便管理人員獲取報(bào)告和統(tǒng)計(jì)。
[0066]項(xiàng)目信息管理模塊,此模塊負(fù)責(zé)項(xiàng)目信息的管理,包括項(xiàng)目屬性的新建、編輯、刪除、查詢功能。
[0067]模塊信息管理模塊,此模塊可以對(duì)項(xiàng)目的各個(gè)模塊信息進(jìn)行管理,包括新建模塊,編輯模塊,刪除模塊。進(jìn)一步地,此模塊還負(fù)責(zé)模塊具體屬性的新建、編輯、刪除、查詢功能。
[0068]代碼自動(dòng)生成模塊,與圖1中的GitLab和Jenkins相聯(lián)系,負(fù)責(zé)自動(dòng)生成新建模塊的框架代碼。然后把框架代碼上傳到GitLab中,再通過Jenkins接口,在Jenkins中創(chuàng)建編譯任務(wù)Job,然后調(diào)用Jenkins編譯構(gòu)建功能,得到Sonar代碼質(zhì)量報(bào)告地址。
[0069]自動(dòng)化部署模塊,此模塊功能是自動(dòng)化部署軟件安裝包。此模塊與軟件安裝包存儲(chǔ)子系統(tǒng)Nexus和代碼編譯子系統(tǒng)Jenkins相連。此模塊把圖中Nexus存儲(chǔ)的歷史軟件安裝包(War包)下載到本地,然后再利用Tomcat的遠(yuǎn)程部署Manage功能來把War包部署到目標(biāo)機(jī)器的Tomcat中。然后此模塊還提供編寫好的Linux中的expect腳本模板給用戶填寫,之后再把腳本模板封裝到XML文件中,用于更新圖1中的Jenkins中的Job配置,然后再執(zhí)行Job的觸發(fā)功能,最后實(shí)現(xiàn)自動(dòng)化部署功能。
[0070]項(xiàng)目權(quán)限管理模塊,在用戶登錄本系統(tǒng)前,用戶需要向系統(tǒng)管理員申請(qǐng)項(xiàng)目權(quán)限,以便使用本系統(tǒng)的各個(gè)模塊。
[0071]如圖2中所示,本發(fā)明的數(shù)據(jù)監(jiān)控方法如下:
[0072]持續(xù)集成系統(tǒng)的各個(gè)子系統(tǒng)和本發(fā)明的數(shù)據(jù)獲取模塊和解析模塊共同使用一樣的JSON數(shù)據(jù)格式,根據(jù)各個(gè)子系統(tǒng)的數(shù)據(jù)訪問接口,以定時(shí)任務(wù)方式自動(dòng)提取各個(gè)子系統(tǒng)的數(shù)據(jù),之后進(jìn)入數(shù)據(jù)解析得到指標(biāo)數(shù)據(jù):Gi tLab中的代碼提交數(shù)量,代碼提交狀態(tài)的訪問地址,Jenkins中的代碼編譯健康狀態(tài),Sonar中的代碼質(zhì)量評(píng)審RCI (規(guī)則符合度)分?jǐn)?shù)。然后,將數(shù)據(jù)整理后按(key ,value)成對(duì)地存入MySQL數(shù)據(jù)庫系統(tǒng),最后Web前端從數(shù)據(jù)庫中得到數(shù)據(jù),將數(shù)據(jù)顯示給用戶。
[0073]如圖3中所示,本發(fā)明的代碼自動(dòng)生成方法具體步驟如下:
[0074](I)在前面所述系統(tǒng)的模塊信息管理模塊中新建模塊A,然后編按照?qǐng)D3左側(cè)框中示意圖搭建Maven Archetype框架,此框架采用的技術(shù)架構(gòu)層次為:展示層使用基于HTML/CSS/JS的前端框架。接口層使用Apache Shiro+SpringMVC架構(gòu),并使用Velocity作為視圖解析器。服務(wù)層選用EhCache來進(jìn)行緩存管理,用Quatz來進(jìn)行定時(shí)調(diào)度。持久層使用SpringData和Mybatis來進(jìn)行持久存儲(chǔ)。數(shù)據(jù)存儲(chǔ)支持關(guān)系型數(shù)據(jù)庫和NoSQL型數(shù)據(jù)庫。
[0075](2)當(dāng)Maven Archetype框架搭建好后,通過本發(fā)明的代碼自動(dòng)生成模塊來自動(dòng)生成代碼。過程是:首先用Maven編譯圖3左側(cè)的Maven Archetype框架,在服務(wù)器本地得到框架代碼。
[0076](3)通過Gi tLab接口把框架代碼上傳到Gi tLab中存儲(chǔ),再通過Jenkins接口在Jenkins中建立編譯任務(wù)Job,然后調(diào)用Jenkins編譯構(gòu)建功能,在構(gòu)建完成后獲取代碼質(zhì)量管理子系統(tǒng)Sonar中新建模塊A的代碼質(zhì)量報(bào)告地址。
[0077](4)代碼自動(dòng)生成模塊將新建模塊A的GitLab存儲(chǔ)地址和Jenkins Job地址以及Sonar中的代碼質(zhì)量報(bào)告地址存儲(chǔ)于數(shù)據(jù)庫中,再發(fā)送郵件通知項(xiàng)目模塊管理員。
[0078]如圖4所示,本發(fā)明的自動(dòng)化部署方法具體實(shí)施過程包含:
[0079](I)代碼開發(fā),用戶對(duì)項(xiàng)目模塊進(jìn)行代碼開發(fā),把新開發(fā)的代碼更新到該模塊所在的Gi tLab存儲(chǔ)地址。
[0080](2)項(xiàng)目模塊所對(duì)應(yīng)的Jenkins編譯Job自動(dòng)發(fā)現(xiàn)代碼的更新,開始編譯代碼,編譯完成后把安裝包帶上版本信息上傳到Nexus中,形成歷史軟件安裝包。
[0081](3)通過自動(dòng)化部署模塊提供的Web前端自動(dòng)化部署接口編寫部署步驟,包括以下子步驟:
[0082](3.1)圖4中的Nexus倉庫存儲(chǔ)著諸多模塊的歷史版本軟件安裝包,自動(dòng)化部署模塊把這些歷史安裝包信息取出,顯示給用戶,用戶選擇好某個(gè)軟件安裝包后由自動(dòng)化部署模塊下載到本地,然后再利用Tomcat的遠(yuǎn)程部署Manage功能來把War包部署到目標(biāo)機(jī)器的Tomcat容器中。
[0083](3.2)通過Web接口編寫Linux中的expect腳本模板,腳本模板包括以下內(nèi)容:SSH登錄、拷貝文件、執(zhí)行腳本。所述SSH登錄是以用戶名和密碼通過SSH登錄目標(biāo)機(jī)器,所述拷貝文件是拷貝配置文件和其他依賴文件到部署的目標(biāo)機(jī)器中,如果拷貝的文件中包含Linux腳本文件,所述執(zhí)行腳本內(nèi)容可調(diào)用執(zhí)行該文件的功能。
[0084](3.3)將腳本模板封裝到一個(gè)XML配置文件中,此XML文件的內(nèi)容按照J(rèn)enkins中Job配置文件進(jìn)行組織。
[0085](3.4)調(diào)用Jenkins的更改配置文件的接口,將Jenkins中的Job配置文件進(jìn)行更改,然后再執(zhí)行Job的部署功能,最終實(shí)現(xiàn)項(xiàng)目模塊的自動(dòng)部署。
【主權(quán)項(xiàng)】
1.一種數(shù)據(jù)監(jiān)控和代碼自動(dòng)生成與部署的系統(tǒng),其特征在于,該系統(tǒng)包括:(1)模塊信息管理模塊:對(duì)項(xiàng)目的各個(gè)模塊信息進(jìn)行管理,包括新建模塊、編輯模塊、刪 除模塊;并對(duì)項(xiàng)目模塊的屬性進(jìn)行管理,包括模塊屬性的新建、編輯、刪除、查詢。(2)數(shù)據(jù)自動(dòng)提取模塊:自動(dòng)提取持續(xù)集成系統(tǒng)中各個(gè)子系統(tǒng)數(shù)據(jù);所述子系統(tǒng)包括: 代碼版本控制與存儲(chǔ)子系統(tǒng)GitLab、代碼編譯子系統(tǒng)Jenkins、代碼質(zhì)量管理子系統(tǒng)Sonar。 提取方式為從GitLab中得到代碼提交數(shù)量和代碼提交狀態(tài)的訪問地址,從Jenkins中得到 代碼編譯健康狀態(tài),從Sonar得到代碼質(zhì)量評(píng)審RCI (規(guī)則符合度)分?jǐn)?shù)。(3)代碼自動(dòng)生成模塊:在模塊信息管理模塊中如果有新建模塊A,則利用本模塊自動(dòng) 生成新建模塊A的代碼并上傳代碼。代碼的自動(dòng)生成具體為:選用軟件的開發(fā)框架,生成代 碼編譯工具M(jìn)aven可解析的Archetype框架,然后用Maven命令來執(zhí)行代碼生成動(dòng)作。代碼的 上傳具體為:將生成的代碼用GitLab接口上傳到GitLab服務(wù)器中,并在代碼編譯子系統(tǒng) Jenkins中創(chuàng)建編譯任務(wù)Job,然后調(diào)用Jenkins編譯構(gòu)建功能,在構(gòu)建完成后獲取代碼質(zhì)量 管理子系統(tǒng)Sonar中新建模塊A的代碼質(zhì)量報(bào)告地址。(4)自動(dòng)化部署模塊:在Web前端建立自動(dòng)化部署接口,用戶通過接口編寫部署步驟。部 署步驟包含將安裝包部署到目標(biāo)機(jī)器的Tomcat容器中,拷貝配置文件和其他依賴文件到部 署的目標(biāo)機(jī)器中;其中,將安裝包部署到目標(biāo)機(jī)器的Tomcat容器中的實(shí)現(xiàn)方法為:把倉庫中 存儲(chǔ)的軟件安裝包下載到本地,然后再利用Tomcat的遠(yuǎn)程部署Manage功能來把軟件安裝包 部署到目標(biāo)機(jī)器的Tomcat中;拷貝配置文件和其他依賴文件到部署的目標(biāo)機(jī)器中的實(shí)現(xiàn)方 法為:編寫好Linux中的腳本模板,腳本模板中的內(nèi)容包括以用戶名和密碼通過SSH登錄目 標(biāo)機(jī)器B,拷貝文件A到目標(biāo)機(jī)器B中,其中的文件A是配置文件或其他依賴文件。最后本模塊 將腳本模板封裝到一個(gè)XML配置文件中,此XML文件的內(nèi)容按照J(rèn)enkins中Job配置文件進(jìn)行 組織。封裝完成后,本模塊將調(diào)用Jenkins的更改配置文件的接口,將Jenkins中的Job配置 文件進(jìn)行更改,然后再執(zhí)行Job的部署功能,最后實(shí)現(xiàn)項(xiàng)目模塊的自動(dòng)部署。2.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)監(jiān)控和代碼自動(dòng)生成與部署的系統(tǒng),其特征在于,該 系統(tǒng)還包括數(shù)據(jù)存儲(chǔ)模塊,該模塊將數(shù)據(jù)自動(dòng)提取模塊提取的指標(biāo)數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)庫中。 指標(biāo)數(shù)據(jù)可采用(key,value)對(duì)方式存儲(chǔ)。3.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)監(jiān)控和代碼自動(dòng)生成與部署的系統(tǒng),其特征在于,該 系統(tǒng)還包括數(shù)據(jù)顯示和報(bào)表模塊,該模塊負(fù)責(zé)把數(shù)據(jù)自動(dòng)提取模塊獲取的數(shù)據(jù)在web前端 進(jìn)行顯示,同時(shí)提供報(bào)表生成和下載功能,方便管理人員獲取報(bào)告和統(tǒng)計(jì)。4.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)監(jiān)控和代碼自動(dòng)生成與部署的系統(tǒng),其特征在于,該 系統(tǒng)還包括項(xiàng)目信息管理模塊,此模塊負(fù)責(zé)項(xiàng)目信息的管理,包括項(xiàng)目屬性的新建、編輯、 刪除、查詢功能。5.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)監(jiān)控和代碼自動(dòng)生成與部署的系統(tǒng),其特征在于,所 述代碼自動(dòng)生成模塊中采用的開發(fā)框架為:展示層使用基于HTML/CSS/JS的前端框架。接口層使用Apache Shiro+SpringMVC架構(gòu),并使用Velocity 作為視圖解析器。服務(wù)層選用EhCache來進(jìn)行緩存管理,用Quatz來進(jìn)行定時(shí)調(diào)度。持久層使 用Spring Data和Mybatis來進(jìn)行持久存儲(chǔ)。數(shù)據(jù)存儲(chǔ)支持關(guān)系型數(shù)據(jù)庫和NoSQL型數(shù)據(jù)庫。6.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)監(jiān)控和代碼自動(dòng)生成與部署的系統(tǒng),其特征在于,所 述自動(dòng)化部署模塊中,如果文件A的格式也是Linux腳本文件,那么腳本模板調(diào)用執(zhí)行文件A〇7.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)監(jiān)控和代碼自動(dòng)生成與部署的系統(tǒng),其特征在于,該 系統(tǒng)包括項(xiàng)目權(quán)限管理模塊,在用戶登錄本系統(tǒng)前,用戶需要向系統(tǒng)管理員申請(qǐng)項(xiàng)目權(quán)限, 以便使用本系統(tǒng)的各個(gè)模塊。因此項(xiàng)目權(quán)限管理模塊負(fù)責(zé)配置管理項(xiàng)目的編輯訪問權(quán)限, 權(quán)限控制方式為用角色標(biāo)定訪問權(quán)限,PM角色為項(xiàng)目經(jīng)理,其權(quán)限可以訪問和完全控制項(xiàng) 目屬性和模塊屬性。DEV角色為開發(fā)人員,QA角色為測(cè)試人員,DEV和QA的權(quán)限擁有訪問但不 能更改項(xiàng)目屬性權(quán)限。8.—種應(yīng)用權(quán)利要求1所述系統(tǒng)的數(shù)據(jù)監(jiān)控和代碼自動(dòng)生成與部署的方法,其特征在 于,包括以下步驟:(1)構(gòu)建項(xiàng)目Maven Archetype框架。(2)通過模塊信息管理模塊新建模塊A,然后用代碼自動(dòng)生成模塊對(duì)新建模塊A進(jìn)行代 碼自動(dòng)化生成工作,包括以下子步驟:(2.1)根據(jù)步驟1構(gòu)建的Maven Archetype框架,通過代碼編譯工具M(jìn)aven編譯框架得到 具體的代碼。(2.2)通過Gi tLab接口把代碼上傳到Gi tLab中存儲(chǔ),再通過Jenkins接口在Jenkins中 建立編譯任務(wù)Job,然后調(diào)用Jenkins編譯構(gòu)建功能,在構(gòu)建完成后獲取代碼質(zhì)量管理子系 統(tǒng)Sonar中新建模塊A的代碼質(zhì)量報(bào)告地址。(2.3)代碼自動(dòng)生成模塊將新建模塊A的Gi tLab存儲(chǔ)地址和Jenkins Job地址以及 Sonar中的代碼質(zhì)量報(bào)告地址存儲(chǔ)于數(shù)據(jù)庫中。(3)通過數(shù)據(jù)自動(dòng)提取模塊提取數(shù)據(jù)。在數(shù)據(jù)庫中查詢通過步驟2存入的模塊屬性信 息,得到模塊的Gi tLab代碼存儲(chǔ)地址,Jenkins中對(duì)應(yīng)的Job地址,Sonar中的代碼質(zhì)量報(bào)告 地址。然后根據(jù)地址和各個(gè)子系統(tǒng)數(shù)據(jù)提取接口分別提取得到GitLab中代碼提交數(shù)量和代 碼提交狀態(tài)的訪問地址,Jenkins中的模塊的Job的代碼編譯健康狀態(tài)數(shù)據(jù),Sonar中的代碼 質(zhì)量評(píng)審RCI (規(guī)則符合度)分?jǐn)?shù)。(4)用戶對(duì)項(xiàng)目模塊進(jìn)行代碼開發(fā),把新開發(fā)的代碼更新到該模塊所在的GitLab存儲(chǔ) 地址。(5)項(xiàng)目模塊所對(duì)應(yīng)的Jenkins編譯Job自動(dòng)發(fā)現(xiàn)代碼的更新,開始編譯代碼,編譯完成 后把安裝包帶上版本信息上傳到Nexus中,形成歷史軟件安裝包。(6)通過自動(dòng)化部署模塊提供的Web前端自動(dòng)化部署接口編寫部署步驟,包括以下子步 驟:(6.1)將安裝包部署到目標(biāo)機(jī)器的Tomcat容器中:把步驟5中存儲(chǔ)的歷史軟件安裝包下 載到本地,然后再利用Tomcat的遠(yuǎn)程部署Manage功能來把歷史軟件安裝包部署到目標(biāo)機(jī)器 的 Tomcat 中。(6.2)拷貝配置文件和其他依賴文件到部署的目標(biāo)機(jī)器中:編寫好Linux中的腳本模 板,腳本模板中的內(nèi)容包括:用戶名和密碼通過SSH登錄目標(biāo)機(jī)器B、拷貝文件A到目標(biāo)機(jī)器B 中;其中的文件A為配置文件或其他依賴文件。(6.3)將腳本模板封裝到一個(gè)XML配置文件中,此XML文件的內(nèi)容按照J(rèn)enkins中Job配 置文件進(jìn)行組織。(6.4)調(diào)用Jenkins的更改配置文件的接口,將Jenkins中的Job配置文件進(jìn)行更改,然后再執(zhí)行Job的部署功能,最終實(shí)現(xiàn)項(xiàng)目模塊的自動(dòng)部署。9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述步驟I中,代碼框架組成為:展示層使用基于HTML/CSS/JS的前端框架。接口層使用Apache Shiro+SpringMVC架構(gòu),并使用Velocity作為視圖解析器。服務(wù)層選用EhCache來進(jìn)行緩存管理,用Quatz來進(jìn)行定時(shí)調(diào)度。持久層使用Spring Data和Mybatis來進(jìn)行持久存儲(chǔ)。數(shù)據(jù)存儲(chǔ)支持關(guān)系型數(shù)據(jù)庫和NoSQL型數(shù)據(jù)庫。10.根據(jù)權(quán)利要求8所述的方法,其特征在于,該方法還包括將步驟2所得數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)庫中的步驟,存儲(chǔ)方式采用(key ,value)對(duì)方式存儲(chǔ),數(shù)據(jù)庫采用MySQL,存儲(chǔ)彈性可擴(kuò)展。
【文檔編號(hào)】G06F9/445GK106095408SQ201610378096
【公開日】2016年11月9日
【申請(qǐng)日】2016年5月31日
【發(fā)明人】周波, 林茜茜, 阮兵兵, 錢遠(yuǎn)之, 李善平, 湯景凡, 祝曉春, 施韋, 王健, 吳兵華, 劉博 , 簡(jiǎn)小云, 彭志宇, 楊朝暉
【申請(qǐng)人】浙江網(wǎng)新恒天軟件有限公司