亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種分布式軟件版本發(fā)布方法及系統(tǒng)與流程

文檔序號:12278904閱讀:438來源:國知局
一種分布式軟件版本發(fā)布方法及系統(tǒng)與流程

本發(fā)明涉及軟件版本發(fā)布技術(shù)領(lǐng)域,尤其涉及一種分布式軟件版本發(fā)布方法及系統(tǒng)。



背景技術(shù):

當(dāng)前,隨著互聯(lián)網(wǎng)的日新月異,用戶和業(yè)務(wù)的需求變化越來越頻繁。為此,軟件項目的版本發(fā)布密度也越來越高。一般情況下,一個軟件版本從立項到上線需要經(jīng)過需求確認、功能設(shè)計、程序開發(fā)、軟件測試等多個階段,這樣的方式雖然保證了版本的質(zhì)量,但是延長了開發(fā)周期,造成了版本更新頻度無法滿足業(yè)務(wù)需求變化的現(xiàn)狀。

為解決這個問題,現(xiàn)在比較常用的是一種“灰度發(fā)布”的方式,該方式主要是壓縮了軟件測試階段,將新版本先行發(fā)布給一小部分用戶使用,收集其用戶反饋和運行指標(biāo),如果正常則推送到所有的用戶,如果存在問題則立即回退版本。但這種方式目前還存在以下一些問題:①軟件版本更新過程中需要暫停當(dāng)前版本,可能造成短時內(nèi)其他未更新的軟件程序吞吐量增加,影響系統(tǒng)穩(wěn)定;②版本在更新過程中可能會引起發(fā)送版本的服務(wù)器網(wǎng)絡(luò)流量激增,影響其他功能的正常使用;③版本的更新和回退存在人工介入,無法實現(xiàn)自動操作,容易產(chǎn)生操作失誤等風(fēng)險。



技術(shù)實現(xiàn)要素:

本發(fā)明的實施例提供一種分布式軟件版本發(fā)布方法及系統(tǒng),以解決當(dāng)前軟件版本發(fā)布影響系統(tǒng)穩(wěn)定、服務(wù)器網(wǎng)絡(luò)流量激增且難以實現(xiàn)自動操作發(fā)布的問題。

為達到上述目的,本發(fā)明采用如下技術(shù)方案:

一種分布式軟件版本發(fā)布方法,應(yīng)用于一分布式軟件版本發(fā)布系統(tǒng),所述分布式軟件版本發(fā)布系統(tǒng)包括節(jié)點控制裝置和預(yù)先設(shè)置的多層級目標(biāo)服務(wù)器,每層級目標(biāo)服務(wù)器包括多個目標(biāo)服務(wù)器節(jié)點;

所述分布式軟件版本發(fā)布方法,包括:

節(jié)點控制裝置獲取新版本內(nèi)容與用戶自定義的版本生效策略;

節(jié)點控制裝置生成各層級目標(biāo)服務(wù)器清單,并根據(jù)所述各層級目標(biāo)服務(wù)器清單生成版本推送策略;

節(jié)點控制裝置將所述新版本內(nèi)容、版本生效策略和版本推送策略發(fā)送到多層級目標(biāo)服務(wù)器中的第一層級目標(biāo)服務(wù)器中的各第一層級目標(biāo)服務(wù)器節(jié)點;

所述第一層級目標(biāo)服務(wù)器節(jié)點在第一層級目標(biāo)服務(wù)器節(jié)點本地部署所述新版本;

所述第一層級目標(biāo)服務(wù)器節(jié)點繼續(xù)推送所述新版本內(nèi)容、版本生效策略和版本推送策略,使得多層級目標(biāo)服務(wù)器中的第n-1層級目標(biāo)服務(wù)器中的各第n-1層級目標(biāo)服務(wù)器節(jié)點將所述新版本內(nèi)容、版本生效策略和版本推送策略發(fā)送到多層級目標(biāo)服務(wù)器中的第n層級目標(biāo)服務(wù)器中的各第n層級目標(biāo)服務(wù)器節(jié)點;其中,n≥2;其中,第n層級目標(biāo)服務(wù)器為多層級目標(biāo)服務(wù)器的最后一層級;

各層級目標(biāo)服務(wù)器節(jié)點在各層級目標(biāo)服務(wù)器節(jié)點本地部署所述新版本;

各層級目標(biāo)服務(wù)器節(jié)點根據(jù)所述版本生效策略啟動一個或多個版本運行線程,并為每一個版本啟動對應(yīng)的采集線程;

各層級目標(biāo)服務(wù)器節(jié)點根據(jù)所述采集線程采集新版本內(nèi)容的評估指標(biāo);

各層級目標(biāo)服務(wù)器節(jié)點根據(jù)所述版本生效策略,比較新版本內(nèi)容的評估指標(biāo)與歷史版本內(nèi)容的評估指標(biāo),確定待發(fā)布的版本內(nèi)容;

各層級目標(biāo)服務(wù)器節(jié)點根據(jù)所述待發(fā)布的版本內(nèi)容終止其他版本的運行線程,保留待發(fā)布的版本的運行線程。

具體的,節(jié)點控制裝置生成各層級目標(biāo)服務(wù)器清單,包括:

節(jié)點控制裝置根據(jù)網(wǎng)絡(luò)服務(wù)器實際數(shù)量、新版本內(nèi)容文件大小總和以及節(jié)點控制裝置所占用的最大網(wǎng)絡(luò)帶寬確定所述第一層級目標(biāo)服務(wù)器節(jié)點的數(shù)量;

其中,所述第一層級目標(biāo)服務(wù)器節(jié)點的數(shù)量N1為:

N1′>N實際;或者N1=N實際,N1′≤N實際;A為所述節(jié)點控制裝置所占用的最大網(wǎng)絡(luò)帶寬;B為新版本內(nèi)容文件大小總和;N1′為A除以B,并向下取整得到的結(jié)果;N實際為所述網(wǎng)絡(luò)服務(wù)器實際數(shù)量;

節(jié)點控制裝置以隨機方式在網(wǎng)絡(luò)服務(wù)器中確定第一層級目標(biāo)服務(wù)器清單;

節(jié)點控制裝置確定第n層級目標(biāo)服務(wù)器節(jié)點的數(shù)量;其中,所述第n層級目標(biāo)服務(wù)器節(jié)點的數(shù)量Nn為:

Nn=N1n,或者,N實際為所述網(wǎng)絡(luò)服務(wù)器實際數(shù)量;

節(jié)點控制裝置以隨機方式在網(wǎng)絡(luò)服務(wù)器中確定第n層級目標(biāo)服務(wù)器清單。

進一步的,所述的分布式軟件版本發(fā)布方法,還包括:

各層級目標(biāo)服務(wù)器節(jié)點將其接收所述新版本內(nèi)容、版本生效策略和版本推送策略的推送結(jié)果反饋到各層級目標(biāo)服務(wù)器節(jié)點的上一層數(shù)據(jù)推送端;所述上一層數(shù)據(jù)推送端包括各層級目標(biāo)服務(wù)器節(jié)點或第一層級目標(biāo)服務(wù)器節(jié)點對應(yīng)的節(jié)點控制裝置;

