本發(fā)明涉及數(shù)據(jù)處理,具體而言,涉及一種軟件包的安裝方法及系統(tǒng)、電子設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、相關(guān)技術(shù)中,在軟件包和補丁安裝過程中,當安裝服務(wù)過多時,會導(dǎo)致部署過程中安裝工具的頁面產(chǎn)生延遲;同時在整個安裝過程中如果需要安裝的軟件包和補丁過多時,會導(dǎo)致整個安裝過程周期很長。
技術(shù)實現(xiàn)思路
1、本發(fā)明旨在至少解決現(xiàn)有技術(shù)或相關(guān)技術(shù)中存在的技術(shù)問題之一。
2、為此,本發(fā)明的第一個方面提出了一種軟件包的安裝方法。
3、本發(fā)明的第二個方面提出了一種軟件包的安裝系統(tǒng)。
4、本發(fā)明的第三個方面提出了一種電子設(shè)備。
5、本發(fā)明的第四個方面提出了一種存儲介質(zhì)。
6、有鑒于此,根據(jù)本發(fā)明的第一個方面,提出了一種軟件包的安裝方法,軟件包中包括多個應(yīng)用程序;軟件包的安裝方法包括:獲取與軟件包相關(guān)的數(shù)據(jù)腳本和中間件;對數(shù)據(jù)腳本和中間件進行安裝,生成應(yīng)用環(huán)境;根據(jù)應(yīng)用環(huán)境獲取軟件包中的多個第一應(yīng)用程序,第一應(yīng)用程序與應(yīng)用環(huán)境相對應(yīng);構(gòu)建agent調(diào)度服務(wù)集群;根據(jù)agent調(diào)度服務(wù)集群和安裝工具的第一主機同時對多個第一應(yīng)用程序進行安裝部署。
7、本發(fā)明提供的軟件包的安裝方法,主要用于包含有多個應(yīng)用程序的軟件包。其中,軟件包的安裝方法包括:首先獲取與軟件包相關(guān)的數(shù)據(jù)腳本和中間件,即根據(jù)軟件包內(nèi)的應(yīng)用程序確定進行該軟件包內(nèi)的應(yīng)用程序時所需要的各種數(shù)據(jù)腳本和中間件,其中,中間件可以為數(shù)據(jù)庫等。在得到數(shù)據(jù)腳本和中間件后,控制數(shù)據(jù)腳本進行執(zhí)行,并且將中間件安裝在安裝工具內(nèi)部,從而得到了軟件包內(nèi)的應(yīng)用程序能夠進行工作的應(yīng)用環(huán)境。進一步地,根據(jù)應(yīng)用環(huán)境獲取軟件包中的多個第一應(yīng)用程序,其中,第一應(yīng)用程序與應(yīng)用環(huán)境相對應(yīng)。由于軟件包中存在多個應(yīng)用程序,在這多個應(yīng)用程序中有些應(yīng)用程序是并不需要進行安裝的,因此需要根據(jù)應(yīng)用環(huán)境對軟件包中的多個應(yīng)用程序進行篩選,確定出第一應(yīng)用程序,并且第一應(yīng)用程序的個數(shù)為多個。在確定好多個第一應(yīng)用程序后,將多個第一應(yīng)用程序下載到安裝工具的第一主機內(nèi)。進一步地,構(gòu)建一個agent(代理)調(diào)度服務(wù)集群,agent調(diào)度服務(wù)集群是一種利用agent技術(shù)來管理和調(diào)度服務(wù)器集群的方法,agent調(diào)度服務(wù)集群中包括有多個節(jié)點主機,節(jié)點主機能夠自動化執(zhí)行應(yīng)用程序的安裝過程,將應(yīng)用程序的代碼、配置文件、數(shù)據(jù)庫等必要的文件組合在一起,并將這些文件上傳到服務(wù)器上,同時在安裝過程中,agent可以在集群中根據(jù)各個節(jié)點主機的負載情況,動態(tài)地分配任務(wù),確保系統(tǒng)的高效運行。最后根據(jù)agent調(diào)度服務(wù)集群和安裝工具的第一主機同時對多個第一應(yīng)用程序進行安裝部署,從而使得多個第一應(yīng)用程序能夠并發(fā)執(zhí)行部署,保證了軟件包的快速安裝。進一步地,還可以通過對agent調(diào)度服務(wù)集群和安裝工具的第一主機進行設(shè)置,實現(xiàn)對同時部署的第一應(yīng)用程序的數(shù)量進行限制,防止機器過載。本發(fā)明通過在軟件包安裝過程中,構(gòu)建agent調(diào)度服務(wù)集群,然后根據(jù)agent調(diào)度服務(wù)集群和安裝工具的第一主機同時對多個應(yīng)用程序進行安裝部署,實現(xiàn)了多個應(yīng)用程序安裝的并發(fā)執(zhí)行,進而減少了安裝時間,縮短了整個安裝過程的周期。
8、根據(jù)本發(fā)明的上述軟件包的安裝方法,還可以具有以下技術(shù)特征:
9、在一些技術(shù)方案中,可選地,構(gòu)建agent調(diào)度服務(wù)集群的步驟,包括:建立一個kubernetes集群,kubernetes集群中接入了多個節(jié)點主機;在daemonset中對agent進行配置;將配置后的daemonset和service部署到kubernetes集群中,得到agent調(diào)度服務(wù)集群,其中,在agent調(diào)度服務(wù)集群的內(nèi)部采用netty架構(gòu)進行通信。
10、在該技術(shù)方案中,構(gòu)建agent調(diào)度服務(wù)集群的步驟,包括:首先建立kubernetes(一個開源的容器集群管理系統(tǒng))集群,其中,在kubernetes集群中接入多個節(jié)點主機,即將多個節(jié)點主機作為kubernetes集群中的node(節(jié)點)。然后獲取kubernetes集群中daemonset(守護進程集),并在daemonset的pod(kubernetes中最小的資源管理組件)模板中對agent進行部署信息、資源使用和節(jié)點親和性等進行配置。然后通過配置后的daemonset和service(服務(wù))將agent(代理)鏡像部署到kubernetes集群中的每個節(jié)點主機,得到agent調(diào)度服務(wù)集群,其中,service在kubernetes集群中能夠為外部或內(nèi)部的應(yīng)用提供穩(wěn)定服務(wù)訪問入口。agent鏡像是一種特殊的容器鏡像,它包含了用于執(zhí)行特定任務(wù)的agent應(yīng)用程序和相關(guān)依賴項。通過配置后的daemonset和service對agent進行部署,從而確保了每個節(jié)點上都運行一個agent容器實例,使得pod可以在指定的節(jié)點上運行一個或多個agent容器實例。同時在agent調(diào)度服務(wù)集群中采用netty(一個高性能、異事件驅(qū)動的網(wǎng)絡(luò)應(yīng)用程序框架)架構(gòu)進行通信,具體地,可以通過采用netty架構(gòu)將需要執(zhí)行的任務(wù)消息發(fā)送給agent來執(zhí)行,保證安裝工具的第一主機不會耗費資源。本發(fā)明通過構(gòu)建agent調(diào)度服務(wù)集群使得在安裝過程中可以使用安裝工具的第一主機之外的節(jié)點主機進行安裝部署,從而進一步地縮短了安裝周期。
11、在一些技術(shù)方案中,可選地,根據(jù)agent調(diào)度服務(wù)集群和安裝工具的第一主機同時對多個第一應(yīng)用程序進行安裝部署的步驟,包括:根據(jù)多個第一應(yīng)用程序建立多個安裝任務(wù);對多個安裝任務(wù)進行排序,并組合得到第一安裝任務(wù)集合;按照第一安裝任務(wù)集合中的順序獲取第一安裝任務(wù)集合中預(yù)設(shè)數(shù)量的安裝任務(wù),并組合得到第二安裝任務(wù)集合;控制安裝工具的第一主機同時執(zhí)行第二安裝任務(wù)集合中的安裝任務(wù);按照第一安裝任務(wù)集合中的順序獲取第一安裝任務(wù)集合中剩余的安裝任務(wù),并組合得到第三安裝任務(wù)集合;通過調(diào)度算法確定安裝工具的第一主機的第一權(quán)重和agent調(diào)度服務(wù)集群中的節(jié)點主機的第二權(quán)重;控制第一主機和節(jié)點主機按照第一權(quán)重和第二權(quán)重執(zhí)行第三安裝任務(wù)集合中的安裝任務(wù)。
12、在該技術(shù)方案中,根據(jù)agent調(diào)度服務(wù)集群和安裝工具的第一主機同時對多個第一應(yīng)用程序進行安裝部署的步驟,包括:首先根據(jù)多個要進行安裝部署的第一應(yīng)用程序建立多個安裝任務(wù)。然后對多個安裝任務(wù)進行排序,然后按照順序?qū)⒍鄠€安裝任務(wù)組合起來得到第一安裝任務(wù)集合。進一步地,由于安裝工具的第一主機的執(zhí)行效率相比節(jié)點主機而言更優(yōu),所以將執(zhí)行優(yōu)先調(diào)度到安裝工具所在第一主機,即首先按照第一安裝任務(wù)集合中的安裝任務(wù)順序依次獲取預(yù)設(shè)數(shù)量的安裝任務(wù),其中,預(yù)設(shè)數(shù)量與安裝工具的第一主機能夠執(zhí)行并發(fā)任務(wù)的數(shù)量相關(guān)。將預(yù)設(shè)數(shù)量的安裝任務(wù)組合得到第二安裝任務(wù)集合。進一步的,控制安裝工具的第一主機同時執(zhí)行第二安裝任務(wù)集合中的安裝任務(wù),即第二安裝任務(wù)集合中的安裝任務(wù)都由安裝工具的第一主機來執(zhí)行。進一步地,按照第一安裝任務(wù)集合中的順序獲取第一安裝任務(wù)集合中剩余的安裝任務(wù),并組合得到第三安裝任務(wù)集合。進一步地,通過調(diào)度算法計算安裝工具的第一主機和agent調(diào)度服務(wù)集群中的多個節(jié)點主機的第二權(quán)重,最后控制第一主機和節(jié)點主機安裝第一權(quán)重和第二權(quán)重執(zhí)行第三安裝任務(wù)集合中的安裝任務(wù),即第三安裝任務(wù)集合中的安裝任務(wù)由安裝工具的第一主機和節(jié)點主機來執(zhí)行。本發(fā)明通過將所有的安裝任務(wù)通過調(diào)度算法進行安裝工具的第一主機和節(jié)點主機的混合調(diào)度部署,從而能夠保證在安裝工具的第一主機進行性能高使用的基礎(chǔ)上,對節(jié)點主機的資源進行同步使用。
13、在一些技術(shù)方案中,可選地,控制第一主機和節(jié)點主機按照第一權(quán)重和第二權(quán)重執(zhí)行第三安裝任務(wù)集合中的安裝任務(wù)的步驟,包括:獲取第一主機內(nèi)的產(chǎn)品補丁目錄;將產(chǎn)品補丁目錄共享到agent調(diào)度服務(wù)集群中的節(jié)點主機。
14、在該技術(shù)方案中,控制第一主機和節(jié)點主機按照第一權(quán)重和第二權(quán)重執(zhí)行第三安裝任務(wù)集合中的安裝任務(wù)的步驟,包括:在安裝過程中,由于采用的是第一主機和節(jié)點主機同時執(zhí)行應(yīng)用程序的安裝任務(wù),因此需要保證執(zhí)行目錄的一致性。因此需要獲取安裝工具的第一主機內(nèi)的產(chǎn)品補丁目錄,然后將產(chǎn)品補丁目錄采用共享存儲的方式共享到節(jié)點主機中,從而使得安裝工具的產(chǎn)品補丁目錄與agent容器內(nèi)的產(chǎn)品補丁目錄保持一致,從而保證在安裝過程命令所需信息是一致的,不會出現(xiàn)找不到文件或目錄的情況。
15、根據(jù)本發(fā)明的第二個方面,提出了一種軟件包的安裝系統(tǒng),軟件包中包括多個應(yīng)用程序;軟件包的安裝系統(tǒng)包括:第一獲取模塊,第一獲取模塊用于獲取與軟件包相關(guān)的數(shù)據(jù)腳本和中間件;生成模塊,生成模塊用于對數(shù)據(jù)腳本和中間件進行安裝,生成應(yīng)用環(huán)境;第二獲取模塊,第二獲取模塊用于根據(jù)應(yīng)用環(huán)境獲取軟件包中的多個第一應(yīng)用程序,第一應(yīng)用程序與應(yīng)用環(huán)境相對應(yīng);構(gòu)建模塊,構(gòu)建模塊用于構(gòu)建agent調(diào)度服務(wù)集群;安裝模塊,安裝模塊用于根據(jù)agent調(diào)度服務(wù)集群和安裝工具的第一主機同時對多個第一應(yīng)用程序進行安裝部署。
16、本發(fā)明提供的軟件包的安裝系統(tǒng),主要用于包含有多個應(yīng)用程序的軟件包。其中,軟件包的安裝主要包括:第一獲取模塊、生成模塊、第二獲取模塊、構(gòu)建模塊以及安裝模塊。其中,第一獲取模塊獲取與軟件包相關(guān)的數(shù)據(jù)腳本和中間件,即根據(jù)軟件包內(nèi)的應(yīng)用程序確定進行該軟件包內(nèi)的應(yīng)用程序時所需要的各種數(shù)據(jù)腳本和中間件,其中,中間件可以為數(shù)據(jù)庫等。在得到數(shù)據(jù)腳本和中間件后,生成模塊控制數(shù)據(jù)腳本進行執(zhí)行,并且將中間件安裝在安裝工具內(nèi)部,從而得到了軟件包內(nèi)的應(yīng)用程序能夠進行工作的應(yīng)用環(huán)境。進一步地,第二獲取模塊根據(jù)應(yīng)用環(huán)境獲取軟件包中的多個第一應(yīng)用程序,其中,第一應(yīng)用程序與應(yīng)用環(huán)境相對應(yīng)。由于軟件包中存在多個應(yīng)用程序,在這多個應(yīng)用程序中有些應(yīng)用程序是并不需要進行安裝的,因此需要根據(jù)應(yīng)用環(huán)境對軟件包中的多個應(yīng)用程序進行篩選,確定出第一應(yīng)用程序,并且第一應(yīng)用程序的個數(shù)為多個。在確定好多個第一應(yīng)用程序后,將多個第一應(yīng)用程序下載到安裝工具的第一主機內(nèi)。進一步地,構(gòu)建模塊構(gòu)建一個agent(代理)調(diào)度服務(wù)集群,agent調(diào)度服務(wù)集群是一種利用agent技術(shù)來管理和調(diào)度服務(wù)器集群的方法,agent調(diào)度服務(wù)集群中包括有多個節(jié)點主機,節(jié)點主機能夠自動化執(zhí)行應(yīng)用程序的安裝過程,將應(yīng)用程序的代碼、配置文件、數(shù)據(jù)庫等必要的文件組合在一起,并將這些文件上傳到服務(wù)器上,同時在安裝過程中,agent可以在集群中根據(jù)各個節(jié)點主機的負載情況,動態(tài)地分配任務(wù),確保系統(tǒng)的高效運行。最后安裝模塊根據(jù)agent調(diào)度服務(wù)集群和安裝工具的第一主機同時對多個第一應(yīng)用程序進行安裝部署,從而使得多個第一應(yīng)用程序能夠并發(fā)執(zhí)行部署,保證了軟件包的快速安裝。進一步地,還可以通過對agent調(diào)度服務(wù)集群和安裝工具的第一主機進行設(shè)置,實現(xiàn)對同時部署的第一應(yīng)用程序的數(shù)量進行限制,防止機器過載。本發(fā)明通過在軟件包安裝過程中,構(gòu)建agent調(diào)度服務(wù)集群,然后根據(jù)agent調(diào)度服務(wù)集群和安裝工具的第一主機同時對多個應(yīng)用程序進行安裝部署,實現(xiàn)了多個應(yīng)用程序安裝的并發(fā)執(zhí)行,進而減少了安裝時間,縮短了整個安裝過程的周期。
17、在一些技術(shù)方案中,可選地,構(gòu)建模塊包括:第一建立模塊,第一建立模塊用于建立一個kubernetes集群,kubernetes集群中接入了多個節(jié)點主機;配置模塊,配置模塊用于在daemonset中對agent進行配置;部署模塊,部署模塊用于將配置后的daemonset和service部署到kubernetes集群中,得到agent調(diào)度服務(wù)集群,其中,在agent調(diào)度服務(wù)集群的內(nèi)部采用netty架構(gòu)進行通信。
18、在該技術(shù)方案中,構(gòu)建模塊包括:第一建立模塊、配置模塊以及部署模塊。其中,第一建立模塊首先建立kubernetes(一個開源的容器集群管理系統(tǒng))集群,其中,在kubernetes集群中接入多個節(jié)點主機,即將多個節(jié)點主機作為kubernetes集群中的node(節(jié)點)。然后獲取kubernetes集群中daemonset(守護進程集),配置模塊在daemonset的pod模板中對agent進行部署信息、資源使用和節(jié)點親和性等進行配置。然后部署模塊通過配置后的daemonset和service(服務(wù))將agent(代理)鏡像部署到kubernetes集群中的每個節(jié)點主機,得到agent調(diào)度服務(wù)集群,其中,service在kubernetes集群中能夠為外部或內(nèi)部的應(yīng)用提供穩(wěn)定服務(wù)訪問入口。agent鏡像是一種特殊的容器鏡像,它包含了用于執(zhí)行特定任務(wù)的agent應(yīng)用程序和相關(guān)依賴項。通過配置后的daemonset和service對agent進行部署,從而確保了每個節(jié)點上都運行一個agent容器實例,使得pod可以在指定的節(jié)點上運行一個或多個agent容器實例。同時在agent調(diào)度服務(wù)集群中采用netty(一個高性能、異事件驅(qū)動的網(wǎng)絡(luò)應(yīng)用程序框架)架構(gòu)進行通信,其中,netty架構(gòu)能夠進行消息傳輸與節(jié)點任務(wù)執(zhí)行,具體地,可以通過采用netty架構(gòu)將需要執(zhí)行的任務(wù)消息發(fā)送給agent來執(zhí)行,保證安裝工具的第一主機不會耗費資源。本發(fā)明通過構(gòu)建agent調(diào)度服務(wù)集群使得在安裝過程中可以使用安裝工具的第一主機之外的節(jié)點主機進行安裝部署,從而進一步地縮短了安裝周期。
19、在一些技術(shù)方案中,可選地,安裝模塊包括:第二建立模塊,第二建立模塊用于根據(jù)多個第一應(yīng)用程序建立多個安裝任務(wù);排序模塊,排序模塊用于對多個安裝任務(wù)進行排序,并組合得到第一安裝任務(wù)集合;第三獲取模塊,第三獲取模塊用于按照第一安裝任務(wù)集合中的順序獲取第一安裝任務(wù)集合中預(yù)設(shè)數(shù)量的安裝任務(wù),并組合得到第二安裝任務(wù)集合;第一執(zhí)行模塊,第一執(zhí)行模塊用于控制安裝工具的第一主機同時執(zhí)行第二安裝任務(wù)集合中的安裝任務(wù);第四獲取模塊,第四獲取模塊用于按照第一安裝任務(wù)集合中的順序獲取第一安裝任務(wù)集合中剩余的安裝任務(wù),并組合得到第三安裝任務(wù)集合;計算模塊,計算模塊用于通過調(diào)度算法計算第一主機的第一權(quán)重和agent調(diào)度服務(wù)集群中的節(jié)點主機的第二權(quán)重;第二執(zhí)行模塊,第二執(zhí)行模塊用于控制第一主機和節(jié)點主機按照第一權(quán)重和第二權(quán)重執(zhí)行第三安裝任務(wù)集合中的安裝任務(wù)。
20、在該技術(shù)方案中,安裝模塊包括:第二建立模塊、排序模塊、第三獲取模塊、第一執(zhí)行模塊、第四獲取模塊、計算模塊以及第二執(zhí)行模塊。其中,第二建立模塊首先根據(jù)多個要進行安裝部署的第一應(yīng)用程序建立多個安裝任務(wù)。然后排序模塊對多個安裝任務(wù)進行排序,然后按照順序?qū)⒍鄠€安裝任務(wù)組合起來得到第一安裝任務(wù)集合。進一步地,由于安裝工具的第一主機的執(zhí)行效率相比節(jié)點主機而言更優(yōu),所以將執(zhí)行優(yōu)先調(diào)度到安裝工具所在第一主機,即第三獲取模塊按照第一安裝任務(wù)集合中的安裝任務(wù)順序依次獲取預(yù)設(shè)數(shù)量的安裝任務(wù),其中,預(yù)設(shè)數(shù)量與安裝工具的第一主機能夠執(zhí)行并發(fā)任務(wù)的數(shù)量相關(guān)。將預(yù)設(shè)數(shù)量的安裝任務(wù)組合得到第二安裝任務(wù)集合。進一步的,第一執(zhí)行模塊控制安裝工具的第一主機同時執(zhí)行第二安裝任務(wù)集合中的安裝任務(wù),即第二安裝任務(wù)集合中的安裝任務(wù)都由安裝工具的第一主機來執(zhí)行。進一步地,第四獲取模塊按照第一安裝任務(wù)集合中的順序獲取第一安裝任務(wù)集合中剩余的安裝任務(wù),并組合得到第三安裝任務(wù)集合。進一步地,計算模塊通過調(diào)度算法計算安裝工具的第一主機和agent調(diào)度服務(wù)集群中的多個節(jié)點主機的第二權(quán)重,最后第二執(zhí)行模塊控制第一主機和節(jié)點主機安裝第一權(quán)重和第二權(quán)重執(zhí)行第三安裝任務(wù)集合中的安裝任務(wù),即第三安裝任務(wù)集合中的安裝任務(wù)由安裝工具的第一主機和節(jié)點主機來執(zhí)行。本發(fā)明通過將所有的安裝任務(wù)通過調(diào)度算法進行安裝工具的第一主機和節(jié)點主機的混合調(diào)度部署,從而能夠保證在安裝工具的第一主機進行性能高使用的基礎(chǔ)上,對節(jié)點主機的資源進行同步使用。
21、在一些技術(shù)方案中,可選地,第二執(zhí)行模塊包括:第五獲取模塊,第五獲取模塊用于獲取第一主機內(nèi)的產(chǎn)品補丁目錄;共享模塊,共享模塊用于將產(chǎn)品補丁目錄共享到agent調(diào)度服務(wù)集群中的節(jié)點主機。
22、在該技術(shù)方案中,第二執(zhí)行模塊包括:第五獲取模塊以及共享模塊。其中,在安裝過程中,由于采用的是第一主機和節(jié)點主機同時執(zhí)行應(yīng)用程序的安裝任務(wù),因此需要保證執(zhí)行目錄的一致性。因此需要第五獲取模塊獲取安裝工具的第一主機內(nèi)的產(chǎn)品補丁目錄,然后共享模塊將產(chǎn)品補丁目錄采用共享存儲的方式共享到節(jié)點主機中,從而使得安裝工具的產(chǎn)品補丁目錄與agent容器內(nèi)的產(chǎn)品補丁目錄保持一致,從而保證在安裝過程命令所需信息是一致的,不會出現(xiàn)找不到文件或目錄的情況。
23、根據(jù)本發(fā)明的第三個方面,提出了一種電子設(shè)備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,處理器執(zhí)行計算機程序時實現(xiàn)如上述任一項的軟件包的安裝方法的步驟。
24、本發(fā)明提供的電子設(shè)備,處理器執(zhí)行計算機程序時實現(xiàn)上述軟件包的安裝方法的步驟,能夠?qū)崿F(xiàn)上述任一技術(shù)方案的技術(shù)效果,在此不再贅述。
25、根據(jù)本發(fā)明的第四個方面,提出了一種存儲介質(zhì),其上存儲有計算機程序,計算機程序被處理器執(zhí)行時實現(xiàn)如上述任一項的軟件包的安裝方法的步驟。
26、本發(fā)明提供的存儲介質(zhì),計算機程序被處理器執(zhí)行時實現(xiàn)上述軟件包的安裝方法的步驟,能夠?qū)崿F(xiàn)上述任一技術(shù)方案的技術(shù)效果,在此不再贅述。
27、本發(fā)明的附加方面和優(yōu)點將在下面的描述部分中變得明顯,或通過本發(fā)明的實踐了解到。