專利名稱:一種灰度發(fā)布方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及灰度發(fā)布技術(shù)領(lǐng)域,尤其涉及一種灰度發(fā)布方法和裝置。
背景技術(shù):
灰度發(fā)布是指在軟件版本發(fā)布過程中,能夠平滑過渡的一種發(fā)布方式。假設(shè)當前軟件版本是A,新的軟件版本是B,當用戶通過客戶端向服務(wù)器發(fā)送針對該軟件的請求消息時,服務(wù)器控制一部分用戶繼續(xù)使用版本A,另一部分用戶開始使用版本B ;如果用戶在使用版本B的過程中沒有出現(xiàn)異常,則逐步將所有用戶都遷移到版本B?;叶劝l(fā)布可以保證整體系統(tǒng)的穩(wěn)定。用戶對軟件的請求往往會有多種類型,如查詢、更新、刪除、上傳、下載等,現(xiàn)有的灰度發(fā)布方法對用戶的請求消息不加區(qū)分,導致灰度發(fā)布的風險較大。
發(fā)明內(nèi)容
本發(fā)明提供了一種灰度發(fā)布方法和裝置,能夠降低灰度發(fā)布的風險。本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:一種灰度發(fā)布方法,包括:A、預(yù)先保存灰度發(fā)布順序表,所述灰度發(fā)布順序表包括不同類型請求消息的灰度發(fā)布順序以及允許發(fā)布新版本軟件的請求消息類型;B、接收用戶對軟件的請求消息,根據(jù)該請求消息的類型查找所述灰度發(fā)布順序表,當所述請求消息的類型為允許發(fā)布新版本軟件的請求消息類型時,控制該請求消息訪問所述軟件的新版本;否則,控制該請求消息訪問所述軟件的舊版本。一種灰度發(fā)布裝置,包括:存儲模塊,用于保存灰度發(fā)布順序表,所述灰度發(fā)布順序表包括不同類型請求消息的灰度發(fā)布順序以及允許發(fā)布新版本軟件的請求消息類型;灰度發(fā)布控制模塊,用于接收用戶對軟件的請求消息,根據(jù)該請求消息的類型查找所述灰度發(fā)布順序表,當所述請求消息的類型為允許發(fā)布新版本軟件的請求消息類型時,控制該請求消息訪問所述軟件的新版本;否則,控制該請求消息訪問所述軟件的舊版本。可見,本發(fā)明提出的灰度發(fā)布方法和裝置,在灰度發(fā)布過程中對用戶不同類型的請求消息加以區(qū)分,先對部分允許發(fā)布軟件新版本的請求消息進行灰度發(fā)布,從而降低灰度發(fā)布過程中的風險。
圖1為本發(fā)明提出的灰度發(fā)布方法流程圖;圖2為本發(fā)明第一種灰度發(fā)布實現(xiàn)方式的流程圖;圖3為本發(fā)明第二種灰度發(fā)布實現(xiàn)方式的流程圖。
具體實施例方式本發(fā)明提出一種灰度發(fā)布方法,如圖1為本發(fā)明提出的灰度發(fā)布方法流程圖,包括:步驟101:預(yù)先保存灰度發(fā)布順序表,所述灰度發(fā)布順序表包括不同類型請求消息的灰度發(fā)布順序以及允許發(fā)布新版本軟件的請求消息類型;步驟102:接收用戶對軟件的請求消息,根據(jù)該請求消息的類型查找所述灰度發(fā)布順序表,當所述請求消息的類型為允許發(fā)布新版本軟件的請求消息類型時,控制該請求消息訪問所述軟件的新版本;否則,控制該請求消息訪問所述軟件的舊版本。步驟102之后,可以進一步包括:步驟103:針對一種請求消息類型,當該類型的請求消息訪問軟件新版本的數(shù)量大于預(yù)先設(shè)定的門限值、并且訪問過程沒有出現(xiàn)異常時,按照所述灰度發(fā)布順序表中不同類型請求消息的灰度發(fā)布順序,將所述類型之后的類型設(shè)置為允許發(fā)布新版本軟件的請求消息類型;繼續(xù)執(zhí)行步驟102。通過上述過程,可以對來自用戶的不同類型的請求消息加以區(qū)分,首先針對部分類型的請求消息發(fā)布軟件的新版本,之后逐步擴大到對所有類型的請求消息發(fā)布軟件的新版本。此外,本發(fā)明還可以與現(xiàn)有技術(shù)中以用戶號碼為標準的灰度發(fā)布控制策略相結(jié)合。當用戶的號碼為允許發(fā)布新版本的號碼、并且該用戶的請求消息類型為允許發(fā)布新版本的類型時,控制該請求消息訪問軟件的新版本;否則,控制該請求消息訪問軟件的舊版本。具體實現(xiàn)方式可以為:上述步驟102中,當請求消息的類型為允許發(fā)布新版本軟件的請求消息類型時,在控制請求消息訪問軟件的新版本之前,進一步包括:判斷所述用戶是否為允許發(fā)布新版本軟件的用戶,如果是,則繼續(xù)執(zhí)行所述控制請求消息訪問軟件的新版本的步驟;否則,控制該請求消息訪問所述軟件的舊版本。如圖2為本發(fā)明第一種灰度發(fā)布實現(xiàn)方式的流程圖。或者,上述步驟102中,在接收用戶對軟件的請求消息之后,并在根據(jù)該請求消息的類型查找灰度發(fā)布順序表之前,進一步包括:判斷所述用戶是否為允許發(fā)布新版本軟件的用戶,如果是,則繼續(xù)執(zhí)行所述根據(jù)請求消息類型查找灰度發(fā)布順序表的步驟;否則,控制該請求消息訪問所述軟件的舊版本。如圖3為本發(fā)明第二種灰度發(fā)布實現(xiàn)方式的流程圖。此外,上述過程中,判斷用戶是否為允許發(fā)布新版本軟件的用戶的方式可以為:判斷用戶的號碼是否屬于允許發(fā)布新版本軟件的用戶號碼段;或者,判斷用戶的號碼是否為允許發(fā)布新版本軟件的測試用戶號碼。這種方式可以將灰度發(fā)布的控制粒度減小到單個用戶,從而進一步降低灰度發(fā)布的風險。以下舉具體的實施例對本發(fā)明做詳細介紹。在以下的實施例中,需要進行新版本軟件發(fā)布的服務(wù)器稱為實際服務(wù)器,由中間層的代理轉(zhuǎn)發(fā)服務(wù)器實現(xiàn)該軟件的灰度發(fā)布。實施例一:
本實施例依據(jù)用戶請求消息的類型進行灰度發(fā)布。在本實施例中,代理轉(zhuǎn)發(fā)服務(wù)器預(yù)先保存灰度發(fā)布順序表,灰度發(fā)布順序表中包括不同類型請求消息的灰度發(fā)布順序、以及允許發(fā)布新版本軟件的請求消息類型。如下表I為本實施例中的灰度發(fā)布順序表示例,在該表中,按照灰度發(fā)布順序,請求消息的類型從前到后依次為:查詢、下載、更新、刪除和上傳;在初始狀態(tài)下,允許發(fā)布新版本軟件的請求消息為查詢請求消息。
權(quán)利要求
1.一種灰度發(fā)布方法,其特征在于,所述方法包括: A、預(yù)先保存灰度發(fā)布順序表,所述灰度發(fā)布順序表包括不同類型請求消息的灰度發(fā)布順序以及允許發(fā)布新版本軟件的請求消息類型; B、接收用戶對軟件的請求消息,根據(jù)該請求消息的類型查找所述灰度發(fā)布順序表,當所述請求消息的類型為允許發(fā)布新版本軟件的請求消息類型時,控制該請求消息訪問所述軟件的新版本;否則,控制該請求消息訪問所述軟件的舊版本。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟B之后進一步包括: C、針對一種請求消息類型,當采用該類型的請求消息訪問軟件新版本的用戶數(shù)量大于預(yù)先設(shè)定的門限值、并且訪問過程沒有出現(xiàn)異常時,按照所述灰度發(fā)布順序表中不同類型請求消息的灰度發(fā)布順序,將所述類型之后的類型設(shè)置為允許發(fā)布新版本軟件的請求消息類型;然后繼續(xù)執(zhí)行步驟B,如此循環(huán)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,當請求消息的類型為允許發(fā)布新版本軟件的請求消息類型時,在所述控制請求消息訪問軟件的新版本之前,進一步包括: 判斷所述用戶是否為允許發(fā)布新版本軟件的用戶,如果是,則繼續(xù)執(zhí)行所述控制請求消息訪問軟件的新版本的步驟;否則,控制該請求消息訪問所述軟件的舊版本。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述接收用戶對軟件的請求消息之后,并在根據(jù)該請求消息的類型查找灰度發(fā)布順序表之前,進一步包括: 判斷所述用戶是否為允許發(fā)布新版本軟件的用戶,如果是,則繼續(xù)執(zhí)行所述根據(jù)請求消息的類型查找灰度發(fā)布順序表的步驟;否則,控制該請求消息訪問所述軟件的舊版本。
5.根據(jù)權(quán)利要求3 或4所述的方法,其特征在于,所述判斷用戶是否為允許發(fā)布新版本軟件的用戶的方式為: 判斷所述用戶的號碼是否為允許發(fā)布新版本軟件的用戶號碼,或者,判斷所述用戶的號碼是否屬于允許發(fā)布新版本軟件的用戶號碼段。
6.一種灰度發(fā)布裝置,其特征在于,所述裝置包括: 存儲模塊,用于保存灰度發(fā)布順序表,所述灰度發(fā)布順序表包括不同類型請求消息的灰度發(fā)布順序以及允許發(fā)布新版本軟件的請求消息類型; 灰度發(fā)布控制模塊,用于接收用戶對軟件的請求消息,根據(jù)該請求消息的類型查找所述灰度發(fā)布順序表,當所述請求消息的類型為允許發(fā)布新版本軟件的請求消息類型時,控制該請求消息訪問所述軟件的新版本;否則,控制該請求消息訪問所述軟件的舊版本。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述灰度發(fā)布控制模塊還用于,針對一種請求消息類型,當采用該類型的請求消息訪問軟件新版本的用戶數(shù)量大于預(yù)先設(shè)定的門限值、并且訪問過程沒有出現(xiàn)異常時,對存儲模塊保存的灰度發(fā)布順序表進行如下修改:按照所述灰度發(fā)布順序表中不同類型請求消息的灰度發(fā)布順序,將所述類型之后的類型設(shè)置為允許發(fā)布新版本軟件的請求消息類型。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述灰度發(fā)布控制模塊還用于,當請求消息的類型為允許發(fā)布新版本軟件的請求消息類型時,在控制請求消息訪問軟件的新版本之前進一步判斷所述用戶是否為允許發(fā)布新版本軟件的用戶,如果是,則控制請求消息訪問軟件的新版本;否則,控制該請求消息訪問所述軟件的舊版本。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述灰度發(fā)布控制模塊還用于,在接收用戶對軟件的請求消息之后,判斷所述用戶是否為允許發(fā)布新版本軟件的用戶,如果是,則根據(jù)該請求消息類型查找灰度發(fā)布順序表;否則,控制該請求消息訪問所述軟件的舊版本。
10.根據(jù)權(quán)利要求8或9所述的裝置,其特征在于,所述灰度發(fā)布控制模塊判斷用戶是否為允許發(fā)布新版本軟件的用戶的方式為: 判斷所述用戶的號碼是否為允許發(fā)布新版本軟件的用戶號碼,或者,判斷所述用戶的號碼是否屬于允許發(fā)布新 版本軟件的用戶號碼段。
全文摘要
本發(fā)明提出一種灰度發(fā)布方法和系統(tǒng),其中方法包括A、預(yù)先保存灰度發(fā)布順序表,所述灰度發(fā)布順序表包括不同類型請求消息的灰度發(fā)布順序以及允許發(fā)布新版本軟件的請求消息類型;B、接收用戶對軟件的請求消息,根據(jù)該請求消息的類型查找所述灰度發(fā)布順序表,當所述請求消息的類型為允許發(fā)布新版本軟件的請求消息類型時,控制該請求消息訪問所述軟件的新版本;否則,控制該請求消息訪問所述軟件的舊版本。本發(fā)明能夠降低灰度發(fā)布過程中的風險。
文檔編號G06F9/44GK103164202SQ20111041996
公開日2013年6月19日 申請日期2011年12月15日 優(yōu)先權(quán)日2011年12月15日
發(fā)明者黎文彥, 孟岸 申請人:深圳市騰訊計算機系統(tǒng)有限公司