若上一層數(shù)據(jù)推送端在一預(yù)先設(shè)置的超時時間內(nèi)接受到所述推送結(jié)果,根據(jù)各推送結(jié)果判斷上一層數(shù)據(jù)推送端向各層級目標(biāo)服務(wù)器節(jié)點推送所述新版本內(nèi)容、版本生效策略和版本推送策略是否成功;

若所述推送結(jié)果為推送失敗,則上一層數(shù)據(jù)推送端記錄推送失敗的目標(biāo)服務(wù)器節(jié)點,形成推送失敗清單,并將推送失敗清單中的目標(biāo)服務(wù)器節(jié)點隨機替換為其他網(wǎng)絡(luò)服務(wù)器;

若上一層數(shù)據(jù)推送端在預(yù)先設(shè)置的超時時間內(nèi)未接收到所述推送結(jié)果,判斷上一層數(shù)據(jù)推送端向未反饋推送結(jié)果的目標(biāo)服務(wù)器節(jié)點的推送次數(shù)是否超過一預(yù)設(shè)次數(shù)閾值;

若所述推送次數(shù)小于所述預(yù)設(shè)次數(shù)閾值,上一層數(shù)據(jù)推送端繼續(xù)向未反饋推送結(jié)果的目標(biāo)服務(wù)器節(jié)點推送一次所述新版本內(nèi)容、版本生效策略和版本推送策略;

若所述推送次數(shù)大于等于所述預(yù)設(shè)次數(shù)閾值,上一層數(shù)據(jù)推送端將未反饋推送結(jié)果的目標(biāo)服務(wù)器節(jié)點放入推送失敗清單,并將推送失敗清單中的目標(biāo)服務(wù)器節(jié)點隨機替換為其他網(wǎng)絡(luò)服務(wù)器。

具體的,各層級目標(biāo)服務(wù)器節(jié)點根據(jù)所述版本生效策略,比較新版本內(nèi)容的評估指標(biāo)與歷史版本內(nèi)容的評估指標(biāo),確定待發(fā)布的版本內(nèi)容,包括:

各層級目標(biāo)服務(wù)器節(jié)點獲取歷史版本內(nèi)容的評估指標(biāo);

各層級目標(biāo)服務(wù)器節(jié)點根據(jù)所述版本生效策略,比較新版本內(nèi)容的評估指標(biāo)與歷史版本內(nèi)容的評估指標(biāo);

若新版本內(nèi)容的評估指標(biāo)大于所述歷史版本內(nèi)容的評估指標(biāo),記錄采用新版本內(nèi)容的評估結(jié)果,生成包含待發(fā)布的新版本內(nèi)容的單版本執(zhí)行策略;

若新版本內(nèi)容的評估指標(biāo)小于所述歷史版本內(nèi)容的評估指標(biāo),記錄采用舊版本內(nèi)容的評估結(jié)果,生成包含待發(fā)布的舊版本內(nèi)容的單版本執(zhí)行策略。

此外,所述的分布式軟件版本發(fā)布方法,還包括:

各層級目標(biāo)服務(wù)器節(jié)點不比較新版本內(nèi)容的評估指標(biāo)與歷史版本內(nèi)容的評估指標(biāo),生成包含多個待發(fā)布的版本內(nèi)容的多版本執(zhí)行策略。

進一步的,所述的分布式軟件版本發(fā)布方法,還包括:

各層級目標(biāo)服務(wù)器節(jié)點根據(jù)單版本執(zhí)行策略和多版本執(zhí)行策略,確定在目標(biāo)服務(wù)器節(jié)點上是否需要多版本并發(fā)執(zhí)行;

若確定在目標(biāo)服務(wù)器節(jié)點上需要多版本并發(fā)執(zhí)行,目標(biāo)服務(wù)器節(jié)點根據(jù)多版本執(zhí)行策略中的多個待發(fā)布的版本內(nèi)容,為每個版本啟動一個線程,并注冊版本線程信息,并啟動采集線程采集各版本的評估指標(biāo);

若確定在目標(biāo)服務(wù)器節(jié)點上需要單版本執(zhí)行,目標(biāo)服務(wù)器節(jié)點獲取已經(jīng)注冊的注冊版本線程信息,終止所有與單版本執(zhí)行策略中的版本不一致的版本線程,刪除與單版本執(zhí)行策略中的版本不一致的版本的注冊版本線程信息,關(guān)閉與單版本執(zhí)行策略中的版本不一致的版本的采集線程。

具體的,所述版本生效策略包括版本的各評分項和各評分項加權(quán)值;版本的各評分項包括:CPU平均占用率評分、內(nèi)存平均占用量評分、用戶對版本的投訴頻率評分;

所述分布式軟件版本發(fā)布方法,還包括:根據(jù)版本的各評分項和各評分項加權(quán)值形成版本的評估指標(biāo);其中,第i個版本的評估指標(biāo)為:

Si=Ci×x%+Di×y%+Ei×z%

Ci為第i個版本的CPU平均占用率評分;x%為CPU平均占用率評分的加權(quán)值;Di為第i個版本的內(nèi)存平均占用量評分;y%為內(nèi)存平均占用量評分的加權(quán)值;Ei為用戶對版本的投訴頻率評分;z%為用戶對版本的投訴頻率評分的加權(quán)值。

一種分布式軟件版本發(fā)布系統(tǒng),包括節(jié)點控制裝置和預(yù)先設(shè)置的多層級目標(biāo)服務(wù)器,每層級目標(biāo)服務(wù)器包括多個目標(biāo)服務(wù)器節(jié)點;

節(jié)點控制裝置,用于獲取新版本內(nèi)容與用戶自定義的版本生效策略;生成各層級目標(biāo)服務(wù)器清單,并根據(jù)所述各層級目標(biāo)服務(wù)器清單生成版本推送策略;將所述新版本內(nèi)容、版本生效策略和版本推送策略發(fā)送到多層級目標(biāo)服務(wù)器中的第一層級目標(biāo)服務(wù)器中的各第一層級目標(biāo)服務(wù)器節(jié)點;

第一層級目標(biāo)服務(wù)器節(jié)點,用于在第一層級目標(biāo)服務(wù)器節(jié)點本地部署所述新版本;繼續(xù)推送所述新版本內(nèi)容、版本生效策略和版本推送策略,使得多層級目標(biāo)服務(wù)器中的第n-1層級目標(biāo)服務(wù)器中的各第n-1層級目標(biāo)服務(wù)器節(jié)點將所述新版本內(nèi)容、版本生效策略和版本推送策略發(fā)送到多層級目標(biāo)服務(wù)器中的第n層級目標(biāo)服務(wù)器中的各第n層級目標(biāo)服務(wù)器節(jié)點;其中,n≥2;其中,第n層級目標(biāo)服務(wù)器為多層級目標(biāo)服務(wù)器的最后一層級;

