專利名稱:應(yīng)用發(fā)布方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本申請涉及計算機數(shù)據(jù)處理技術(shù)領(lǐng)域,特別是涉及一種應(yīng)用發(fā)布方法及系統(tǒng)。
背景技術(shù):
互聯(lián)網(wǎng)產(chǎn)品通常需要不停的升級更新以更好的實現(xiàn)其功能和滿足用戶需求。但在產(chǎn)品升級過程中,通常會出現(xiàn)新舊版本兼容、升級版本的產(chǎn)品不穩(wěn)定,或者大量用戶同時升級造成的系統(tǒng)崩潰,以及用戶不習慣等問題。為了解決這些問題,很多互聯(lián)網(wǎng)產(chǎn)品會采用灰度發(fā)布的策略,即選取一小部分用戶作為新版本的發(fā)布對象,通過對這些用戶使用過程中的問題進行搜集和檢測,若發(fā)現(xiàn)問題,則及時更新、修改等調(diào)整,若沒有問題,則進一步擴大新版本的發(fā)布范圍。一般情況下,在一種新產(chǎn)品的灰度發(fā)布過程中,開發(fā)者通常會預先選取測試用戶、測試環(huán)境和測試服務(wù)器,并將這些測試用戶放入新產(chǎn)品的白名單中。在接收用戶使用請求時,通過判斷該用戶是否在白名單中來確定是否進入測試服務(wù)器中的灰度發(fā)布版本。此種方法中,為了避免影響正常運轉(zhuǎn),灰度發(fā)布版本的服務(wù)器通常都是少量幾臺,當需要擴大測試范圍時,則需要重新調(diào)整配置其他服務(wù)器,而且灰度發(fā)布的環(huán)境與線上環(huán)境不同,每次都需要對灰度發(fā)布環(huán)境進行配置調(diào)整,這需要耗費較多的時間和精力。另外,灰度發(fā)布的范圍通過產(chǎn)品開發(fā)者的設(shè)定來控制,當有多個產(chǎn)品發(fā)布時,則存在多種灰度發(fā)布范圍的控制,由于發(fā)布范圍不同,無法實現(xiàn)統(tǒng)一控制,這增加了管理難度和成本。
發(fā)明內(nèi)容
本申請?zhí)峁┮环N應(yīng)用發(fā)布方法及系統(tǒng),以解決應(yīng)用灰度發(fā)布時存在費時且無法統(tǒng)一控制管理的問題。為了解決上述問題,本申請公開了一種應(yīng)用發(fā)布方法,包括以下步驟:接收客戶端發(fā)送的用戶請求,所述用戶請求中包含請求訪問的統(tǒng)一資源定位符;基于用戶請求信息和從配置服務(wù)器中獲取的應(yīng)用配置信息,對用戶請求信息進行處理,所述處理包括:若當前用戶符合進入灰度發(fā)布版本的條件,則重寫當前用戶請求中的統(tǒng)一資源定位符;將處理后的統(tǒng)一資源定位符傳遞給應(yīng)用,應(yīng)用根據(jù)處理后的統(tǒng)一資源定位符以及應(yīng)用配置信息來確定當前用戶進入的版本。進一步地,所述方法還包括更新應(yīng)用配置信息,所述更新應(yīng)用配置信息包括:監(jiān)聽配置服務(wù)器中的應(yīng)用配置信息的修改操作;從預存的配置表中查詢所述修改的應(yīng)用配置信息所對應(yīng)的應(yīng)用服務(wù)器;將所述修改后的應(yīng)用配置信息同步到所述應(yīng)用服務(wù)器。進一步地,所述應(yīng)用配置信息包括:應(yīng)用的統(tǒng)一資源定位符和分流策略。進一步地,所述判斷當前用戶是否符合進入灰度發(fā)布版本的條件包括:判斷當前用戶的統(tǒng)一資源定位符與應(yīng)用配置信息中的統(tǒng)一資源定位符是否匹配,若匹配,則根據(jù)分流策略來判斷當前用戶是否符合進入灰度發(fā)布版本的條件。進一步地,所述重寫當前用戶請求中的統(tǒng)一資源定位符包括:在當前用戶請求中的統(tǒng)一資源定位符添加標識;所述處理還包括:若當前用戶符合進入灰度發(fā)布版本的條件符合,則不做處理;所述應(yīng)用根據(jù)處理后的統(tǒng)一資源定位符以及應(yīng)用配置信息來確定當前用戶進入的版本包括:若處理后的當前用戶請求中的統(tǒng)一資源定位符包含標識,則表示能夠進入灰度發(fā)布版本,反之,則表示不能夠進入灰度發(fā)布版本。進一步地,所述重寫當前用戶請求中的統(tǒng)一資源定位符包括:添加符合標識在當前用戶請求的統(tǒng)一資源定位符中;所述處理還包括:若當前用戶不符合進入灰度發(fā)布版本的條件,則添加不符合標識在當前用戶請求的統(tǒng)一資源定位符中;所述應(yīng)用根據(jù)處理后的統(tǒng)一資源定位符以及應(yīng)用配置信息來確定當前用戶進入的版本包括:若處理后的當前用戶請求中的統(tǒng)一資源定位符包含符合標識,則表示能夠進入灰度發(fā)布版本,若包含不符合標識,則表示不能夠進入灰度發(fā)布版本。進一步地,所述標識為graypub參數(shù),graypub參數(shù)的不同取值分別表示符合標識和不符合標識。為了解決上述問題,本申請還公開了一種應(yīng)用發(fā)布系統(tǒng),包括:用戶請求接收模塊,用于接收客戶端發(fā)送的用戶請求,所述用戶請求中包含請求訪問的統(tǒng)一資源定位符;配置信息獲取模塊,用于獲取配置服務(wù)器中的應(yīng)用配置信息;處理模塊,用于基于用戶請求信息和從配置服務(wù)器中獲取的應(yīng)用配置信息,對當前用戶請求進行處理,所述處理包括:若當前用戶符合進入灰度發(fā)布版本的條件符合,則重寫當前用戶請求中的統(tǒng)一資源定位符;請求傳遞模塊,用于將處理后的統(tǒng)一資源定位符傳遞給應(yīng)用,應(yīng)用根據(jù)處理后的統(tǒng)一資源定位符以及應(yīng)用配置信息,確定當前用戶進入的版本。進一步地,所述系統(tǒng)還包括:監(jiān)聽模塊,用于監(jiān)聽配置服務(wù)器中的應(yīng)用配置信息的修改操作;查詢所述修改的應(yīng)用配置信息所對應(yīng)的應(yīng)用服務(wù)器;將所述修改后的應(yīng)用配置信息同步到所述應(yīng)用服務(wù)器。進一步地,所述應(yīng)用配置信息包括統(tǒng)一資源定位符和分流策略,所述處理模塊包括:判斷單元,用于判斷所述當前用戶的統(tǒng)一資源定位符與應(yīng)用配置信息中的統(tǒng)一資源定位符是否匹配,若匹配,則根據(jù)分流策略來判斷當前用戶是否符合進入灰度發(fā)布版本的條件。進一步地,所述處理模塊還包括: 標識添加單元,若當前用戶符合進入灰度發(fā)布的條件,則添加符合標識在當前用戶請求的統(tǒng)一資源定位符中,反之,則添加不符合標識在當前用戶請求的統(tǒng)一資源定位符中;或者若當前用戶符合進入灰度發(fā)布的條件,則添加標識在當前用戶請求的統(tǒng)一資源定位符中,反之,則不做處理。與現(xiàn)有技術(shù)相比,本申請包括以下優(yōu)點:本申請的應(yīng)用發(fā)布方法和系統(tǒng)對客戶端通過服務(wù)器發(fā)送給應(yīng)用的訪問請求進行攔截,先對訪問請求進行過濾,根據(jù)預定的條件來判斷當前用戶所能訪問的應(yīng)用版本,并根據(jù)判斷結(jié)果對訪問請求中的統(tǒng)一資源定位符進行重寫,從而對訪問用戶實現(xiàn)分流,達到應(yīng)用灰度發(fā)布的目的。通過在服務(wù)器和應(yīng)用之間建立系統(tǒng)實現(xiàn)分流,通過控制該系統(tǒng)中的分流策略和配置信息便可以控制灰度發(fā)布的范圍,在應(yīng)用所對應(yīng)的任何服務(wù)器中都可以應(yīng)用,無需專門采用灰度測試服務(wù)器,也無需重新建立灰度測試環(huán)境,從而可以節(jié)省時間和精力。另外,因為該系統(tǒng)為獨立的系統(tǒng),可以應(yīng)用于該服務(wù)器的所有應(yīng)用中,只需要在系統(tǒng)中添加應(yīng)用對應(yīng)的配置信息即可實現(xiàn)灰度發(fā)布的控制,從而便于管理,特別是對于包含有大量應(yīng)用的大型服務(wù)器來說,此種方法無需再逐一管理其中的各應(yīng)用,可以實現(xiàn)統(tǒng)一控制,降低了管理難度和成本。另外,當灰度發(fā)布測試到某一階段,需要擴大一定的測試范圍時或者完全發(fā)布時,可以通過逐漸放量的方式,只需要更改配置信息中的相關(guān)信息,例如分流閾值等等便可以實現(xiàn),無需更改測試環(huán)境和服務(wù)器,從而減低了灰度發(fā)布的復雜度,并提高了灰度發(fā)布的通用性。當然,實施本申請的任一產(chǎn)品不一定需要同時達到以上所述的所有優(yōu)點。
圖1是本申請的本申請的應(yīng)用發(fā)布方法和系統(tǒng)實現(xiàn)的架構(gòu)圖;圖2是本申請的應(yīng)用發(fā)布方法實施例一的流程圖;圖3是本申請的應(yīng)用發(fā)布方法和系統(tǒng)中同步過程的架構(gòu)圖;圖4是本申請的應(yīng)用發(fā)布方法和系統(tǒng)實例的系統(tǒng)架構(gòu)圖;圖5是本申請的應(yīng)用發(fā)布系統(tǒng)實施例一的結(jié)構(gòu)示意圖。
具體實施例方式為使本申請的上述目的、特征和優(yōu)點能夠更加明顯易懂,下面結(jié)合附圖和具體實施方式
對本申請作進一步詳細的說明。參照圖1,其示出本申請的應(yīng)用發(fā)布方法和系統(tǒng)實現(xiàn)的架構(gòu)圖,需要進行灰度發(fā)布的應(yīng)用的新舊版本代碼可同時存儲在應(yīng)用服務(wù)器中,灰度發(fā)布的策略等應(yīng)用配置信息由配置服務(wù)器統(tǒng)一存儲管理,應(yīng)用服務(wù)器通過與配置服務(wù)器之間的信息交互來獲取和同步應(yīng)用配置信息。當用戶通過客戶端向應(yīng)用服務(wù)器發(fā)送訪問請求時,應(yīng)用服務(wù)器基于用戶請求信息和從配置服務(wù)器中獲取到的應(yīng)用配置信息來對用戶進行實時判斷,并確定其所進入的灰度發(fā)布版本,從而實現(xiàn)應(yīng)用的灰度發(fā)布。參照圖2,其示出本申請的一種應(yīng)用發(fā)布方法實施例一,包括以下步驟:步驟101,接收客戶端發(fā)送的用戶請求,所述用戶請求中包含請求訪問的統(tǒng)一資源定位符(URL, Uniform Resource Locator)。服務(wù)器端在接收客戶端發(fā)送的用戶請求后,會將用戶請求傳遞給應(yīng)用發(fā)布系統(tǒng)。用戶請求除了包含應(yīng)用的URL之外,還可以包含用戶標識(ID)等信息,應(yīng)用發(fā)布系統(tǒng)可以根據(jù)實際需求來讀取用戶請求中的相關(guān)信息。步驟102,基于用戶請求信息和從配置服務(wù)器中獲取的應(yīng)用配置信息,對用戶請求信息進行處理,所述處理包括:若當前用戶符合進入灰度發(fā)布版本的條件符合,則重寫當前用戶請求中的URL。應(yīng)用配置信息由配置服務(wù)器統(tǒng)一管理,配置服務(wù)器中可以存儲多個應(yīng)用的配置信息,且維護有配置表,以保證應(yīng)用與各自的配置信息一一對應(yīng)。應(yīng)用服務(wù)器通過與配置服務(wù)器的交互來實時獲取應(yīng)用配置信息。應(yīng)用配置信息可包括該應(yīng)用所對應(yīng)的統(tǒng)一資源定位符、重寫統(tǒng)一資源定位符的規(guī)則以及分流策略等等。當前用戶是否符合進入灰度發(fā)布版本的條件可以是:首先判斷當前用戶請求的URL是否與預存的URL匹配,若匹配,則分流策略來判斷當前用戶是否符合進入灰度發(fā)布版本的條件。可以理解,通過分流策略來判斷時,根據(jù)分流策略的不同,還可以獲取當前用戶的其他信息來幫助實現(xiàn)判斷。例如,分流策略可以包括通用的分流策略,也可以包括特定的分流策略。通用的分流策略一般包括隨機分流或者根據(jù)用戶ID分流等等。隨機分流策略為隨機選取設(shè)定比例范圍內(nèi)的用戶作為進入灰度發(fā)布版本的用戶,此時,可以僅通過用戶請求中的URL就可以實現(xiàn)判斷。用戶ID分流策略為從用戶請求中獲取用戶ID,根據(jù)預定規(guī)則對ID進入處理后,根據(jù)處理后的值對用戶進行分組,例如,對ID求余(mod)等方式,則通過設(shè)定余數(shù)的取值區(qū)間來選取進入灰度發(fā)布版本的用戶。特定的分流策略則可以根據(jù)實際情況來確定。例如,根據(jù)會員業(yè)務(wù)分組。假設(shè)有普通會員、黃金會員和鉆石會員,可分別設(shè)定這三種會員進入灰度發(fā)布版本的比例等分流策略信息,此時,可通過獲取用戶請求中的用戶身份標識來識別用戶所在的分組,以確定該用戶請求是否進入灰度發(fā)布版本。可以理解,本申請還可包括更新應(yīng)用配置信息。當有新應(yīng)用發(fā)布時,發(fā)布者可以選取灰度發(fā)布所需要的通用的分流策略或者特定的分流策略,并將新應(yīng)用的統(tǒng)一資源定位符等信息作為新的應(yīng)用配置信息添加到配置服務(wù)器中,然后更新配置表,并與新應(yīng)用對應(yīng)的應(yīng)用服務(wù)器建立數(shù)據(jù)通信即可實現(xiàn)新應(yīng)用的灰度發(fā)布。另外,更新應(yīng)用配置信息還包括原有應(yīng)用配置信息的修改,當應(yīng)用發(fā)布者對應(yīng)用配置信息進行修改,例如需要擴大灰度發(fā)布范圍時,可以在配置服務(wù)器中修改對應(yīng)的分流策略。此時設(shè)置在配置服務(wù)器中的監(jiān)聽單元可以監(jiān)聽到修改操作,并會查詢配置表獲取修改的應(yīng)用配置信息所對應(yīng)的應(yīng)用服務(wù)器,然后將修改后的應(yīng)用配置信息同步到所述應(yīng)用服務(wù)器中,從而實現(xiàn)應(yīng)用服務(wù)器中的應(yīng)用配置信息的實時更新,進而保證應(yīng)用發(fā)布時分流數(shù)據(jù)的準確性??梢岳斫?,所有應(yīng)用的配置信息都可以存儲在配置服務(wù)器中,通過配置服務(wù)器來實現(xiàn)數(shù)據(jù)的同步。參照圖3,當后臺管理在配置服務(wù)器中修改應(yīng)用配置信息后,置于配置服務(wù)器中的監(jiān)聽裝置首先能夠監(jiān)聽該修改操作,并查找到修改后的應(yīng)用配置信息,然后同步給對應(yīng)的應(yīng)用服務(wù)器。重寫當前用戶請求中的統(tǒng)一資源定位符根據(jù)應(yīng)用配置信息中的重寫統(tǒng)一資源定位符的規(guī)則來實現(xiàn),例如,在當前用戶請求中的統(tǒng)一資源定位符中添加標識。可以理解,若當前用戶不符合進入灰度發(fā)布版本的條件,可以不做處理,也可以重寫其請求中的統(tǒng)一資源定位符。此時可以通過在符合與不符合的統(tǒng)一資源定位符中添加不同的標識符來區(qū)別。例如,在符合條件的統(tǒng)一資源定位符中添加符合標識、在不符合條件的統(tǒng)一資源定位符中添加不符合標識。以graypub參數(shù)作為標識為例,當graypub參數(shù)取不同的值時,分別表示是否符合。例如,如果附加graypub = O或者沒有這個參數(shù),則表示不能進入灰度發(fā)布版本;如果附加graypub = I,則表示能夠進入灰度發(fā)布版本。另外,如果還有其他的分流策略,例如,根據(jù)具體業(yè)務(wù)分組,貝1J可以通過附加graypub = x(x為一個大于2的數(shù)字)來表示具體業(yè)務(wù)分組。如,設(shè)定2表示普通會員,3表示黃金會員,4表示鉆石會員等等。當URL中附加graypub = 2,則說明能夠進入普通會員的灰度發(fā)布版本。步驟103,將處理后的URL傳遞給應(yīng)用,應(yīng)用根據(jù)處理后的URL以及應(yīng)用配置信息來確定當前用戶進入的版本。應(yīng)用配置信息中包含有重寫URL的規(guī)則,URL被重寫后,則可以根據(jù)此重寫規(guī)則對URL進行解析。置于應(yīng)用服務(wù)器中的處理模塊在重寫URL之后,則會將用戶訪問請求傳遞給應(yīng)用。應(yīng)用會設(shè)定特定的邏輯判斷模塊,并包含不同版本的運行代碼,應(yīng)用在接收請求后,根據(jù)URL中的標識以及結(jié)合應(yīng)用配置信息中的重寫規(guī)則來確定當前用戶所進入的版本代碼。例如,以前述應(yīng)用配置信息的重寫規(guī)則為例,如果URL中有g(shù)raypub = I這個參數(shù),則認為需要進入灰度發(fā)布版本,如果URL中有g(shù)raypub = O或者沒有這個參數(shù),則認為不需要進入灰度發(fā)布版本。又如,如果URL中有g(shù)raypub = 2這個參數(shù),則認為需要進入普通會員所對應(yīng)的灰度發(fā)布版本。參照圖4,其示出本申請實施過程中的用戶請求走向圖。在一具體場景中,所述應(yīng)用發(fā)布系統(tǒng)判斷用戶請求是否應(yīng)該進入灰度發(fā)布和對URL的重寫可通過置于應(yīng)用服務(wù)器中的apache或者nginx來實現(xiàn)。首先,用戶請求經(jīng)過負載均衡路由到一臺應(yīng)用服務(wù)器,置于應(yīng)用服務(wù)器中的apache/nginx,通過從配置服務(wù)器中所獲取的應(yīng)用配置信息來判斷當前用戶是否需要進行灰度發(fā)布版本,并根據(jù)判斷結(jié)果重寫當前用戶請求中的URL,即在URL中添加對應(yīng)的灰度發(fā)布重寫標記。本實例中,灰度發(fā)布重寫標記是graypub參數(shù),如果graypub = O或者沒有這個參數(shù),認為沒有進入灰度發(fā)布版本;如果graypub = I表示進入灰度發(fā)布版本;如果graypub = x(x是一個大于2的數(shù)字),則表示根據(jù)具體業(yè)務(wù)分組。應(yīng)用服務(wù)器中,Web應(yīng)用方在接收請求時,首選讀取用戶請求的URL,并基于應(yīng)用配置信息進行判斷。如果有g(shù)raypub = I這個參數(shù),則認為需要進入灰度發(fā)布版本,控制進入灰度發(fā)布的新代碼;如果沒有g(shù)raypub參數(shù)或者graypub參數(shù)為O,則認為不需要進入,則控制進入原代碼執(zhí)行;如果graypub為其他參數(shù),則表示根據(jù)業(yè)務(wù)情況處理,分別控制其進入對應(yīng)的代碼。本申請通過需要進行灰度發(fā)布的各種應(yīng)用的應(yīng)用配置信息置于配置服務(wù)器中,各應(yīng)用服務(wù)器只需要與配置服務(wù)器進行通信便可以獲取到與之對應(yīng)的應(yīng)用配置信息。當應(yīng)用服務(wù)器接收到訪問請求時,可以基于配置信息和用戶請求信息進行實時判斷,從而確定用戶所進入的版本。通過后臺的配置服務(wù)器可以實時對各應(yīng)用的應(yīng)用配置信息進行修改,如分流策略中的閾值等等,可以準確的控制灰度發(fā)布的范圍和精度。例如,當某一應(yīng)用的灰度發(fā)布的范圍需要從20%擴大到50%時,無需重新修改應(yīng)用服務(wù)器的發(fā)布環(huán)境,也無需增減應(yīng)用服務(wù)器,可以直接在配置服務(wù)器中修改該應(yīng)用配置信息中的分流策略數(shù)據(jù),然后通過配置服務(wù)器與應(yīng)用服務(wù)器之間的數(shù)據(jù)通信,將修改后的應(yīng)用配置信息同步到對應(yīng)的應(yīng)用服務(wù)器中。此種方式無需更改測試環(huán)境和應(yīng)用服務(wù)器,這降低了灰度發(fā)布的復雜度,提高了灰度發(fā)布的通用性。另外,配置服務(wù)器中可以存儲多個應(yīng)用的應(yīng)用配置信息,并分別與多個應(yīng)用服務(wù)器建立數(shù)據(jù)通信,各應(yīng)用的配置信息可以得到統(tǒng)一管理和維護,降低灰度發(fā)布的成本。參照圖5,其示出本申請的應(yīng)用發(fā)布系統(tǒng)實施例一,包括用戶請求接收模塊10、配置信息獲取模塊50、處理模塊20和請求傳遞模塊30。用戶請求接收模塊10,用于接收客戶端發(fā)送的用戶請求,所述用戶請求中包含請求訪問的統(tǒng)一資源定位符。配置信息獲取模塊50,用于獲取配置服務(wù)器中的應(yīng)用配置信息。處理模塊20,用于基于用戶請求信息和從配置服務(wù)器中獲取的應(yīng)用配置信息,對當前用戶請求進行處理,所述處理包括:若當前用戶符合進入灰度發(fā)布版本的條件符合,則重寫當前用戶請求中的統(tǒng)一資源定位符。優(yōu)選地,處理模塊20還包括判斷單元,用于判斷所述當前用戶的統(tǒng)一資源定位符與應(yīng)用配置信息中的統(tǒng)一資源定位符是否匹配,若匹配,則根據(jù)分流策略來判斷當前用戶是否符合進入灰度發(fā)布版本的條件。優(yōu)選地,處理模塊20還包括標識添加單元,若當前用戶符合進入灰度發(fā)布的條件,則添加符合標識在當前用戶請求的統(tǒng)一資源定位符中,反之,則添加不符合標識在當前用戶請求的統(tǒng)一資源定位符中;或者若當前用戶符合進入灰度發(fā)布的條件,則添加標識在當前用戶請求的統(tǒng)一資源定位符中,反之,則不做處理。具體的,處理模塊可以根據(jù)預定的應(yīng)用配置信息中的重寫統(tǒng)一資源定位符的規(guī)則寫入對應(yīng)的參數(shù)到統(tǒng)一資源定位符中,例如,附加graypub = O或者不附加這個參數(shù),則表示不能進入灰度發(fā)布版本;如果附加graypub = I,則表示能夠進入灰度發(fā)布版本。另外如果還有其他的分流策略,例如,根據(jù)具體業(yè)務(wù)分組,則可以通過附加graypub = x(x為一個大于2的數(shù)字)來表示具體業(yè)務(wù)分組。請求傳遞模塊30,用于將處理后的統(tǒng)一資源定位符傳遞給應(yīng)用,應(yīng)用根據(jù)處理后的統(tǒng)一資源定位符中以及應(yīng)用配置信息,確定當前用戶進入的版本。優(yōu)選地,應(yīng)用發(fā)布系統(tǒng)還包括監(jiān)聽模塊,用于監(jiān)聽配置服務(wù)器中的應(yīng)用配置信息的修改操作,并查詢修改的應(yīng)用配置信息所對應(yīng)的應(yīng)用服務(wù)器,然后將修改后的應(yīng)用配置信息同步到所述應(yīng)用服務(wù)器。其中,配置服務(wù)器中可以維護一個配置表,記錄其中所存儲的所有應(yīng)用以及各應(yīng)用對應(yīng)的配置信息、以及應(yīng)用對應(yīng)的應(yīng)用服務(wù)器。在監(jiān)聽到應(yīng)用配置信息有更新時,則查詢該應(yīng)用對應(yīng)的應(yīng)用服務(wù)器,并將更新的應(yīng)用配置信息同步給應(yīng)用服務(wù)器。本說明書中的各個實施例均采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似的部分互相參見即可。對于系統(tǒng)實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實施例的部分說明即可。以上對本申請所提供的應(yīng)用發(fā)布方法及系統(tǒng)進行了詳細介紹,本文中應(yīng)用了具體個例對本申請的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本申請的方法及其核心思想;同時,對于本領(lǐng)域的一般技術(shù)人員,依據(jù)本申請的思想,在具體實施方式
及應(yīng)用范圍上均會有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對本申請的限制。
權(quán)利要求
1.一種應(yīng)用發(fā)布方法,其特征在于,包括以下步驟: 接收客戶端發(fā)送的用戶請求,所述用戶請求中包含請求訪問的統(tǒng)一資源定位符; 基于用戶請求信息和從配置服務(wù)器中獲取的應(yīng)用配置信息,對用戶請求信息進行處理,所述處理包括:若當前用戶符合進入灰度發(fā)布版本的條件,則重寫當前用戶請求中的統(tǒng)一資源定位符; 將處理后的統(tǒng)一資源定位符傳遞給應(yīng)用,應(yīng)用根據(jù)處理后的統(tǒng)一資源定位符以及應(yīng)用配置信息來確定當前用戶進入的版本。
2.如權(quán)利要求1所述的應(yīng)用發(fā)布方法,其特征在于,所述方法還包括更新應(yīng)用配置信息,所述更新應(yīng)用配置信息包括: 監(jiān)聽配置服務(wù)器中的應(yīng)用配置信息的修改操作; 從預存的配置表中查詢所述修改的應(yīng)用配置信息所對應(yīng)的應(yīng)用服務(wù)器; 將所述修改后的應(yīng)用配置信息同步到所述應(yīng)用服務(wù)器。
3.如權(quán)利要求1所述的應(yīng)用發(fā)布方法,其特征在于,所述應(yīng)用配置信息包括: 應(yīng)用的統(tǒng)一資源定位符和分流策略。
4.如權(quán)利要求3所述的應(yīng)用發(fā)布方法,其特征在于,所述判斷當前用戶是否符合進入灰度發(fā)布版本的條件包括: 判斷當前用戶的統(tǒng)一 資源定位符與應(yīng)用配置信息中的統(tǒng)一資源定位符是否匹配,若匹配,則根據(jù)分流策略來判斷當前用戶是否符合進入灰度發(fā)布版本的條件。
5.如權(quán)利要求1所述的應(yīng)用發(fā)布方法,其特征在于,所述重寫當前用戶請求中的統(tǒng)一資源定位符包括:在當前用戶請求中的統(tǒng)一資源定位符添加標識;所述處理還包括:若當前用戶符合進入灰度發(fā)布版本的條件符合,則不做處理; 所述應(yīng)用根據(jù)處理后的統(tǒng)一資源定位符以及應(yīng)用配置信息來確定當前用戶進入的版本包括:若處理后的當前用戶請求中的統(tǒng)一資源定位符包含標識,則表示能夠進入灰度發(fā)布版本,反之,則表示不能夠進入灰度發(fā)布版本。
6.如權(quán)利要求1所述的應(yīng)用發(fā)布方法,其特征在于,所述重寫當前用戶請求中的統(tǒng)一資源定位符包括:添加符合標識在當前用戶請求的統(tǒng)一資源定位符中;所述處理還包括:若當前用戶不符合進入灰度發(fā)布版本的條件,則添加不符合標識在當前用戶請求的統(tǒng)一資源定位符中; 所述應(yīng)用根據(jù)處理后的統(tǒng)一資源定位符以及應(yīng)用配置信息來確定當前用戶進入的版本包括:若處理后的當前用戶請求中的統(tǒng)一資源定位符包含符合標識,則表示能夠進入灰度發(fā)布版本,若包含不符合標識,則表示不能夠進入灰度發(fā)布版本。
7.如權(quán)利要求6所述的應(yīng)用發(fā)布方法,其特征在于,所述標識為graypub參數(shù),graypub參數(shù)的不同取值分別表示符合標識和不符合標識。
8.一種應(yīng)用發(fā)布系統(tǒng),其特征在于,包括: 用戶請求接收模塊,用于接收客戶端發(fā)送的用戶請求,所述用戶請求中包含請求訪問的統(tǒng)一資源定位符; 配置信息獲取模塊,用于獲取配置服務(wù)器中的應(yīng)用配置信息; 處理模塊,用于基于用戶請求信息和從配置服務(wù)器中獲取的應(yīng)用配置信息,對當前用戶請求進行處理,所述處理包括:若當前用戶符合進入灰度發(fā)布版本的條件符合,則重寫當前用戶請求中的統(tǒng)一資源定位符; 請求傳遞模塊,用于將處理后的統(tǒng)一資源定位符傳遞給應(yīng)用,應(yīng)用根據(jù)處理后的統(tǒng)一資源定位符以及應(yīng)用配置信息,確定當前用戶進入的版本。
9.如權(quán)利要求8所述的應(yīng)用發(fā)布系統(tǒng),其特征在于,所述系統(tǒng)還包括: 監(jiān)聽模塊,用于監(jiān)聽配置服務(wù)器中的應(yīng)用配置信息的修改操作;查詢所述修改的應(yīng)用配置信息所對應(yīng)的應(yīng)用服務(wù)器;將所述修改后的應(yīng)用配置信息同步到所述應(yīng)用服務(wù)器。
10.如權(quán)利要求8或9所述的應(yīng)用發(fā)布系統(tǒng),其特征在于,所述應(yīng)用配置信息包括統(tǒng)一資源定位符和分流策略,所述處理模塊包括: 判斷單元,用于判斷所述當前用戶的統(tǒng)一資源定位符與應(yīng)用配置信息中的統(tǒng)一資源定位符是否匹配,若匹配,則根據(jù)分流策略來判斷當前用戶是否符合進入灰度發(fā)布版本的條件。
11.如權(quán)利要求8所述的應(yīng)用發(fā)布系統(tǒng),其特征在于,所述處理模塊還包括: 標識添加單元,若當前用戶符合進入灰度發(fā)布的條件,則添加符合標識在當前用戶請求的統(tǒng)一資源定位符中,反之,則添加不符合標識在當前用戶請求的統(tǒng)一資源定位符中;或者 若當前用戶符合進入灰度發(fā)布的條件,則添加標識在當前用戶請求的統(tǒng)一資源定位符中,反之,則不做處理。
全文摘要
本發(fā)明提供了一種應(yīng)用發(fā)布方法,包括以下步驟接收客戶端發(fā)送的用戶請求,所述用戶請求中包含請求訪問的統(tǒng)一資源定位符;基于用戶請求信息和從配置服務(wù)器中獲取的應(yīng)用配置信息,對用戶請求信息進行處理,所述處理包括若當前用戶符合進入灰度發(fā)布版本的條件,則重寫當前用戶請求中的統(tǒng)一資源定位符;將處理后的統(tǒng)一資源定位符傳遞給應(yīng)用,應(yīng)用根據(jù)處理后的統(tǒng)一資源定位符以及應(yīng)用配置信息來確定當前用戶進入的版本。本發(fā)明還提供一種實現(xiàn)前述方法的應(yīng)用發(fā)布系統(tǒng)。本發(fā)明的應(yīng)用發(fā)布方法及系統(tǒng),能夠?qū)?yīng)用灰度發(fā)布實現(xiàn)統(tǒng)一控制管理、節(jié)省應(yīng)用灰度發(fā)布時間以及成本。
文檔編號H04L29/08GK103176790SQ20111044227
公開日2013年6月26日 申請日期2011年12月26日 優(yōu)先權(quán)日2011年12月26日
發(fā)明者徐恒飛 申請人:阿里巴巴集團控股有限公司