本申請涉及信息技術(shù)領(lǐng)域,特別是涉及一種應(yīng)用部署方法和一種應(yīng)用部署裝置。
背景技術(shù):
現(xiàn)代軟件系統(tǒng)通常有很多依賴,特別是在云環(huán)境中,一個應(yīng)用會依賴底層的運行時環(huán)境和很多第三方庫、周邊的系統(tǒng),比如語言運行時環(huán)境、數(shù)據(jù)庫、Web服務(wù)器、分布式存儲。應(yīng)用本身有很多的配置文件來管理這些依賴,比如庫文件運行時參數(shù)、數(shù)據(jù)庫連接配置、Web服務(wù)器配置、自身的啟動參數(shù)。在部署過程中,需要先寫入這些配置信息,然后加載相關(guān)依賴,最后啟動應(yīng)用。
為了做到從準(zhǔn)備好安裝包到應(yīng)用正確啟動的自動化應(yīng)用部署,必須定制每個應(yīng)用的部署流程,解決部署過程中的依賴問題、配置管理和可根據(jù)部署需要進行動態(tài)定制的問題,以便在部署的末尾能正確地啟動應(yīng)用。
現(xiàn)有的應(yīng)用部署系統(tǒng)包括部署管理模塊、執(zhí)行模塊、SVN服務(wù)器、數(shù)據(jù)庫和客戶端。該系統(tǒng)下的應(yīng)用部署方法包括:部署管理模塊向執(zhí)行模塊發(fā)送部署命令及部署信息,部署信息包括生產(chǎn)環(huán)境中需要部署的服務(wù)器及組件信息;執(zhí)行模塊接收部署命令及部署信息,并根據(jù)部署信息從數(shù)據(jù)庫中獲取需要部署的組件的版本信息,將版本信息發(fā)送給需要部署的服務(wù)器上的客戶端;客戶端根據(jù)該版本信息從SVN服務(wù)器下載版本文件,并根據(jù)腳本文件運行對應(yīng)版本文件,完成本次部署。
對于某些應(yīng)用部署場景,例如考慮中間件的部署場景,不同的中間件集群通常有不同的配置參數(shù)(如數(shù)據(jù)庫連接信息、啟動參數(shù)、集群配置等),以適配上層不同業(yè)務(wù)應(yīng)用的運行要求,然而,上述應(yīng)用部署方法在部署時應(yīng)用的所有部署都只能使用一樣的配置,無法實現(xiàn)應(yīng)用部署時的參數(shù)動態(tài)可配置。
技術(shù)實現(xiàn)要素:
本申請實施例的發(fā)明目的在于提供一種應(yīng)用部署方法,能夠?qū)崿F(xiàn)應(yīng)用部署時的參數(shù)動態(tài)可配置。
相應(yīng)的,本申請實施例還提供了一種應(yīng)用部署裝置,用以保證上述方法的實現(xiàn)及應(yīng)用。
為了解決上述問題,本申請公開了一種應(yīng)用部署方法,包括:
獲取應(yīng)用的運行文件包和配置文件包;
獲取預(yù)先生成的配置信息,并根據(jù)所述配置信息修正所述配置文件包;
按照預(yù)先設(shè)置的應(yīng)用部署流程,將所述運行文件包及修正后的所述配置文件包分發(fā)到應(yīng)用客戶端所在服務(wù)器,執(zhí)行所述應(yīng)用的安裝過程。
進一步,所述獲取應(yīng)用的運行文件包和配置文件包,包括:
在版本基線數(shù)據(jù)庫中獲取所述應(yīng)用的所述運行文件包的版本基線信息和所述配置文件包的版本基線信息;
根據(jù)版本基線信息與云存儲地址之間的對應(yīng)關(guān)系,獲得所述運行文件包的云存儲地址及所述配置文件包的云存儲地址;
根據(jù)所述運行文件包的云存儲地址及所述配置文件包的云存儲地址,從云存儲倉庫中下載獲得所述運行文件包和所述配置文件包。
進一步,所述根據(jù)所述運行文件包的云存儲地址及所述配置文件包的云存儲地址,從云存儲倉庫中下載獲得所述運行文件包和所述配置文件包,包括:
根據(jù)所述運行文件包的云存儲地址及所述配置文件包的云存儲地址,并行從運行包云存儲倉庫中下載獲得所述運行文件包及從配置包云存儲倉庫中下載獲得所述配置文件包。
進一步,在所述按照預(yù)先設(shè)置的應(yīng)用部署流程,將所述運行文件包及修正后的所述配置文件包分發(fā)到應(yīng)用客戶端所在服務(wù)器,執(zhí)行所述應(yīng)用的安裝過程之前,還包括:
加載與所述應(yīng)用對應(yīng)的應(yīng)用部署流程模板。
進一步,根據(jù)所述配置信息修正所述配置文件包,包括:
對所述配置信息進行解析,獲取配置參數(shù)值;
采用所述配置參數(shù)值對所述配置文件包中默認的運行配置參數(shù)進行修正。
進一步,所述方法還包括:
從軟件包中分離出運行文件和配置文件;
為所述配置文件配置默認的運行配置參數(shù);
為所述運行文件配置版本基線信息生成運行文件包,并為所述配置文件配置版本基線信息生成配置文件包;
依據(jù)版本基線信息將所述運行文件包和配置文件包分別存儲到存儲倉庫對應(yīng)的云存儲地址中。
進一步,將所述運行文件包及修正后的所述配置文件包分發(fā)到應(yīng)用客戶端所在服務(wù)器,包括:
通過異步方式,將所述運行文件包及修正后的所述配置文件包批量分發(fā)到應(yīng)用客戶端所在服務(wù)器。
進一步,所述配置信息為ini文件。
本申請還公開了一種應(yīng)用部署裝置,包括:
獲取單元,被配置為獲取應(yīng)用的運行文件包和配置文件包;
修正單元,被配置為獲取預(yù)先生成的配置信息,并根據(jù)所述配置信息修正所述配置文件包;
執(zhí)行單元,被配置為按照預(yù)先設(shè)置的應(yīng)用部署流程,將所述運行文件包及修正后的所述配置文件包分發(fā)到應(yīng)用客戶端所在服務(wù)器,執(zhí)行所述應(yīng)用的安裝過程。
進一步,所述獲取單元包括:
信息獲取子單元,被配置為在版本基線數(shù)據(jù)庫中獲取所述應(yīng)用的所述運行文件包的版本基線信息和所述配置文件包的版本基線信息;
地址獲取子單元,被配置為根據(jù)版本基線信息與云存儲地址之間的對應(yīng)關(guān)系,獲得所述運行文件包的云存儲地址及所述配置文件包的云存儲地址;
下載子單元,被配置為根據(jù)所述運行文件包的云存儲地址及所述配置文 件包的云存儲地址,從云存儲倉庫中下載獲得所述運行文件包和所述配置文件包。
進一步,所述下載子單元,被配置為根據(jù)所述運行文件包的云存儲地址及所述配置文件包的云存儲地址,并行從運行包云存儲倉庫中下載獲得所述運行文件包及從配置包云存儲倉庫中下載獲得所述配置文件包。
進一步,所述裝置還包括:
加載單元,被配置為在所述執(zhí)行單元按照預(yù)先設(shè)置的應(yīng)用部署流程,將所述運行文件包及修正后的所述配置文件包分發(fā)到應(yīng)用客戶端所在服務(wù)器,執(zhí)行所述應(yīng)用的安裝過程之前,加載與所述應(yīng)用對應(yīng)的應(yīng)用部署流程模板。
進一步,所述修正單元包括:
參數(shù)解析子單元,被配置為對所述配置信息進行解析,獲取配置參數(shù)值;
參數(shù)修正子單元,被配置為采用所述配置參數(shù)值對所述配置文件包中默認的運行配置參數(shù)進行修正。
進一步,還包括:
分離單元,被配置為從軟件包中分離出運行文件和配置文件;為所述配置文件配置默認的運行配置參數(shù);為所述運行文件配置版本基線信息生成運行文件包,并為所述配置文件配置版本基線信息生成配置文件包;
存儲單元,被配置為依據(jù)版本基線信息將所述運行文件包和配置文件包分別存儲到存儲倉庫對應(yīng)的云存儲地址中。
進一步,所述執(zhí)行單元,被配置為通過異步方式,將所述運行文件包及修正后的所述配置文件包批量分發(fā)到應(yīng)用客戶端所在服務(wù)器。
進一步,所述配置信息為ini文件。
與現(xiàn)有技術(shù)相比,本申請實施例包括以下優(yōu)點:
本申請實施例通過將應(yīng)用的各個軟件包及其依賴的運行時環(huán)境的安裝包進行分離,劃分為運行文件包和配置文件包,并預(yù)先針對不同的運行環(huán)境生成配置信息,從而使得在應(yīng)用部署時可以利用不同運行環(huán)境下的配置信息對配置文件包進行修正,從而改變了現(xiàn)有應(yīng)用的所有部署都只能使用同一配置的情況,實現(xiàn)了應(yīng)用部署時的參數(shù)動態(tài)可配置,進而實現(xiàn)了搭建不同應(yīng)用 集群可以指定不同的運行時配置參數(shù),以適應(yīng)不同的業(yè)務(wù)需求,該方法實現(xiàn)了應(yīng)用部署的靈活性和動態(tài)可定制性。
附圖說明
圖1是本申請的一種應(yīng)用部署方法實施例的步驟流程圖;
圖2是本申請中的一種軟件包的分離和存儲的方法實施例的步驟流程圖;
圖3是本申請中的一種獲取應(yīng)用的運行文件包和配置文件包的方法實施例的步驟流程圖;
圖4是本申請中的版本基線數(shù)據(jù)庫與運行包云存儲和配置包云存儲之間的關(guān)聯(lián)示意圖;
圖5是本申請的另一種應(yīng)用部署方法實施例的步驟流程圖;
圖6是本申請中的應(yīng)用部署的一種系統(tǒng)架構(gòu)示意圖;
圖7是本申請的一種應(yīng)用部署裝置實施例的結(jié)構(gòu)框圖;
圖8是本申請中的一種獲取單元的結(jié)構(gòu)框圖;
圖9是本申請的另一種應(yīng)用部署裝置實施例的結(jié)構(gòu)框圖;
圖10是本申請中的一種修正單元的結(jié)構(gòu)框圖;
圖11是本申請的又一種應(yīng)用部署裝置實施例的結(jié)構(gòu)框圖。
具體實施方式
為使本申請的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式對本申請作進一步詳細的說明。
參照圖1,示出了本申請的一種應(yīng)用部署方法實施例的步驟流程圖,具體可以包括如下步驟:
步驟101,獲取應(yīng)用的運行文件包和配置文件包。
本申請實施例中,用于應(yīng)用部署的裝置或系統(tǒng)(以下簡稱該裝置)預(yù)先將應(yīng)用的各個軟件包,及其依賴的運行時環(huán)境的安裝包進行分離,劃分為運行文件包和配置文件包。
其中,配置文件包可以為不同運行環(huán)境下文件包內(nèi)的配置參數(shù)會發(fā)生變 化或需要修改的文件包,例如中間件的部署場景中,不同的中間件集群通常有不同的配置參數(shù)(如數(shù)據(jù)庫連接信息、啟動參數(shù)、集群配置等),以適配上層不同業(yè)務(wù)應(yīng)用的運行要求。該配置文件包中的配置參數(shù)等可以預(yù)先設(shè)置為默認值。而運行文件包中的數(shù)據(jù)內(nèi)容在不同的運行環(huán)境中一般相對固定。
另外,應(yīng)用的運行文件包和配置文件包可以存儲在同一數(shù)據(jù)庫中,也可以分開存儲,還可以存儲在云存儲倉庫中等。
該裝置在對應(yīng)用進行部署時,首先獲得該應(yīng)用的運行文件包和配置文件包。
步驟102,獲取預(yù)先生成的配置信息,并根據(jù)配置信息修正配置文件包。
該裝置預(yù)先針對應(yīng)用的不同運行環(huán)境生成有不同的配置信息,該配置信息可以包括機器列表和各配置參數(shù)值,主要可以包括要機器列表段[deploy-servers],其中列出要部署集群的機器IP列表,以及配置參數(shù)段[deploy-configs],其中列出適用于這個集群的的應(yīng)用部署配置參數(shù)值。
該配置信息可以為ini文件。ini文件解析過程簡單。
在該裝置上步驟獲得配置文件包后,在本步驟中即可調(diào)取預(yù)先生成的配置信息,然后根據(jù)該配置信息對配置文件包中的配置參數(shù)進行修正。因此,本申請一個可選實施例中,根據(jù)所述配置信息修正所述配置文件包,包括:對所述配置信息進行解析,獲取配置參數(shù)值;采用所述配置參數(shù)值對所述配置文件包中默認的運行配置參數(shù)進行修正。
該裝置可以首先解壓配置文件包獲取其中的配置文件,配置文件中的運行配置參數(shù)配置有默認值。解析配置信息的ini文件,然后獲取配置信息中的配置參數(shù)值,采用所述配置參數(shù)值對所述配置文件中默認的運行配置參數(shù)進行修正,即采用配置參數(shù)值插入或替換到配置文件包中的對應(yīng)文件中,以修改配置文件包中的運行配置參數(shù)的默認值,從而讓應(yīng)用在部署時可以根據(jù)集群環(huán)境、業(yè)務(wù)需要動態(tài)調(diào)整運行時的配置參數(shù)值,無需在應(yīng)用部署完之后登錄到機器來修改配置參數(shù),實現(xiàn)了應(yīng)用部署的靈活性和動態(tài)可定制性。
在將配置信息中的配置參數(shù)值插入或替換到配置文件包中的對應(yīng)文件中去的過程中,如果插入或替換操作產(chǎn)生沖突或者沒有成功,則修正失敗, 可以直接使用配置文件包的默認參數(shù),即直接使用各運行配置參數(shù)的默認值。
步驟103,按照預(yù)先設(shè)置的應(yīng)用部署流程,將運行文件包及修正后的配置文件包分發(fā)到應(yīng)用客戶端所在服務(wù)器,執(zhí)行應(yīng)用的安裝過程。
在完成對配置文件包的修正后,該裝置即可根據(jù)應(yīng)用部署流程,將運行文件包及修正后的配置文件包分發(fā)到應(yīng)用客戶端所在各服務(wù)器,分別執(zhí)行應(yīng)用的安裝過程。
本申請實施例通過將應(yīng)用的各個軟件包及其依賴的運行時環(huán)境的安裝包進行分離,劃分為運行文件包和配置文件包,并預(yù)先針對不同的運行環(huán)境生成配置信息,從而使得在應(yīng)用部署時可以利用不同運行環(huán)境下的配置信息對配置文件包進行修正,從而改變了現(xiàn)有應(yīng)用的所有部署都只能使用同一配置的情況,實現(xiàn)了應(yīng)用部署時的參數(shù)動態(tài)可配置,進而實現(xiàn)了搭建不同應(yīng)用集群可以指定不同的運行時配置參數(shù),以適應(yīng)不同的業(yè)務(wù)需求,該方法實現(xiàn)了應(yīng)用部署的靈活性和動態(tài)可定制性。
在本申請的另一可選實施例中,軟件包的分離和存儲,具體可以如圖2所示,包括:
步驟201,從軟件包中分離出運行文件和配置文件。
步驟202,為所述配置文件配置默認的運行配置參數(shù)。
本實施例中,將應(yīng)用的軟件包,及其依賴的運行時環(huán)境的安裝包統(tǒng)稱為軟件包,為了能夠動態(tài)定制、部署應(yīng)用,預(yù)先從軟件包中查找配置相關(guān)的數(shù)據(jù)和運行相關(guān)的數(shù)據(jù),分離出運行文件和配置文件。然后將配置文件進行模塊化處理,即生成標(biāo)準(zhǔn)化的配置文件,配置文件中的各運行配置參數(shù)均在相應(yīng)的模塊,為各運行配置參數(shù)配置默認值生成默認的運行配置參數(shù)。
步驟203,為所述運行文件配置版本基線信息生成運行文件包,并為所述配置文件配置版本基線信息生成配置文件包。
步驟204,依據(jù)版本基線信息將所述運行文件包和配置文件包分別存儲到存儲倉庫對應(yīng)的云存儲地址中。
本申請實施例中,一個應(yīng)用的安裝包會有多個版本,運行文件包和配置 文件包也可能會有多個版本,一個版本表示一個基線。因此可以為所述運行文件配置版本基線信息生成運行文件包,并為所述配置文件配置版本基線信息生成配置文件包。該裝置采用版本基線數(shù)據(jù)庫對應(yīng)用的運行文件包及配置文件包的版本基線信息進行統(tǒng)一管理,該版本基線數(shù)據(jù)庫中包含各運行文件包及配置文件包的版本基線信息以及各版本文件包的存儲地址,而不存儲各文件包。各版本的運行文件包及配置文件包可以統(tǒng)一存儲在云存儲倉庫中,通過HTTP URL來訪問。因此可以依據(jù)版本基線信息分別確定運行文件包和配置文件包的云存儲地址,該云存儲地址即為云存儲倉庫中存儲數(shù)據(jù)文件的地址信息,因此可以將所述運行文件包和配置文件包分別存儲到存儲倉庫對應(yīng)的云存儲地址中。
通過版本基線數(shù)據(jù)庫來統(tǒng)一管理版本基線信息和包的云存儲地址而將各文件包存放在云存儲中,可以節(jié)省數(shù)據(jù)庫的存儲空間,并且各文件包可以從云存儲中方便的下載。另外,各文件包的一個版本對應(yīng)一個基線,該版本基線信息管理方法方便升級集群上的應(yīng)用。所有配置文件打包存儲,統(tǒng)一管理,也避免了下載和拷貝大量的小文件。
在本申請的另一實施例中,上述獲取應(yīng)用的運行文件包和配置文件包的過程,具體可以如圖3所示,包括:
步驟301,在版本基線數(shù)據(jù)庫中獲取應(yīng)用的運行文件包的版本基線信息和配置文件包的版本基線信息。
該裝置在獲得應(yīng)用的運行文件包和配置文件包時,首先在版本基線數(shù)據(jù)庫中確定運行文件包的版本基線信息和配置文件包的版本基線信息。
步驟302,根據(jù)版本基線信息與云存儲地址之間的對應(yīng)關(guān)系,獲得運行文件包的云存儲地址及配置文件包的云存儲地址。
在本步驟中,該裝置再根據(jù)版本基線數(shù)據(jù)庫中各文件包的版本基線信息與云存儲地址之間的對應(yīng)關(guān)系,確定出運行文件包的云存儲地址及配置文件包的云存儲地址。
步驟303,根據(jù)運行文件包的云存儲地址及配置文件包的云存儲地址,從云存儲倉庫中下載獲得運行文件包和配置文件包。
在獲得云存儲地址后,該裝置即可從云存儲倉庫中下載獲得該應(yīng)用的運行文件包和配置文件包。
在另一實施例中,為了加快應(yīng)用的運行文件包和配置文件包的下載速度,可以將運行文件包及配置文件包分別存儲在不同的云存儲倉庫中,如圖4所示,版本基線數(shù)據(jù)庫中存儲了運行文件包的版本基線信息對應(yīng)的在運行包云存儲倉庫中的地址,以及配置文件包的版本基線信息對應(yīng)的在配置包云存儲倉庫中的地址,那么,根據(jù)運行文件包的云存儲地址及配置文件包的云存儲地址,從云存儲倉庫中下載獲得運行文件包和所述配置文件包的過程,具體可以是:
根據(jù)運行文件包的云存儲地址及配置文件包的云存儲地址,并行從運行包云存儲倉庫中下載獲得運行文件包及從配置包云存儲倉庫中下載獲得所述配置文件包。
該下載過程可以使用異步I/O,從而提高下載速度。通過運行文件包和配置文件包的云存儲和版本基線管理,可以實現(xiàn)集中、批量、并行地分發(fā)軟件包,從而可以進行快速的大規(guī)模集群部署。
在本申請的另一實施例中,在按照預(yù)先設(shè)置的應(yīng)用部署流程,將運行文件包及修正后的配置文件包分發(fā)到應(yīng)用客戶端所在服務(wù)器,執(zhí)行應(yīng)用的安裝過程之前,如圖5所示,該方法還可以包括:
步驟501,加載與該應(yīng)用對應(yīng)的應(yīng)用部署流程模板。
本實施例中,該裝置不再使用統(tǒng)一的或固定的應(yīng)用部署流程,而是可以預(yù)先建立多個應(yīng)用部署流程模板,且不同應(yīng)用的部署流程對應(yīng)不同的部署流程模板。該部署流程模板主要包括在目標(biāo)機器上創(chuàng)建安裝目錄、把應(yīng)用和其依賴應(yīng)用的運行包和配置包通過下載模塊批量分發(fā)到目標(biāo)機器、解壓包、拷貝配置文件、拷貝運行文件、檢測應(yīng)用的服務(wù)進程是否存在、若存在則停止、啟動新的應(yīng)用服務(wù)、檢查服務(wù)是否啟動成功等。不同應(yīng)用根據(jù)自身特點有不同的部署流程模板。該應(yīng)用部署流程模板可以是yaml。
在加載與該應(yīng)用對應(yīng)的應(yīng)用部署流程模板后,在執(zhí)行前述步驟103時,即可按照該加載的應(yīng)用部署流程,將運行文件包及修正后的配置文件包分發(fā) 到應(yīng)用客戶端所在服務(wù)器,執(zhí)行應(yīng)用的安裝過程。其中,將所述運行文件包及修正后的所述配置文件包分發(fā)到應(yīng)用客戶端所在服務(wù)器,包括:通過異步方式,將所述運行文件包及修正后的所述配置文件包批量分發(fā)到應(yīng)用客戶端所在服務(wù)器。即在分發(fā)過程中可以采用異步I/O方式,并行對運行文件包及修正后的配置文件包進行分發(fā),實現(xiàn)運行文件包及修正后的配置文件包的批量分發(fā),通過運行文件包和配置文件包的云存儲和版本基線管理,可以實現(xiàn)集中、批量、并行地分發(fā)軟件包,從而可以進行快速的大規(guī)模集群部署。
相應(yīng)的,應(yīng)用客戶端所在服務(wù)器可以依據(jù)部署流程模板的部署執(zhí)行安裝過程,例如創(chuàng)建相應(yīng)的安裝目錄,解壓縮安裝包即運行文件包及修正后的配置文件包,拷貝配置文件、拷貝運行文件,然后檢測應(yīng)用的服務(wù)進程是否存在、若存在則停止、啟動新的應(yīng)用服務(wù)、檢查服務(wù)是否啟動成功等,進行該應(yīng)用的安裝。
該方法可以使不同應(yīng)用的部署流程可定制化,當(dāng)應(yīng)用的部署過程有變化時,只需更新流程模板,無需要更新部署模塊或該部署裝置。通過不同的部署流程模板,可以實現(xiàn)流程編排。
基于上述實施例,整個系統(tǒng)架構(gòu)可以如圖6所示,該裝置首先從版本基線數(shù)據(jù)庫中獲得運行文件包和配置文件包的版本信息及存儲地址,然后從運行包云存儲倉庫和配置包云存儲倉庫中并行下載獲得應(yīng)用的運行文件包和配置文件包,然后采用預(yù)先生成的配置信息對配置文件包進行修正,在獲得修正后的配置文件包后,從應(yīng)用部署流程模板中確定與該應(yīng)用對應(yīng)的應(yīng)用部署流程模板,并加載該部署流程模板,然后按照該部署流程模板將運行文件包及修正后的配置文件包分發(fā)到應(yīng)用客戶端所在的各服務(wù)器,執(zhí)行應(yīng)用的安裝過程。其中,底層使用異步I/O來分發(fā)各安裝包,不僅實現(xiàn)了批量分發(fā)安裝包到目標(biāo)機器,還使得對各臺機器分發(fā)運行包和配置包時并行化,從而加快了批量分發(fā)安裝包的速度。
需要說明的是,對于方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請實施例并不受所描述的動作順序的限制,因為依據(jù)本申請實施例,某些步驟可以采用其他順序或 者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作并不一定是本申請實施例所必須的。
參照圖7,示出了本申請一種應(yīng)用部署裝置實施例的結(jié)構(gòu)框圖,具體可以包括如下單元:
獲取單元701,被配置為獲取應(yīng)用的運行文件包和配置文件包。
修正單元702,被配置為獲取預(yù)先生成的配置信息,并根據(jù)所述配置信息修正所述配置文件包。
執(zhí)行單元703,被配置為按照預(yù)先設(shè)置的應(yīng)用部署流程,將所述運行文件包及修正后的所述配置文件包分發(fā)到應(yīng)用客戶端所在服務(wù)器,執(zhí)行所述應(yīng)用的安裝過程。
本申請實施例通過上述單元將應(yīng)用的各個軟件包及其依賴的運行時環(huán)境的安裝包進行分離,劃分為運行文件包和配置文件包,并預(yù)先針對不同的運行環(huán)境生成配置信息,從而使得在應(yīng)用部署時可以利用不同運行環(huán)境下的配置信息對配置文件包進行修正,從而改變了現(xiàn)有應(yīng)用的所有部署都只能使用同一配置的情況,實現(xiàn)了應(yīng)用部署時的參數(shù)動態(tài)可配置,進而實現(xiàn)了搭建不同應(yīng)用集群可以指定不同的運行時配置參數(shù),以適應(yīng)不同的業(yè)務(wù)需求,該裝置實現(xiàn)了應(yīng)用部署的靈活性和動態(tài)可定制性。
在另一實施例中,如圖8所示,獲取單元701可以進一步包括:
信息獲取子單元801,被配置為在版本基線數(shù)據(jù)庫中獲取所述應(yīng)用的所述運行文件包的版本基線信息和所述配置文件包的版本基線信息。
地址獲取子單元802,被配置為根據(jù)版本基線信息與云存儲地址之間的對應(yīng)關(guān)系,獲得所述運行文件包的云存儲地址及所述配置文件包的云存儲地址。
下載子單元803,被配置為根據(jù)所述運行文件包的云存儲地址及所述配置文件包的云存儲地址,從云存儲倉庫中下載獲得所述運行文件包和所述配置文件包。
其中,下載子單元803,具體可以被配置為根據(jù)所述運行文件包的云存儲地址及所述配置文件包的云存儲地址,并行從運行包云存儲倉庫中下載獲 得所述運行文件包及從配置包云存儲倉庫中下載獲得所述配置文件包。
在另一實施例中,如圖9所示,該裝置還可以包括:
加載單元901,被配置為在執(zhí)行單元703按照預(yù)先設(shè)置的應(yīng)用部署流程,將所述運行文件包及修正后的所述配置文件包分發(fā)到應(yīng)用客戶端所在服務(wù)器,執(zhí)行所述應(yīng)用的安裝過程之前,加載與所述應(yīng)用對應(yīng)的應(yīng)用部署流程模板。
在另一實施例中,如圖10所示,所述修正單元702包括:
參數(shù)解析子單元1001,被配置為對所述配置信息進行解析,獲取配置參數(shù)值;
參數(shù)修正子單元1002,被配置為采用所述配置參數(shù)值對所述配置文件包中默認的運行配置參數(shù)進行修正。
在另一實施例中,如圖11所示,所述裝置還包括:
分離單元1101,被配置為從軟件包中分離出運行文件和配置文件;為所述配置文件配置默認的運行配置參數(shù);為所述運行文件配置版本基線信息生成運行文件包,并為所述配置文件配置版本基線信息生成配置文件包;
存儲單元1102,被配置為依據(jù)版本基線信息將所述運行文件包和配置文件包分別存儲到存儲倉庫對應(yīng)的云存儲地址中。
在另一實施例中,所述執(zhí)行單元703,被配置為通過異步方式,將所述運行文件包及修正后的所述配置文件包批量分發(fā)到應(yīng)用客戶端所在服務(wù)器。
上述配置信息均可以為ini文件。
本申請實施例還提供了一種電子設(shè)備,包括存儲器和處理器。
處理器與存儲器通過總線相互連接;總線可以是ISA總線、PCI總線或EISA總線等。所述總線可以分為地址總線、數(shù)據(jù)總線、控制總線等。
其中,存儲器用于存儲一段程序,具體地,程序可以包括程序代碼,所述程序代碼包括計算機操作指令。存儲器可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。
處理器用于讀取存儲器中的程序代碼,執(zhí)行以下步驟:
獲取應(yīng)用的運行文件包和配置文件包;
獲取預(yù)先生成的配置信息,并根據(jù)所述配置信息修正所述配置文件包;
按照預(yù)先設(shè)置的應(yīng)用部署流程,將所述運行文件包及修正后的所述配置文件包分發(fā)到應(yīng)用客戶端所在服務(wù)器,執(zhí)行所述應(yīng)用的安裝過程。
對于裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。
本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請實施例的實施例可提供為方法、裝置、或計算機程序產(chǎn)品。因此,本申請實施例可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本申請實施例可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。
在一個典型的配置中,所述計算機設(shè)備包括一個或多個處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。內(nèi)存可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內(nèi)存是計算機可讀介質(zhì)的示例。計算機可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他 光學(xué)存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設(shè)備訪問的信息。按照本文中的界定,計算機可讀介質(zhì)不包括非持續(xù)性的電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號和載波。
本申請實施例是參照根據(jù)本申請實施例的方法、終端設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理終端設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理終端設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理終端設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理終端設(shè)備上,使得在計算機或其他可編程終端設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程終端設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本申請實施例的優(yōu)選實施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實施例以及落入本申請實施例范圍的所有變更和修改。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù) 語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者終端設(shè)備中還存在另外的相同要素。
以上對本申請所提供的一種應(yīng)用部署方法和一種應(yīng)用部署裝置,進行了詳細介紹,本文中應(yīng)用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本申請的限制。