各層級目標(biāo)服務(wù)器節(jié)點,用于在各層級目標(biāo)服務(wù)器節(jié)點本地部署所述新版本;根據(jù)所述版本生效策略啟動一個或多個版本運行線程,并為每一個版本啟動對應(yīng)的采集線程;根據(jù)所述采集線程采集新版本內(nèi)容的評估指標(biāo);根據(jù)所述版本生效策略,比較新版本內(nèi)容的評估指標(biāo)與歷史版本內(nèi)容的評估指標(biāo),確定待發(fā)布的版本內(nèi)容;根據(jù)所述待發(fā)布的版本內(nèi)容終止其他版本的運行線程,保留待發(fā)布的版本的運行線程。

另外,所述節(jié)點控制裝置,具體用于:

根據(jù)網(wǎng)絡(luò)服務(wù)器實際數(shù)量、新版本內(nèi)容文件大小總和以及節(jié)點控制裝置所占用的最大網(wǎng)絡(luò)帶寬確定所述第一層級目標(biāo)服務(wù)器節(jié)點的數(shù)量;

其中,所述第一層級目標(biāo)服務(wù)器節(jié)點的數(shù)量N1為:

N1′>N實際;或者N1=N實際,N1′≤N實際;A為所述節(jié)點控制裝置所占用的最大網(wǎng)絡(luò)帶寬;B為新版本內(nèi)容文件大小總和;N1′為A除以B,并向下取整得到的結(jié)果;N實際為所述網(wǎng)絡(luò)服務(wù)器實際數(shù)量;

以隨機方式在網(wǎng)絡(luò)服務(wù)器中確定第一層級目標(biāo)服務(wù)器清單;

確定第n層級目標(biāo)服務(wù)器節(jié)點的數(shù)量;其中,所述第n層級目標(biāo)服務(wù)器節(jié)點的數(shù)量Nn為:

Nn=N1n,或者,N實際為所述網(wǎng)絡(luò)服務(wù)器實際數(shù)量;

以隨機方式在網(wǎng)絡(luò)服務(wù)器中確定第n層級目標(biāo)服務(wù)器清單。

此外,各層級目標(biāo)服務(wù)器節(jié)點,還用于將其接收所述新版本內(nèi)容、版本生效策略和版本推送策略的推送結(jié)果反饋到各層級目標(biāo)服務(wù)器節(jié)點的上一層數(shù)據(jù)推送端;所述上一層數(shù)據(jù)推送端包括各層級目標(biāo)服務(wù)器節(jié)點或第一層級目標(biāo)服務(wù)器節(jié)點對應(yīng)的節(jié)點控制裝置;

在上一層數(shù)據(jù)推送端在一預(yù)先設(shè)置的超時時間內(nèi)接受到所述推送結(jié)果時,上一層數(shù)據(jù)推送端根據(jù)各推送結(jié)果判斷上一層數(shù)據(jù)推送端向各層級目標(biāo)服務(wù)器節(jié)點推送所述新版本內(nèi)容、版本生效策略和版本推送策略是否成功;

在所述推送結(jié)果為推送失敗時,上一層數(shù)據(jù)推送端記錄推送失敗的目標(biāo)服務(wù)器節(jié)點,形成推送失敗清單,并將推送失敗清單中的目標(biāo)服務(wù)器節(jié)點隨機替換為其他網(wǎng)絡(luò)服務(wù)器;

在上一層數(shù)據(jù)推送端在預(yù)先設(shè)置的超時時間內(nèi)未接收到所述推送結(jié)果時,判斷上一層數(shù)據(jù)推送端向未反饋推送結(jié)果的目標(biāo)服務(wù)器節(jié)點的推送次數(shù)是否超過一預(yù)設(shè)次數(shù)閾值;

在所述推送次數(shù)小于所述預(yù)設(shè)次數(shù)閾值時,上一層數(shù)據(jù)推送端繼續(xù)向未反饋推送結(jié)果的目標(biāo)服務(wù)器節(jié)點推送一次所述新版本內(nèi)容、版本生效策略和版本推送策略;

在所述推送次數(shù)大于等于所述預(yù)設(shè)次數(shù)閾值時,上一層數(shù)據(jù)推送端將未反饋推送結(jié)果的目標(biāo)服務(wù)器節(jié)點放入推送失敗清單,并將推送失敗清單中的目標(biāo)服務(wù)器節(jié)點隨機替換為其他網(wǎng)絡(luò)服務(wù)器。

此外,各層級目標(biāo)服務(wù)器節(jié)點,具體用于獲取歷史版本內(nèi)容的評估指標(biāo);根據(jù)所述版本生效策略,比較新版本內(nèi)容的評估指標(biāo)與歷史版本內(nèi)容的評估指標(biāo);在新版本內(nèi)容的評估指標(biāo)大于所述歷史版本內(nèi)容的評估指標(biāo)時,記錄采用新版本內(nèi)容的評估結(jié)果,生成包含待發(fā)布的新版本內(nèi)容的單版本執(zhí)行策略;在新版本內(nèi)容的評估指標(biāo)小于所述歷史版本內(nèi)容的評估指標(biāo)時,記錄采用舊版本內(nèi)容的評估結(jié)果,生成包含待發(fā)布的舊版本內(nèi)容的單版本執(zhí)行策略。

此外,各層級目標(biāo)服務(wù)器節(jié)點,還用于不比較新版本內(nèi)容的評估指標(biāo)與歷史版本內(nèi)容的評估指標(biāo),生成包含多個待發(fā)布的版本內(nèi)容的多版本執(zhí)行策略。

進一步的,各層級目標(biāo)服務(wù)器節(jié)點,還用于根據(jù)單版本執(zhí)行策略和多版本執(zhí)行策略,確定在目標(biāo)服務(wù)器節(jié)點上是否需要多版本并發(fā)執(zhí)行;

在確定在目標(biāo)服務(wù)器節(jié)點上需要多版本并發(fā)執(zhí)行時,目標(biāo)服務(wù)器節(jié)點根據(jù)多版本執(zhí)行策略中的多個待發(fā)布的版本內(nèi)容,為每個版本啟動一個線程,并注冊版本線程信息,并啟動采集線程采集各版本的評估指標(biāo);

在確定在目標(biāo)服務(wù)器節(jié)點上需要單版本執(zhí)行時,目標(biāo)服務(wù)器節(jié)點獲取已經(jīng)注冊的注冊版本線程信息,終止所有與單版本執(zhí)行策略中的版本不一致的版本線程,刪除與單版本執(zhí)行策略中的版本不一致的版本的注冊版本線程信息,關(guān)閉與單版本執(zhí)行策略中的版本不一致的版本的采集線程。

具體的,所述版本生效策略包括版本的各評分項和各評分項加權(quán)值;版本的各評分項包括:CPU平均占用率評分、內(nèi)存平均占用量評分、用戶對版本的投訴頻率評分;

所述分布式軟件版本發(fā)布系統(tǒng),還用于根據(jù)版本的各評分項和各評分項加權(quán)值形成版本的評估指標(biāo);其中,第i個版本的評估指標(biāo)為:

Si=Ci×x%+Di×y%+Ei×z%

