本技術(shù)涉及計(jì)算機(jī),尤其涉及一種軟件系統(tǒng)的部署方法、裝置、設(shè)備、存儲(chǔ)介質(zhì)及程序產(chǎn)品。
背景技術(shù):
1、在軟件系統(tǒng)的交付過程中,由于系統(tǒng)本身復(fù)雜程度較高以及用戶交付環(huán)境的多樣,系統(tǒng)交付難度高,因此需要開發(fā)軟件系統(tǒng)的交付工具用于輔助軟件系統(tǒng)快速部署。
2、當(dāng)前軟件系統(tǒng)的交付工具主要分為兩類:一類是定制化的軟件系統(tǒng)交付工具,這種交付工具針對(duì)特定軟件系統(tǒng)的軟件環(huán)境、交付介質(zhì)、部署流程進(jìn)行定制化開發(fā),靈活度較低,只要軟件環(huán)境、交付介質(zhì)、部署流程發(fā)生變化,就需要對(duì)交付工具進(jìn)行更改。另一類是通用工具,用戶想要部署某一軟件系統(tǒng)時(shí),可以利用這類工具比較方便地針對(duì)該軟件系統(tǒng)編寫腳本,從而實(shí)現(xiàn)軟件系統(tǒng)的自動(dòng)化部署,借助通用工具雖提高了部署的靈活性,但是依然存在部署效率低下的問題。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供一種軟件系統(tǒng)的部署方法、裝置、設(shè)備、存儲(chǔ)介質(zhì)及程序產(chǎn)品,用以提高軟件系統(tǒng)自動(dòng)化部署的效率和靈活性,提升用戶體驗(yàn)。
2、第一方面,本技術(shù)提供一種軟件系統(tǒng)的部署方法,包括:
3、展示可視化編排界面,其中,所述可視化編排界面用于供用戶對(duì)所述軟件系統(tǒng)包含的多個(gè)組件進(jìn)行編排;
4、根據(jù)用戶的編排操作,確定編排結(jié)果,其中,所述編排結(jié)果用于指示所述軟件系統(tǒng)包含的多個(gè)組件、所述多個(gè)組件之間的依賴關(guān)系以及各組件對(duì)應(yīng)的部署指令;
5、確定所述多個(gè)組件對(duì)應(yīng)的環(huán)境參數(shù)列表,并根據(jù)所述環(huán)境參數(shù)列表,配置多個(gè)部署環(huán)境對(duì)應(yīng)的環(huán)境參數(shù)信息;其中,所述軟件系統(tǒng)用于部署至所述多個(gè)部署環(huán)境中;
6、在獲取到所述多個(gè)組件以及各組件對(duì)應(yīng)的部署腳本后,確定每個(gè)組件對(duì)應(yīng)的部署環(huán)境,并將所述部署環(huán)境對(duì)應(yīng)的環(huán)境參數(shù)信息注入到所述組件對(duì)應(yīng)的部署腳本,得到更新后的部署腳本;
7、根據(jù)所述多個(gè)組件之間的依賴關(guān)系、各組件對(duì)應(yīng)的部署指令以及更新后的部署腳本,對(duì)所述多個(gè)組件進(jìn)行部署。
8、在一種可能的設(shè)計(jì)中,根據(jù)用戶的編排操作,確定編排結(jié)果,包括:
9、根據(jù)用戶的編排操作,確定所述軟件系統(tǒng)在部署過程對(duì)應(yīng)的多個(gè)階段以及所述多個(gè)階段的執(zhí)行順序;
10、確定各個(gè)階段對(duì)應(yīng)的待部署的模塊;其中,每一階段對(duì)應(yīng)至少一個(gè)模塊,每一模塊包括至少一個(gè)組件,同一模塊內(nèi)的組件對(duì)應(yīng)相同的依賴關(guān)系;所述多個(gè)階段涵蓋的組件構(gòu)成所述軟件系統(tǒng)的多個(gè)組件;
11、確定各組件對(duì)應(yīng)的部署指令;
12、存儲(chǔ)編排映射關(guān)系,所述編排映射關(guān)系用于指示所述多個(gè)階段中各階段對(duì)應(yīng)的模塊、各模塊對(duì)應(yīng)的組件、各模塊對(duì)應(yīng)的依賴關(guān)系以及各組件對(duì)應(yīng)的部署指令,以在部署過程中,根據(jù)所述編排映射關(guān)系對(duì)所述多個(gè)組件進(jìn)行部署。
13、在一種可能的設(shè)計(jì)中,根據(jù)所述多個(gè)組件之間的依賴關(guān)系、各組件對(duì)應(yīng)的部署指令以及更新后的部署腳本,對(duì)所述多個(gè)組件進(jìn)行部署,包括:
14、根據(jù)所述編排映射關(guān)系,確定所述多個(gè)階段的執(zhí)行順序;
15、針對(duì)每一階段,根據(jù)所述編排映射關(guān)系確定所述階段對(duì)應(yīng)的至少一個(gè)組件,根據(jù)各組件所屬的模塊對(duì)應(yīng)的依賴關(guān)系,確定各組件的執(zhí)行順序;其中,屬于同一模塊的組件對(duì)應(yīng)相同的執(zhí)行順序;
16、按照確定的執(zhí)行順序,根據(jù)各組件對(duì)應(yīng)的部署指令以及更新后的部署腳本,對(duì)所述多個(gè)組件進(jìn)行部署。
17、在一種可能的設(shè)計(jì)中,所述方法還包括:
18、獲取升級(jí)后的多個(gè)組件和各組件對(duì)應(yīng)的升級(jí)后的部署腳本;
19、確定每一升級(jí)后的組件對(duì)應(yīng)的部署環(huán)境,并將所述部署環(huán)境對(duì)應(yīng)的環(huán)境參數(shù)信息注入到對(duì)應(yīng)的部署腳本,得到更新后的部署腳本;其中,每一組件在升級(jí)前和升級(jí)后對(duì)應(yīng)相同的部署環(huán)境,或者,對(duì)應(yīng)不同的部署環(huán)境;
20、根據(jù)所述編排映射關(guān)系以及所述升級(jí)后的組件的更新后的部署腳本,對(duì)所述升級(jí)后的組件進(jìn)行部署。
21、在一種可能的設(shè)計(jì)中,每一組件的部署指令對(duì)應(yīng)的語言與所述組件的部署腳本對(duì)應(yīng)的語言相匹配;
22、其中,所述多個(gè)組件的部署指令涵蓋的語言有多種類型;
23、所述方法還包括:
24、在獲取到升級(jí)后的多個(gè)組件和各組件對(duì)應(yīng)的升級(jí)后的部署腳本后,若任一組件的部署腳本在升級(jí)前和升級(jí)后對(duì)應(yīng)不同的語言,則生成用于提示用戶對(duì)所述組件的部署指令進(jìn)行修改的提示信息。
25、在一種可能的設(shè)計(jì)中,確定所述多個(gè)組件對(duì)應(yīng)的環(huán)境參數(shù)列表,并根據(jù)所述環(huán)境參數(shù)列表,配置多個(gè)部署環(huán)境對(duì)應(yīng)的環(huán)境參數(shù)信息,包括:
26、獲取用戶在所述可視化編排界面輸入的環(huán)境參數(shù)列表;其中,所述環(huán)境參數(shù)列表為所述多個(gè)組件對(duì)應(yīng)的環(huán)境參數(shù)的并集,每一組件對(duì)應(yīng)的環(huán)境參數(shù)包括影響該組件運(yùn)行的至少一個(gè)環(huán)境參數(shù);
27、根據(jù)所述環(huán)境參數(shù)列表,配置多個(gè)部署環(huán)境對(duì)應(yīng)的環(huán)境參數(shù)信息,其中,每一部署環(huán)境對(duì)應(yīng)的環(huán)境參數(shù)信息用于指示在所述部署環(huán)境下,所述環(huán)境參數(shù)列表中各環(huán)境參數(shù)的參數(shù)值。
28、在一種可能的設(shè)計(jì)中,根據(jù)所述多個(gè)組件之間的依賴關(guān)系、各組件對(duì)應(yīng)的部署指令以及更新后的部署腳本,對(duì)所述多個(gè)組件進(jìn)行部署,包括:
29、根據(jù)所述多個(gè)組件之間的依賴關(guān)系確定所述多個(gè)組件的部署順序,并按照確定的部署順序?qū)λ龆鄠€(gè)組件進(jìn)行部署;
30、其中,在部署過程中,通過當(dāng)前待部署的組件對(duì)應(yīng)的部署指令調(diào)用所述組件對(duì)應(yīng)的更新后的部署腳本,以通過所述更新后的部署腳本,根據(jù)所述組件對(duì)應(yīng)的部署環(huán)境的環(huán)境參數(shù)信息,按照與所述環(huán)境參數(shù)信息相匹配的部署方式對(duì)所述組件進(jìn)行部署,根據(jù)所述環(huán)境參數(shù)信息配置所述組件的參數(shù)。
31、在一種可能的設(shè)計(jì)中,根據(jù)所述多個(gè)組件之間的依賴關(guān)系確定所述多個(gè)組件的部署順序,并按照確定的部署順序?qū)λ龆鄠€(gè)組件進(jìn)行部署,包括:
32、根據(jù)所述多個(gè)組件之間的依賴關(guān)系形成有向圖,其中,所述有向圖用于指示所述多個(gè)組件的部署順序;
33、根據(jù)所述有向圖中的入度和出度,通過多個(gè)線程對(duì)所述多個(gè)組件進(jìn)行部署。
34、在一種可能的設(shè)計(jì)中,所述方法還包括:
35、通過交互界面實(shí)時(shí)展示執(zhí)行結(jié)果,所述執(zhí)行結(jié)果包括階段級(jí)別的部署狀態(tài)、模塊級(jí)別的部署狀態(tài)以及當(dāng)前部署的組件的部署腳本對(duì)應(yīng)的執(zhí)行結(jié)果;
36、響應(yīng)于用戶通過交互界面發(fā)起的針對(duì)組件的暫停指令,在所述組件的部署腳本執(zhí)行完成后,暫停部署流程;
37、響應(yīng)于用戶通過交互界面發(fā)起的針對(duì)模塊或階段的暫停指令,在所述模塊或階段部署完成后,暫停部署流程。
38、第二方面,本技術(shù)提供一種軟件系統(tǒng)的部署裝置,包括:
39、展示模塊,用于展示可視化編排界面,其中,所述可視化編排界面用于供用戶對(duì)所述軟件系統(tǒng)包含的多個(gè)組件進(jìn)行編排;
40、編排模塊,用于根據(jù)用戶的編排操作,確定編排結(jié)果,其中,所述編排結(jié)果用于指示所述軟件系統(tǒng)包含的多個(gè)組件、所述多個(gè)組件之間的依賴關(guān)系以及各組件對(duì)應(yīng)的部署指令;
41、配置模塊,用于確定所述多個(gè)組件對(duì)應(yīng)的環(huán)境參數(shù)列表,并根據(jù)所述環(huán)境參數(shù)列表,配置多個(gè)部署環(huán)境對(duì)應(yīng)的環(huán)境參數(shù)信息;其中,所述軟件系統(tǒng)用于部署至所述多個(gè)部署環(huán)境中;
42、確定模塊,用于在獲取到所述多個(gè)組件以及各組件對(duì)應(yīng)的部署腳本后,確定每個(gè)組件對(duì)應(yīng)的部署環(huán)境,并將所述部署環(huán)境對(duì)應(yīng)的環(huán)境參數(shù)信息注入到所述組件對(duì)應(yīng)的部署腳本,得到更新后的部署腳本;
43、部署模塊,用于根據(jù)所述多個(gè)組件之間的依賴關(guān)系、各組件對(duì)應(yīng)的部署指令以及更新后的部署腳本,對(duì)所述多個(gè)組件進(jìn)行部署。
44、第三方面,本技術(shù)提供一種電子設(shè)備,包括:處理器,與所述處理器通信連接的存儲(chǔ)器;
45、所述存儲(chǔ)器存儲(chǔ)計(jì)算機(jī)執(zhí)行指令;
46、所述處理器執(zhí)行所述存儲(chǔ)器存儲(chǔ)的計(jì)算機(jī)執(zhí)行指令,以實(shí)現(xiàn)第一方面任一項(xiàng)所述的方法。
47、第四方面,本技術(shù)提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)執(zhí)行指令,所述計(jì)算機(jī)執(zhí)行指令被處理器執(zhí)行時(shí)用于實(shí)現(xiàn)第一方面任一項(xiàng)所述的方法。
48、第五方面,本技術(shù)提供一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)程序,該計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)第一方面任一項(xiàng)所述的方法。
49、本技術(shù)提供的軟件系統(tǒng)的部署方法、裝置、設(shè)備、存儲(chǔ)介質(zhì)及程序產(chǎn)品,可以展示可視化編排界面,所述可視化編排界面用于供用戶對(duì)所述軟件系統(tǒng)包含的多個(gè)組件進(jìn)行編排,根據(jù)用戶的編排操作,確定編排結(jié)果,其中,所述編排結(jié)果用于指示所述軟件系統(tǒng)包含的多個(gè)組件、所述多個(gè)組件之間的依賴關(guān)系以及各組件對(duì)應(yīng)的部署指令,確定所述多個(gè)組件對(duì)應(yīng)的環(huán)境參數(shù)列表,并根據(jù)所述環(huán)境參數(shù)列表,配置多個(gè)部署環(huán)境對(duì)應(yīng)的環(huán)境參數(shù)信息,其中,所述軟件系統(tǒng)用于部署至所述多個(gè)部署環(huán)境中,在獲取到所述多個(gè)組件以及各組件對(duì)應(yīng)的部署腳本后,確定每個(gè)組件對(duì)應(yīng)的部署環(huán)境,并將所述部署環(huán)境對(duì)應(yīng)的環(huán)境參數(shù)信息注入到所述組件對(duì)應(yīng)的部署腳本,得到更新后的部署腳本,根據(jù)所述多個(gè)組件之間的依賴關(guān)系、各組件對(duì)應(yīng)的部署指令以及更新后的部署腳本,對(duì)所述多個(gè)組件進(jìn)行部署。通過采用可視化編排界面,并基于編排結(jié)果確定各組件的部署指令及多個(gè)組件之間的依賴關(guān)系,能夠以直觀簡(jiǎn)便的方式搭建復(fù)雜軟件系統(tǒng)的部署過程,針對(duì)組件對(duì)應(yīng)的環(huán)境參數(shù)列表配置環(huán)境參數(shù)信息,并將部署環(huán)境對(duì)應(yīng)的環(huán)境參數(shù)信息注入到組件對(duì)應(yīng)的部署腳本中來更新組件的部署腳本,部署腳本可以根據(jù)組件特性和環(huán)境要求進(jìn)行開發(fā),實(shí)現(xiàn)了將部署腳本與交付工具分離,降低了部署的難度,提高了部署效率,且在組件進(jìn)行更新升級(jí)、技術(shù)替換、場(chǎng)景擴(kuò)展時(shí),可以復(fù)用原編排結(jié)果或部署腳本,有效提升了整體的部署靈活性和效率,提升用戶體驗(yàn)。