一種灰度發(fā)布方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及計算機(jī)應(yīng)用領(lǐng)域,特別是涉及一種灰度發(fā)布方法和裝置。
【背景技術(shù)】
[0002]在互聯(lián)網(wǎng)領(lǐng)域,對于任何一個新開發(fā)的軟件產(chǎn)品來說,由于該軟件產(chǎn)品的功能和用戶體驗等方面性能還具有不確定性,因此,在該軟件產(chǎn)品發(fā)布之前,通常要先由測試人員對該軟件產(chǎn)品進(jìn)行線下的內(nèi)部測試。測試通過后,該軟件產(chǎn)品的發(fā)布也不是一蹴而就的,而是要進(jìn)行灰度發(fā)布,以盡可能地規(guī)避該軟件產(chǎn)品在性能上的不確定性所帶來的使用風(fēng)險。
[0003]所謂“灰度發(fā)布”(也可以稱為“分流發(fā)布”或“灰度放量”)就是指先對一小部分用戶發(fā)布該軟件產(chǎn)品(或者說開放該軟件產(chǎn)品),并基于這一小部分用戶的使用情況測試該軟件產(chǎn)品的性能,如果測試的性能達(dá)標(biāo),就進(jìn)一步擴(kuò)大用戶的范圍,并基于擴(kuò)大范圍的用戶的使用情況測試該軟件產(chǎn)品的性能,以此反復(fù),直到向所有用戶發(fā)布該軟件產(chǎn)品為止;如果測試的性能不達(dá)標(biāo),就需要開發(fā)人員針對發(fā)現(xiàn)的問題對該軟件產(chǎn)品進(jìn)行調(diào)整,并重新執(zhí)行上述灰度發(fā)布過程。由此可見,“灰度發(fā)布”是一個逐漸地擴(kuò)大發(fā)布范圍的過程,通過這樣的發(fā)布方式既可以使軟件產(chǎn)品的問題暴露出來,又不會使暴露出來的問題影響到全部的用戶,在最大程度地提高軟件產(chǎn)品性能的同時,也能夠盡可能地降低軟件產(chǎn)品的使用風(fēng)險。
[0004]例如,在電子商務(wù)平臺上,會借助于各種不同的支付工具(如,第三方支付公司提供的支付網(wǎng)關(guān))向用戶提供支付服務(wù)。而當(dāng)開發(fā)出新的支付工具時,就可以對新的支付工具采取灰度發(fā)布的措施。
[0005]在實現(xiàn)本申請的過程中,本申請的發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在如下問題:軟件產(chǎn)品的發(fā)布必須經(jīng)歷兩個環(huán)節(jié),即,第一個環(huán)節(jié)是線下的內(nèi)部測試,第二個環(huán)節(jié)是線上的灰度發(fā)布。而這兩個環(huán)節(jié)在時間上是分開進(jìn)行并且有先后順序的。其中,需要在完成第一個環(huán)節(jié)之后,才能進(jìn)入第二個環(huán)節(jié)。通常,這樣做就會導(dǎo)致軟件產(chǎn)品的發(fā)布周期過長,影響軟件產(chǎn)品的及時發(fā)布。
【發(fā)明內(nèi)容】
[0006]為了解決上述技術(shù)問題,本申請實施例提供了一種灰度發(fā)布方法和裝置,以盡可能地縮短軟件產(chǎn)品的發(fā)布周期。
[0007]本申請實施例公開了如下技術(shù)方案:
[0008]一種灰度發(fā)布方法,預(yù)先存儲白名單以及灰度發(fā)布條件,其中,在所述白名單中指示有目標(biāo)對象的發(fā)布用戶;包括:
[0009]響應(yīng)于當(dāng)前用戶對目標(biāo)對象的訪問請求,查詢所述白名單,并判斷所述當(dāng)前用戶是否為所述白名單中指示的所述目標(biāo)對象的發(fā)布用戶;
[0010]如果是所述白名單中指示的所述目標(biāo)對象的發(fā)布用戶,允許所述當(dāng)前用戶對所述目標(biāo)對象的訪問請求;
[0011]如果不是所述白名單中指示的所述目標(biāo)對象的發(fā)布用戶,查詢所述灰度發(fā)布條件,并判斷所述當(dāng)前用戶是否符合所述灰度發(fā)布條件;
[0012]如果符合所述灰度發(fā)布條件,允許所述當(dāng)前用戶對所述目標(biāo)對象的訪問請求;
[0013]如果不符合所述灰度發(fā)布條件,拒絕所述當(dāng)前用戶對所述目標(biāo)對象的訪問請求。
[0014]優(yōu)選的,還包括:
[0015]統(tǒng)計所述目標(biāo)對象的訪問成功率;
[0016]判斷所述目標(biāo)對象的訪問成功率是否大于或等于預(yù)設(shè)的成功率閾值;
[0017]如果大于預(yù)設(shè)的成功率閾值,修改所述灰度發(fā)布條件,以使得符合修改后的灰度發(fā)布條件的用戶數(shù)量比符合修改前的灰度發(fā)布條件的用戶數(shù)量大。
[0018]進(jìn)一步優(yōu)選的,在判定所述目標(biāo)對象的訪問成功率大于或等于預(yù)設(shè)的成功率閾值之后,還包括:
[0019]將符合灰度發(fā)布條件的所述當(dāng)前用戶添加到所述白名單中。
[0020]優(yōu)選的,所述目標(biāo)對象為電子商務(wù)平臺上的支付工具,所述支付工具包括路由型的支付工具和非路由型的支付工具。
[0021]優(yōu)選的,當(dāng)所述支付工具為路由型的支付工具時,所述允許所述當(dāng)前用戶對所述目標(biāo)對象的訪問請求為:根據(jù)預(yù)設(shè)的路由概率值對所述路由型的支付工具進(jìn)行路由,其中,預(yù)設(shè)的路由概率值為任一非零值;
[0022]當(dāng)所述支付工具為非路由型的支付工具時,所述允許所述當(dāng)前用戶對所述目標(biāo)對象的訪問請求為:在支付界面上展示所述非路由型的支付工具以供所述當(dāng)前用戶選擇。
[0023]優(yōu)選的,當(dāng)所述支付工具為路由型的支付工具時,所述拒絕所述當(dāng)前用戶對所述目標(biāo)對象的訪問請求為:通過將所述路由型的支付工具的路由概率值設(shè)置為0,以使得所述路由型的支付工具不被路由到;
[0024]當(dāng)所述支付工具為非路由型的支付工具時,所述拒絕所述當(dāng)前用戶對所述目標(biāo)對象的訪問請求為:不在支付界面上展示所述非路由型的支付工具。
[0025]一種灰度發(fā)布裝置,其特征在于,包括:
[0026]存儲單元,用于預(yù)先存儲白名單以及灰度發(fā)布條件,其中,在所述白名單中指示有目標(biāo)對象的發(fā)布用戶;
[0027]第一判斷單元,用于響應(yīng)于當(dāng)前用戶對目標(biāo)對象的訪問請求,查詢所述白名單,并判斷所述當(dāng)前用戶是否為所述白名單中指示的所述目標(biāo)對象的發(fā)布用戶;
[0028]允許請求單元,用于允許所述當(dāng)前用戶對所述目標(biāo)對象的訪問請求;
[0029]第二判斷單元,用于如果不是所述白名單中指示的所述目標(biāo)對象的發(fā)布用戶,查詢所述灰度發(fā)布條件,并判斷所述當(dāng)前用戶是否符合所述灰度發(fā)布條件;
[0030]所述允許請求單元還用于,如果符合所述灰度發(fā)布條件,允許所述當(dāng)前用戶對所述目標(biāo)對象的訪問請求;
[0031]拒絕請求單元,用于如果不符合所述灰度發(fā)布條件,拒絕所述當(dāng)前用戶對所述目標(biāo)對象的訪問請求。
[0032]優(yōu)選的,還包括:
[0033]統(tǒng)計單元,用于統(tǒng)計所述目標(biāo)對象的訪問成功率;
[0034]第三判斷單元,用于判斷所述目標(biāo)對象的訪問成功率是否大于或等于預(yù)設(shè)的成功率閾值;
[0035]灰度發(fā)布條件修改單元,用于如果大于預(yù)設(shè)的成功率閾值,修改所述灰度發(fā)布條件,以使得符合修改后的灰度發(fā)布條件的用戶數(shù)量比符合修改前的灰度發(fā)布條件的用戶數(shù)量大。
[0036]優(yōu)選的,在所述第三判斷單元判定所述目標(biāo)對象的訪問成功率大于或等于預(yù)設(shè)的成功率閾值之后,還包括:
[0037]添加單元,用于將符合灰度發(fā)布條件的所述當(dāng)前用戶添加到所述白名單中。
[0038]優(yōu)選的,所述目標(biāo)對象為電子商務(wù)平臺上的支付工具,所述支付工具包括路由型的支付工具和非路由型的支付工具。
[0039]優(yōu)選的,當(dāng)所述支付工具為路由型的支付工具時,所述允許請求單元用于,根據(jù)預(yù)設(shè)的路由概率值對所述路由型的支付工具進(jìn)行路由,其中,預(yù)設(shè)的路由概率值為任一非零值;
[0040]當(dāng)所述支付工具為非路由型的支付工具時,所述允許請求單元用于,在支付界面上展示所述非路由型的支付工具以供所述當(dāng)前用戶選擇。
[0041]優(yōu)選的,當(dāng)所述支付工具為路由型的支付工具時,所述拒絕請求單元用于,通過將所述路由型支付工具的路由概率值設(shè)置為0,以使得所述路由型的支付工具不被路由到;
[0042]當(dāng)所述支付工具為非路由型的支付工具時,所述拒絕請求單元用于,不在支付界面上展示所述非路由型的支付工具。
[0043]由上述實施例可以看出,與現(xiàn)有技術(shù)相比,本申請的優(yōu)點在于:
[0044]先判斷用戶是否在白名單中,如果在,說明該用戶是進(jìn)行線上內(nèi)部測試的測試人員,向該用戶發(fā)布目標(biāo)對象,如果不在,說明該用戶不是進(jìn)行線上內(nèi)部測試的測試人員,并進(jìn)一步判斷該用戶是否為灰度