Ci為第i個版本的CPU平均占用率評分;x%為CPU平均占用率評分的加權(quán)值;Di為第i個版本的內(nèi)存平均占用量評分;y%為內(nèi)存平均占用量評分的加權(quán)值;Ei為用戶對版本的投訴頻率評分;z%為用戶對版本的投訴頻率評分的加權(quán)值。

本發(fā)明實施例提供的一種分布式軟件版本發(fā)布方法及系統(tǒng),系統(tǒng)包括節(jié)點控制裝置和預(yù)先設(shè)置的多層級目標(biāo)服務(wù)器,每層級目標(biāo)服務(wù)器包括多個目標(biāo)服務(wù)器節(jié)點;節(jié)點控制裝置可將新版本內(nèi)容、版本生效策略和版本推送策略發(fā)送到第一層級目標(biāo)服務(wù)器中的各第一層級目標(biāo)服務(wù)器節(jié)點;之后,第一層級目標(biāo)服務(wù)器節(jié)點在第一層級目標(biāo)服務(wù)器節(jié)點本地部署新版本;繼續(xù)推送新版本內(nèi)容、版本生效策略和版本推送策略,使得多層級目標(biāo)服務(wù)器中的第n-1層級目標(biāo)服務(wù)器中的各第n-1層級目標(biāo)服務(wù)器節(jié)點將新版本內(nèi)容、版本生效策略和版本推送策略發(fā)送到多層級目標(biāo)服務(wù)器中的第n層級目標(biāo)服務(wù)器中的各第n層級目標(biāo)服務(wù)器節(jié)點;這樣,各層級目標(biāo)服務(wù)器節(jié)點在各層級目標(biāo)服務(wù)器節(jié)點本地部署新版本;根據(jù)版本生效策略啟動一個或多個版本運行線程,并為每一個版本啟動對應(yīng)的采集線程;根據(jù)采集線程采集新版本內(nèi)容的評估指標(biāo);根據(jù)版本生效策略,比較新版本內(nèi)容的評估指標(biāo)與歷史版本內(nèi)容的評估指標(biāo),確定待發(fā)布的版本內(nèi)容;根據(jù)待發(fā)布的版本內(nèi)容終止其他版本的運行線程,保留待發(fā)布的版本的運行線程??梢?,本發(fā)明通過多版本并行機制實現(xiàn)了版本更新過程中的不間斷服務(wù),并實現(xiàn)公正評估新版本各項性能指標(biāo);通過服務(wù)器間分層漸進的版本推送方式解決了版本發(fā)布過程中單點網(wǎng)絡(luò)開銷過大的問題;通過預(yù)先設(shè)定版本生效策略實現(xiàn)了自動化的版本更新與回退,從而提供了一種高可用、低消耗的分布式版本發(fā)布方式,可以解決當(dāng)前軟件版本發(fā)布影響系統(tǒng)穩(wěn)定、服務(wù)器網(wǎng)絡(luò)流量激增且難以實現(xiàn)自動操作發(fā)布的問題。

附圖說明

為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

圖1為本發(fā)明實施例提供的一種分布式軟件版本發(fā)布方法的流程圖一;

圖2為本發(fā)明實施例提供的一種分布式軟件版本發(fā)布方法的流程圖二;

圖3為本發(fā)明實施例提供中的推送結(jié)果反饋方式的流程圖;

圖4為本發(fā)明實施例提供的一種分布式軟件版本發(fā)布系統(tǒng)的結(jié)構(gòu)示意圖。

具體實施方式

下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

如圖1所示,本發(fā)明實施例提供一種分布式軟件版本發(fā)布方法,應(yīng)用于一分布式軟件版本發(fā)布系統(tǒng),所述分布式軟件版本發(fā)布系統(tǒng)包括節(jié)點控制裝置和預(yù)先設(shè)置的多層級目標(biāo)服務(wù)器,每層級目標(biāo)服務(wù)器包括多個目標(biāo)服務(wù)器節(jié)點。

所述分布式軟件版本發(fā)布方法,包括:

步驟101、節(jié)點控制裝置獲取新版本內(nèi)容與用戶自定義的版本生效策略。

步驟102、節(jié)點控制裝置生成各層級目標(biāo)服務(wù)器清單,并根據(jù)所述各層級目標(biāo)服務(wù)器清單生成版本推送策略。

步驟103、節(jié)點控制裝置將所述新版本內(nèi)容、版本生效策略和版本推送策略發(fā)送到多層級目標(biāo)服務(wù)器中的第一層級目標(biāo)服務(wù)器中的各第一層級目標(biāo)服務(wù)器節(jié)點。

步驟104、所述第一層級目標(biāo)服務(wù)器節(jié)點在第一層級目標(biāo)服務(wù)器節(jié)點本地部署所述新版本。

步驟105、所述第一層級目標(biāo)服務(wù)器節(jié)點繼續(xù)推送所述新版本內(nèi)容、版本生效策略和版本推送策略,使得多層級目標(biāo)服務(wù)器中的第n-1層級目標(biāo)服務(wù)器中的各第n-1層級目標(biāo)服務(wù)器節(jié)點將所述新版本內(nèi)容、版本生效策略和版本推送策略發(fā)送到多層級目標(biāo)服務(wù)器中的第n層級目標(biāo)服務(wù)器中的各第n層級目標(biāo)服務(wù)器節(jié)點。

其中,n≥2;第n層級目標(biāo)服務(wù)器為多層級目標(biāo)服務(wù)器的最后一層級。

步驟106、各層級目標(biāo)服務(wù)器節(jié)點在各層級目標(biāo)服務(wù)器節(jié)點本地部署所述新版本。

步驟107、各層級目標(biāo)服務(wù)器節(jié)點根據(jù)所述版本生效策略啟動一個或多個版本運行線程,并為每一個版本啟動對應(yīng)的采集線程。

步驟108、各層級目標(biāo)服務(wù)器節(jié)點根據(jù)所述采集線程采集新版本內(nèi)容的評估指標(biāo)。

步驟109、各層級目標(biāo)服務(wù)器節(jié)點根據(jù)所述版本生效策略,比較新版本內(nèi)容的評估指標(biāo)與歷史版本內(nèi)容的評估指標(biāo),確定待發(fā)布的版本內(nèi)容。

步驟110、各層級目標(biāo)服務(wù)器節(jié)點根據(jù)所述待發(fā)布的版本內(nèi)容終止其他版本的運行線程,保留待發(fā)布的版本的運行線程。

本發(fā)明實施例提供的一種分布式軟件版本發(fā)布方法,節(jié)點控制裝置可將新版本內(nèi)容、版本生效策略和版本推送策略發(fā)送到第一層級目標(biāo)服務(wù)器中的各第一層級目標(biāo)服務(wù)器節(jié)點;之后,第一層級目標(biāo)服務(wù)器節(jié)點在第一層級目標(biāo)服務(wù)器節(jié)點本地部署新版本;繼續(xù)推送新版本內(nèi)容、版本生效策略和版本推送策略,使得多層級目標(biāo)服務(wù)器中的第n-1層級目標(biāo)服務(wù)器中的各第n-1層級目標(biāo)服務(wù)器節(jié)點將新版本內(nèi)容、版本生效策略和版本推送策略發(fā)送到多層級目標(biāo)服務(wù)器中的第n層級目標(biāo)服務(wù)器中的各第n層級目標(biāo)服務(wù)器節(jié)點;這樣,各層級目標(biāo)服務(wù)器節(jié)點在各層級目標(biāo)服務(wù)器節(jié)點本地部署新版本;根據(jù)版本生效策略啟動一個或多個版本運行線程,并為每一個版本啟動對應(yīng)的采集線程;根據(jù)采集線程采集新版本內(nèi)容的評估指標(biāo);根據(jù)版本生效策略,比較新版本內(nèi)容的評估指標(biāo)與歷史版本內(nèi)容的評估指標(biāo),確定待發(fā)布的版本內(nèi)容;根據(jù)待發(fā)布的版本內(nèi)容終止其他版本的運行線程,保留待發(fā)布的版本的運行線程??梢?,本發(fā)明通過多版本并行機制實現(xiàn)了版本更新過程中的不間斷服務(wù),并實現(xiàn)公正評估新版本各項性能指標(biāo);通過服務(wù)器間分層漸進的版本推送方式解決了版本發(fā)布過程中單點網(wǎng)絡(luò)開銷過大的問題;通過預(yù)先設(shè)定版本生效策略實現(xiàn)了自動化的版本更新與回退,從而提供了一種高可用、低消耗的分布式版本發(fā)布方式,可以解決當(dāng)前軟件版本發(fā)布影響系統(tǒng)穩(wěn)定、服務(wù)器網(wǎng)絡(luò)流量激增且難以實現(xiàn)自動操作發(fā)布的問題。

為了使本領(lǐng)域的技術(shù)人員更好的了解本發(fā)明,下面結(jié)合具體實例列舉一個更為詳細的實施例,如圖2所示,本發(fā)明實施例提供一種分布式軟件版本發(fā)布方法,包括:

步驟201、節(jié)點控制裝置獲取新版本內(nèi)容與用戶自定義的版本生效策略。

具體的,所述版本生效策略包括版本的各評分項和各評分項加權(quán)值;版本的各評分項可以包括:CPU平均占用率評分、內(nèi)存平均占用量評分、用戶對版本的投訴頻率評分。此處僅以CPU平均占用率評分、內(nèi)存平均占用量評分、用戶對版本的投訴頻率評分為例,該版本的各評分項還可以包括數(shù)據(jù)吞吐量評分等。

版本的各評估項可以分為技術(shù)類評估指標(biāo)和業(yè)務(wù)類評估指標(biāo),其中技術(shù)類評估指標(biāo)由指標(biāo)采集線程通過調(diào)用操作系統(tǒng)接口(API)在指定的統(tǒng)計周期內(nèi)以每秒一次的頻度采集,可采集指標(biāo)包括CPU、內(nèi)存、硬盤、網(wǎng)絡(luò)帶寬等,每次采集后指標(biāo)采集線程即以算數(shù)平均數(shù)的方式計算指標(biāo)在統(tǒng)計周期內(nèi)的平均值,統(tǒng)計周期結(jié)束后根據(jù)指標(biāo)評分公式計算每一項技術(shù)類評估指標(biāo)的得分。

業(yè)務(wù)類評估指標(biāo)由指標(biāo)采集線程通過連接外部評價類業(yè)務(wù)系統(tǒng)以觸發(fā)器的方式采集。以版本生效策略為例,該版本生效策略要求用戶對于該版本的投訴小于10人/天,統(tǒng)計周期7天。指標(biāo)采集線程會在每次客服系統(tǒng)收到客戶對該版本投訴后觸發(fā)計數(shù)器加1操作,每日凌晨對統(tǒng)計期內(nèi)截止前一日的投訴量計算其算數(shù)平均值,統(tǒng)計期結(jié)束后根據(jù)指標(biāo)評分公式計算每一項業(yè)務(wù)類評估指標(biāo)的得分。例如:

指標(biāo)評分=100-(指標(biāo)平均值-指標(biāo)閾值)÷指標(biāo)閾值×100

該指標(biāo)評分正常情況下最高為100分,最低為0分,如果最終結(jié)果超出該區(qū)間則取最臨近區(qū)間內(nèi)的值。

此處的版本生效策略中,可根據(jù)版本的各評分項和各評分項加權(quán)值形成版本的評估指標(biāo);其中,第i個版本的評估指標(biāo)為:

Si=Ci×x%+Di×y%+Ei×z%

Ci為第i個版本的CPU平均占用率評分;x%為CPU平均占用率評分的加權(quán)值;Di為第i個版本的內(nèi)存平均占用量評分;y%為內(nèi)存平均占用量評分的加權(quán)值;Ei為用戶對版本的投訴頻率評分;z%為用戶對版本的投訴頻率評分的加權(quán)值。

步驟202、節(jié)點控制裝置根據(jù)網(wǎng)絡(luò)服務(wù)器實際數(shù)量、新版本內(nèi)容文件大小總和以及節(jié)點控制裝置所占用的最大網(wǎng)絡(luò)帶寬確定所述第一層級目標(biāo)服務(wù)器節(jié)點的數(shù)量。

其中,所述第一層級目標(biāo)服務(wù)器節(jié)點的數(shù)量N1為:

N1′>N實際;或者N1=N實際,N1′≤N實際;A為所述節(jié)點控制裝置所占用的最大網(wǎng)絡(luò)帶寬;B為新版本內(nèi)容文件大小總和;N1′為A除以B,并向下取整得到的結(jié)果;N實際為所述網(wǎng)絡(luò)服務(wù)器實際數(shù)量。

步驟203、節(jié)點控制裝置以隨機方式在網(wǎng)絡(luò)服務(wù)器中確定第一層級目標(biāo)服務(wù)器清單。

步驟204、節(jié)點控制裝置確定第n層級目標(biāo)服務(wù)器節(jié)點的數(shù)量。

其中,所述第n層級目標(biāo)服務(wù)器節(jié)點的數(shù)量Nn為:

Nn=N1n,或者,N實際為所述網(wǎng)絡(luò)服務(wù)器實際數(shù)量。

步驟205、節(jié)點控制裝置以隨機方式在網(wǎng)絡(luò)服務(wù)器中確定第n層級目標(biāo)服務(wù)器清單。

步驟206、節(jié)點控制裝置根據(jù)各層級目標(biāo)服務(wù)器清單生成版本推送策略。

版本推送策略一般定義了分層漸進的版本推送方式,從而緩解推送新版本時可能引起的網(wǎng)絡(luò)瞬間流量激增。

步驟207、節(jié)點控制裝置將所述新版本內(nèi)容、版本生效策略和版本推送策略發(fā)送到多層級目標(biāo)服務(wù)器中的第一層級目標(biāo)服務(wù)器中的各第一層級目標(biāo)服務(wù)器節(jié)點。

步驟208、所述第一層級目標(biāo)服務(wù)器節(jié)點在第一層級目標(biāo)服務(wù)器節(jié)點本地部署所述新版本。

步驟209、所述第一層級目標(biāo)服務(wù)器節(jié)點繼續(xù)推送所述新版本內(nèi)容、版本生效策略和版本推送策略,使得多層級目標(biāo)服務(wù)器中的第n-1層級目標(biāo)服務(wù)器中的各第n-1層級目標(biāo)服務(wù)器節(jié)點將所述新版本內(nèi)容、版本生效策略和版本推送策略發(fā)送到多層級目標(biāo)服務(wù)器中的第n層級目標(biāo)服務(wù)器中的各第n層級目標(biāo)服務(wù)器節(jié)點。

其中,n≥2;第n層級目標(biāo)服務(wù)器為多層級目標(biāo)服務(wù)器的最后一層級。

步驟210、各層級目標(biāo)服務(wù)器節(jié)點在各層級目標(biāo)服務(wù)器節(jié)點本地部署所述新版本。在步驟210之后繼續(xù)執(zhí)行步驟211。

此處,在步驟207至步驟210中,可能存在推送結(jié)果反饋的方式,如圖3所示,該推送結(jié)果反饋的方式為:

步驟301、各層級目標(biāo)服務(wù)器節(jié)點將其接收所述新版本內(nèi)容、版本生效策略和版本推送策略的推送結(jié)果反饋到各層級目標(biāo)服務(wù)器節(jié)點的上一層數(shù)據(jù)推送端。

其中,所述上一層數(shù)據(jù)推送端包括各層級目標(biāo)服務(wù)器節(jié)點或第一層級目標(biāo)服務(wù)器節(jié)點對應(yīng)的節(jié)點控制裝置。

在步驟301之后,執(zhí)行步驟302或者步驟304。

步驟302、若上一層數(shù)據(jù)推送端在一預(yù)先設(shè)置的超時時間內(nèi)接受到所述推送結(jié)果,根據(jù)各推送結(jié)果判斷上一層數(shù)據(jù)推送端向各層級目標(biāo)服務(wù)器節(jié)點推送所述新版本內(nèi)容、版本生效策略和版本推送策略是否成功。

步驟303、若所述推送結(jié)果為推送失敗,則上一層數(shù)據(jù)推送端記錄推送失敗的目標(biāo)服務(wù)器節(jié)點,形成推送失敗清單,并將推送失敗清單中的目標(biāo)服務(wù)器節(jié)點隨機替換為其他網(wǎng)絡(luò)服務(wù)器。在步驟303之后可以返回步驟301。

步驟304、若上一層數(shù)據(jù)推送端在預(yù)先設(shè)置的超時時間內(nèi)未接收到所述推送結(jié)果,判斷上一層數(shù)據(jù)推送端向未反饋推送結(jié)果的目標(biāo)服務(wù)器節(jié)點的推送次數(shù)是否超過一預(yù)設(shè)次數(shù)閾值。

步驟305、若所述推送次數(shù)小于所述預(yù)設(shè)次數(shù)閾值,上一層數(shù)據(jù)推送端繼續(xù)向未反饋推送結(jié)果的目標(biāo)服務(wù)器節(jié)點推送一次所述新版本內(nèi)容、版本生效策略和版本推送策略。

步驟306、若所述推送次數(shù)大于等于所述預(yù)設(shè)次數(shù)閾值,上一層數(shù)據(jù)推送端將未反饋推送結(jié)果的目標(biāo)服務(wù)器節(jié)點放入推送失敗清單,并將推送失敗清單中的目標(biāo)服務(wù)器節(jié)點隨機替換為其他網(wǎng)絡(luò)服務(wù)器。在步驟306之后,可以返回步驟301。

步驟211、各層級目標(biāo)服務(wù)器節(jié)點根據(jù)所述版本生效策略啟動一個或多個版本運行線程,并為每一個版本啟動對應(yīng)的采集線程。

步驟212、各層級目標(biāo)服務(wù)器節(jié)點根據(jù)所述采集線程采集新版本內(nèi)容的評估指標(biāo)。

在步驟212之后,可執(zhí)行步驟213或者步驟217。

步驟213、各層級目標(biāo)服務(wù)器節(jié)點獲取歷史版本內(nèi)容的評估指標(biāo)。

步驟214、各層級目標(biāo)服務(wù)器節(jié)點根據(jù)所述版本生效策略,比較新版本內(nèi)容的評估指標(biāo)與歷史版本內(nèi)容的評估指標(biāo)。在步驟214之后,執(zhí)行步驟215或者步驟216。

步驟215、若新版本內(nèi)容的評估指標(biāo)大于所述歷史版本內(nèi)容的評估指標(biāo),記錄采用新版本內(nèi)容的評估結(jié)果,生成包含待發(fā)布的新版本內(nèi)容的單版本執(zhí)行策略。

步驟216、若新版本內(nèi)容的評估指標(biāo)小于所述歷史版本內(nèi)容的評估指標(biāo),記錄采用舊版本內(nèi)容的評估結(jié)果,生成包含待發(fā)布的舊版本內(nèi)容的單版本執(zhí)行策略。

步驟217、各層級目標(biāo)服務(wù)器節(jié)點不比較新版本內(nèi)容的評估指標(biāo)與歷史版本內(nèi)容的評估指標(biāo),生成包含多個待發(fā)布的版本內(nèi)容的多版本執(zhí)行策略。

在步驟215、216、217之后,可以執(zhí)行步驟218。

步驟218、各層級目標(biāo)服務(wù)器節(jié)點根據(jù)單版本執(zhí)行策略和多版本執(zhí)行策略,確定在目標(biāo)服務(wù)器節(jié)點上是否需要多版本并發(fā)執(zhí)行。在步驟218之后,執(zhí)行步驟219或者步驟220。

步驟219、若確定在目標(biāo)服務(wù)器節(jié)點上需要多版本并發(fā)執(zhí)行,目標(biāo)服務(wù)器節(jié)點根據(jù)多版本執(zhí)行策略中的多個待發(fā)布的版本內(nèi)容,為每個版本啟動一個線程,并注冊版本線程信息,并啟動采集線程采集各版本的評估指標(biāo)。

步驟220、若確定在目標(biāo)服務(wù)器節(jié)點上需要單版本執(zhí)行,目標(biāo)服務(wù)器節(jié)點獲取已經(jīng)注冊的注冊版本線程信息,終止所有與單版本執(zhí)行策略中的版本不一致的版本線程,刪除與單版本執(zhí)行策略中的版本不一致的版本的注冊版本線程信息,關(guān)閉與單版本執(zhí)行策略中的版本不一致的版本的采集線程。

本發(fā)明實施例提供的一種分布式軟件版本發(fā)布方法,節(jié)點控制裝置可將新版本內(nèi)容、版本生效策略和版本推送策略發(fā)送到第一層級目標(biāo)服務(wù)器中的各第一層級目標(biāo)服務(wù)器節(jié)點;之后,第一層級目標(biāo)服務(wù)器節(jié)點在第一層級目標(biāo)服務(wù)器節(jié)點本地部署新版本;繼續(xù)推送新版本內(nèi)容、版本生效策略和版本推送策略,使得多層級目標(biāo)服務(wù)器中的第n-1層級目標(biāo)服務(wù)器中的各第n-1層級目標(biāo)服務(wù)器節(jié)點將新版本內(nèi)容、版本生效策略和版本推送策略發(fā)送到多層級目標(biāo)服務(wù)器中的第n層級目標(biāo)服務(wù)器中的各第n層級目標(biāo)服務(wù)器節(jié)點;這樣,各層級目標(biāo)服務(wù)器節(jié)點在各層級目標(biāo)服務(wù)器節(jié)點本地部署新版本;根據(jù)版本生效策略啟動一個或多個版本運行線程,并為每一個版本啟動對應(yīng)的采集線程;根據(jù)采集線程采集新版本內(nèi)容的評估指標(biāo);根據(jù)版本生效策略,比較新版本內(nèi)容的評估指標(biāo)與歷史版本內(nèi)容的評估指標(biāo),確定待發(fā)布的版本內(nèi)容;根據(jù)待發(fā)布的版本內(nèi)容終止其他版本的運行線程,保留待發(fā)布的版本的運行線程??梢姡景l(fā)明通過多版本并行機制實現(xiàn)了版本更新過程中的不間斷服務(wù),并實現(xiàn)公正評估新版本各項性能指標(biāo);通過服務(wù)器間分層漸進的版本推送方式解決了版本發(fā)布過程中單點網(wǎng)絡(luò)開銷過大的問題;通過預(yù)先設(shè)定版本生效策略實現(xiàn)了自動化的版本更新與回退,從而提供了一種高可用、低消耗的分布式版本發(fā)布方式,可以解決當(dāng)前軟件版本發(fā)布影響系統(tǒng)穩(wěn)定、服務(wù)器網(wǎng)絡(luò)流量激增且難以實現(xiàn)自動操作發(fā)布的問題。

對應(yīng)于上述圖1、圖2和圖3所示的方法實施例,如圖4所示,本發(fā)明實施例提供一種分布式軟件版本發(fā)布系統(tǒng)40,包括節(jié)點控制裝置401和預(yù)先設(shè)置的多層級目標(biāo)服務(wù)器402,每層級目標(biāo)服務(wù)器402包括多個目標(biāo)服務(wù)器節(jié)點403。

該節(jié)點控制裝置401,用于獲取新版本內(nèi)容與用戶自定義的版本生效策略;生成各層級目標(biāo)服務(wù)器清單,并根據(jù)所述各層級目標(biāo)服務(wù)器清單生成版本推送策略;將所述新版本內(nèi)容、版本生效策略和版本推送策略發(fā)送到多層級目標(biāo)服務(wù)器中的第一層級目標(biāo)服務(wù)器404中的各第一層級目標(biāo)服務(wù)器節(jié)點405。

第一層級目標(biāo)服務(wù)器節(jié)點405,用于在第一層級目標(biāo)服務(wù)器節(jié)點本地部署所述新版本;繼續(xù)推送所述新版本內(nèi)容、版本生效策略和版本推送策略,使得多層級目標(biāo)服務(wù)器中的第n-1層級目標(biāo)服務(wù)器中的各第n-1層級目標(biāo)服務(wù)器節(jié)點將所述新版本內(nèi)容、版本生效策略和版本推送策略發(fā)送到多層級目標(biāo)服務(wù)器中的第n層級目標(biāo)服務(wù)器406中的各第n層級目標(biāo)服務(wù)器節(jié)點407;其中,n≥2;其中,第n層級目標(biāo)服務(wù)器為多層級目標(biāo)服務(wù)器的最后一層級。

各層級目標(biāo)服務(wù)器節(jié)點403,用于在各層級目標(biāo)服務(wù)器節(jié)點本地部署所述新版本;根據(jù)所述版本生效策略啟動一個或多個版本運行線程,并為每一個版本啟動對應(yīng)的采集線程;根據(jù)所述采集線程采集新版本內(nèi)容的評估指標(biāo);根據(jù)所述版本生效策略,比較新版本內(nèi)容的評估指標(biāo)與歷史版本內(nèi)容的評估指標(biāo),確定待發(fā)布的版本內(nèi)容;根據(jù)所述待發(fā)布的版本內(nèi)容終止其他版本的運行線程,保留待發(fā)布的版本的運行線程。

另外,所述節(jié)點控制裝置401,具體用于:

根據(jù)網(wǎng)絡(luò)服務(wù)器實際數(shù)量、新版本內(nèi)容文件大小總和以及節(jié)點控制裝置所占用的最大網(wǎng)絡(luò)帶寬確定所述第一層級目標(biāo)服務(wù)器節(jié)點的數(shù)量。

其中,所述第一層級目標(biāo)服務(wù)器節(jié)點的數(shù)量N1為:

N1′>N實際;或者N1=N實際,N1′≤N實際;A為所述節(jié)點控制裝置所占用的最大網(wǎng)絡(luò)帶寬;B為新版本內(nèi)容文件大小總和;N1′為A除以B,并向下取整得到的結(jié)果;N實際為所述網(wǎng)絡(luò)服務(wù)器實際數(shù)量。

以隨機方式在網(wǎng)絡(luò)服務(wù)器中確定第一層級目標(biāo)服務(wù)器清單。

確定第n層級目標(biāo)服務(wù)器節(jié)點的數(shù)量;其中,所述第n層級目標(biāo)服務(wù)器節(jié)點的數(shù)量Nn為:

Nn=N1n,或者,N實際為所述網(wǎng)絡(luò)服務(wù)器實際數(shù)量。

以隨機方式在網(wǎng)絡(luò)服務(wù)器中確定第n層級目標(biāo)服務(wù)器清單。

此外,各層級目標(biāo)服務(wù)器節(jié)點403,還用于將其接收所述新版本內(nèi)容、版本生效策略和版本推送策略的推送結(jié)果反饋到各層級目標(biāo)服務(wù)器節(jié)點的上一層數(shù)據(jù)推送端;所述上一層數(shù)據(jù)推送端包括各層級目標(biāo)服務(wù)器節(jié)點或第一層級目標(biāo)服務(wù)器節(jié)點對應(yīng)的節(jié)點控制裝置。

在上一層數(shù)據(jù)推送端在一預(yù)先設(shè)置的超時時間內(nèi)接受到所述推送結(jié)果時,上一層數(shù)據(jù)推送端根據(jù)各推送結(jié)果判斷上一層數(shù)據(jù)推送端向各層級目標(biāo)服務(wù)器節(jié)點推送所述新版本內(nèi)容、版本生效策略和版本推送策略是否成功。

在所述推送結(jié)果為推送失敗時,上一層數(shù)據(jù)推送端記錄推送失敗的目標(biāo)服務(wù)器節(jié)點,形成推送失敗清單,并將推送失敗清單中的目標(biāo)服務(wù)器節(jié)點隨機替換為其他網(wǎng)絡(luò)服務(wù)器。

在上一層數(shù)據(jù)推送端在預(yù)先設(shè)置的超時時間內(nèi)未接收到所述推送結(jié)果時,判斷上一層數(shù)據(jù)推送端向未反饋推送結(jié)果的目標(biāo)服務(wù)器節(jié)點的推送次數(shù)是否超過一預(yù)設(shè)次數(shù)閾值。

在所述推送次數(shù)小于所述預(yù)設(shè)次數(shù)閾值時,上一層數(shù)據(jù)推送端繼續(xù)向未反饋推送結(jié)果的目標(biāo)服務(wù)器節(jié)點推送一次所述新版本內(nèi)容、版本生效策略和版本推送策略。

在所述推送次數(shù)大于等于所述預(yù)設(shè)次數(shù)閾值時,上一層數(shù)據(jù)推送端將未反饋推送結(jié)果的目標(biāo)服務(wù)器節(jié)點放入推送失敗清單,并將推送失敗清單中的目標(biāo)服務(wù)器節(jié)點隨機替換為其他網(wǎng)絡(luò)服務(wù)器。

此外,各層級目標(biāo)服務(wù)器節(jié)點403,具體用于獲取歷史版本內(nèi)容的評估指標(biāo);根據(jù)所述版本生效策略,比較新版本內(nèi)容的評估指標(biāo)與歷史版本內(nèi)容的評估指標(biāo);在新版本內(nèi)容的評估指標(biāo)大于所述歷史版本內(nèi)容的評估指標(biāo)時,記錄采用新版本內(nèi)容的評估結(jié)果,生成包含待發(fā)布的新版本內(nèi)容的單版本執(zhí)行策略;在新版本內(nèi)容的評估指標(biāo)小于所述歷史版本內(nèi)容的評估指標(biāo)時,記錄采用舊版本內(nèi)容的評估結(jié)果,生成包含待發(fā)布的舊版本內(nèi)容的單版本執(zhí)行策略。

此外,各層級目標(biāo)服務(wù)器節(jié)點403,還用于不比較新版本內(nèi)容的評估指標(biāo)與歷史版本內(nèi)容的評估指標(biāo),生成包含多個待發(fā)布的版本內(nèi)容的多版本執(zhí)行策略。

進一步的,各層級目標(biāo)服務(wù)器節(jié)點403,還用于根據(jù)單版本執(zhí)行策略和多版本執(zhí)行策略,確定在目標(biāo)服務(wù)器節(jié)點上是否需要多版本并發(fā)執(zhí)行。

在確定在目標(biāo)服務(wù)器節(jié)點上需要多版本并發(fā)執(zhí)行時,目標(biāo)服務(wù)器節(jié)點403根據(jù)多版本執(zhí)行策略中的多個待發(fā)布的版本內(nèi)容,為每個版本啟動一個線程,并注冊版本線程信息,并啟動采集線程采集各版本的評估指標(biāo)。

在確定在目標(biāo)服務(wù)器節(jié)點上需要單版本執(zhí)行時,目標(biāo)服務(wù)器節(jié)點403獲取已經(jīng)注冊的注冊版本線程信息,終止所有與單版本執(zhí)行策略中的版本不一致的版本線程,刪除與單版本執(zhí)行策略中的版本不一致的版本的注冊版本線程信息,關(guān)閉與單版本執(zhí)行策略中的版本不一致的版本的采集線程。

具體的,所述版本生效策略包括版本的各評分項和各評分項加權(quán)值;版本的各評分項包括:CPU平均占用率評分、內(nèi)存平均占用量評分、用戶對版本的投訴頻率評分。

所述分布式軟件版本發(fā)布系統(tǒng)40,還用于根據(jù)版本的各評分項和各評分項加權(quán)值形成版本的評估指標(biāo);其中,第i個版本的評估指標(biāo)為:

Si=Ci×x%+Di×y%+Ei×z%

Ci為第i個版本的CPU平均占用率評分;x%為CPU平均占用率評分的加權(quán)值;Di為第i個版本的內(nèi)存平均占用量評分;y%為內(nèi)存平均占用量評分的加權(quán)值;Ei為用戶對版本的投訴頻率評分;z%為用戶對版本的投訴頻率評分的加權(quán)值。

本發(fā)明實施例提供的一種分布式軟件版本發(fā)布系統(tǒng)的具體實現(xiàn)方式可以參見上述的方法實施例,此處不再贅述。

本發(fā)明實施例提供的一種分布式軟件版本發(fā)布系統(tǒng),包括節(jié)點控制裝置和預(yù)先設(shè)置的多層級目標(biāo)服務(wù)器,每層級目標(biāo)服務(wù)器包括多個目標(biāo)服務(wù)器節(jié)點;節(jié)點控制裝置可將新版本內(nèi)容、版本生效策略和版本推送策略發(fā)送到第一層級目標(biāo)服務(wù)器中的各第一層級目標(biāo)服務(wù)器節(jié)點;之后,第一層級目標(biāo)服務(wù)器節(jié)點在第一層級目標(biāo)服務(wù)器節(jié)點本地部署新版本;繼續(xù)推送新版本內(nèi)容、版本生效策略和版本推送策略,使得多層級目標(biāo)服務(wù)器中的第n-1層級目標(biāo)服務(wù)器中的各第n-1層級目標(biāo)服務(wù)器節(jié)點將新版本內(nèi)容、版本生效策略和版本推送策略發(fā)送到多層級目標(biāo)服務(wù)器中的第n層級目標(biāo)服務(wù)器中的各第n層級目標(biāo)服務(wù)器節(jié)點;這樣,各層級目標(biāo)服務(wù)器節(jié)點在各層級目標(biāo)服務(wù)器節(jié)點本地部署新版本;根據(jù)版本生效策略啟動一個或多個版本運行線程,并為每一個版本啟動對應(yīng)的采集線程;根據(jù)采集線程采集新版本內(nèi)容的評估指標(biāo);根據(jù)版本生效策略,比較新版本內(nèi)容的評估指標(biāo)與歷史版本內(nèi)容的評估指標(biāo),確定待發(fā)布的版本內(nèi)容;根據(jù)待發(fā)布的版本內(nèi)容終止其他版本的運行線程,保留待發(fā)布的版本的運行線程。可見,本發(fā)明通過多版本并行機制實現(xiàn)了版本更新過程中的不間斷服務(wù),并實現(xiàn)公正評估新版本各項性能指標(biāo);通過服務(wù)器間分層漸進的版本推送方式解決了版本發(fā)布過程中單點網(wǎng)絡(luò)開銷過大的問題;通過預(yù)先設(shè)定版本生效策略實現(xiàn)了自動化的版本更新與回退,從而提供了一種高可用、低消耗的分布式版本發(fā)布方式,可以解決當(dāng)前軟件版本發(fā)布影響系統(tǒng)穩(wěn)定、服務(wù)器網(wǎng)絡(luò)流量激增且難以實現(xiàn)自動操作發(fā)布的問題。

本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器、CD-ROM、光學(xué)存儲器等)上實施的計算機程序產(chǎn)品的形式。

本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(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)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。

本發(fā)明中應(yīng)用了具體實施例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1