一種服務(wù)控制方法、服務(wù)控制裝置以及服務(wù)系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了一種服務(wù)控制方法、服務(wù)控制裝置以及服務(wù)系統(tǒng),該方法包括:接收步驟,接收用戶發(fā)送的外部業(yè)務(wù)請求;檢測步驟,檢測是否存在新老不同版本的數(shù)據(jù)處理子系統(tǒng);分流控制步驟,在檢測步驟檢測出存在不同版本的數(shù)據(jù)處理子系統(tǒng)時,根據(jù)預(yù)設(shè)的分流條件,將外部業(yè)務(wù)請求分流到不同版本的數(shù)據(jù)處理子系統(tǒng)中;切換步驟,當新版本數(shù)據(jù)處理子系統(tǒng)不穩(wěn)定時,將分流到新版本數(shù)據(jù)處理子系統(tǒng)的外部業(yè)務(wù)請求從新版本的數(shù)據(jù)處理子系統(tǒng)切換到老版本的數(shù)據(jù)處理子系統(tǒng)。實現(xiàn)了對用戶的智能分流控制,保證了升級過程中對新版本服務(wù)的全面測試,并能及時切換回退至老版本服務(wù),達到降低系統(tǒng)升級風險的目的。
【專利說明】—種服務(wù)控制方法、服務(wù)控制裝置以及服務(wù)系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種服務(wù)控制方法、服務(wù)控制裝置以及服務(wù)系統(tǒng),特別是涉及移動業(yè)務(wù)支撐領(lǐng)域以及業(yè)務(wù)支撐系統(tǒng)設(shè)計領(lǐng)域。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)業(yè)務(wù)模式對傳統(tǒng)移動通信業(yè)的影響,通訊業(yè)務(wù)越來越互聯(lián)網(wǎng)化,傳統(tǒng)通訊公司的IT系統(tǒng)建設(shè)要逐步適應(yīng)互聯(lián)網(wǎng)業(yè)務(wù)的要求,向移動互聯(lián)的方向轉(zhuǎn)型,更加強調(diào)業(yè)務(wù)的快速升級和開放互聯(lián)。但因為電信行業(yè)的客戶需求的多樣性,多年以來沉淀下來的業(yè)務(wù)功能越來越復(fù)雜,系統(tǒng)之間的交叉越來越多,經(jīng)常會出現(xiàn)系統(tǒng)功能升級后某些功能點異常不能正常使用(如,前臺功能異常導(dǎo)致業(yè)務(wù)無法受理),或者用戶服務(wù)感知異常引發(fā)大批量的用戶投訴(如,后臺進程導(dǎo)致批量用戶數(shù)據(jù)錯誤)。這些問題,不但給用戶感知上造成極其不好的印象,也對支撐系統(tǒng)的穩(wěn)定性和服務(wù)連續(xù)性產(chǎn)生了很大的沖擊。
[0003]當前運營商的支撐系統(tǒng)上線都是采用一次性將服務(wù)全部升級的方式來操作,為了避免上線后出現(xiàn)問題,通常采用上線前加大測試力度和上線后增加驗證測試兩種方式。上線前通過大量的測試工作、規(guī)范的上線流程來保證版本發(fā)布的質(zhì)量,但因為業(yè)務(wù)特別復(fù)雜,很難保證測試案例涵蓋真實用戶的所有行為,測試難度大測試周期長;上線后通過自動化回歸和人工測試的方式進行驗證,但上線后驗證測試的時間短,只能保證對重點業(yè)務(wù)、重點場景的回歸驗證,無法保證全部業(yè)務(wù)的回歸驗證。此外,生產(chǎn)系統(tǒng)上的數(shù)據(jù)遠比測試環(huán)境復(fù)雜,存在因遺留的bug、或者維護人員人為修改遺留的“臟數(shù)據(jù)”,這些都是測試環(huán)境無法模擬出來的異常情況,因此,即使是在測試環(huán)境通過的功能仍然可能在生產(chǎn)環(huán)境上出問題。綜上所述,每次上線后出現(xiàn)問題的概率很大。
[0004]針對上述問題,需要對現(xiàn)有的服務(wù)控制方法和服務(wù)控制裝置以及服務(wù)系統(tǒng)進行改進,使之既能保證系統(tǒng)功能正常上線,又盡可能降低系統(tǒng)升級帶來的負面影響,把上線的風險限定在一個可控制的范圍以內(nèi)。
[0005]通常控制系統(tǒng)升級所帶來風險的思路是:控制上線可能影響到的用戶。通過事先框定部分目標用戶,當這批目標用戶在訪問系統(tǒng)時,才會使用到新升級的版本功能,而絕大多數(shù)的老用戶仍然使用老的穩(wěn)定版本的功能。這樣,即使系統(tǒng)升級后出了問題,受到影響的也僅僅是這一小批的目標用戶。
[0006]然而,對于電信運營商使用的龐大的運營支撐系統(tǒng)而言,基于以上的思路實現(xiàn)上線風險控制的挑戰(zhàn)很大。因為電信支撐運營系統(tǒng)的每一次升級除了前臺相關(guān)操作的新增修改,后臺對應(yīng)的查詢、計費、出賬、報表、財務(wù)等一系列的功能都要做相應(yīng)的新增或調(diào)整,數(shù)據(jù)表結(jié)構(gòu)也要做調(diào)整,涉及的歷史數(shù)據(jù)也很可能要做批量修改或者遷移,上述工作全部順利完成,才能實現(xiàn)一次完整的從前 臺到后臺版本升級工作。在這種復(fù)雜的場景下,如何控制系統(tǒng)升級的影響范圍,實現(xiàn)只有極少部分前臺營業(yè)人員、極少部分的客戶才能使用到升級后的服務(wù)和功能,絕大部分用戶使用的仍然是老版本穩(wěn)定的服務(wù),同時,當新版本出現(xiàn)不穩(wěn)定狀態(tài)時,能及時保證使用新版本的試點用戶回退至老版本并能正常使用服務(wù),目前而言尚無有效的解決方案。
【發(fā)明內(nèi)容】
[0007]本發(fā)明的實施例提供一種服務(wù)控制方法、服務(wù)控制裝置以及服務(wù)系統(tǒng),當新版本服務(wù)內(nèi)容通過一系列的測試之后,同時部署新老兩個版本的生產(chǎn)環(huán)境,或者在一個生產(chǎn)環(huán)境上同時部署新老兩個版本的數(shù)據(jù)處理子系統(tǒng),通過分流控制將少部分真實用戶的服務(wù)請求引導(dǎo)到新版本的生產(chǎn)環(huán)境或數(shù)據(jù)處理子系統(tǒng)上,在觀察期內(nèi)利用真實用戶來體驗新版本的功能,期間當新版本的生產(chǎn)環(huán)境或數(shù)據(jù)處理子系統(tǒng)出現(xiàn)不穩(wěn)定的情況時,例如出現(xiàn)問題等,能及時通過分流控制再把這部分用戶切換回到老版本的生產(chǎn)環(huán)境或數(shù)據(jù)處理子系統(tǒng)中,避免問題影響的擴大。
[0008] 具體而言,本發(fā)明的實施例涉及一種服務(wù)控制方法,包括:接收步驟,接收用戶發(fā)送的外部業(yè)務(wù)請求;檢測步驟,檢測是否存在新老不同版本的數(shù)據(jù)處理子系統(tǒng);分流控制步驟,在檢測步驟檢測出存在不同版本的數(shù)據(jù)處理子系統(tǒng)時,根據(jù)預(yù)設(shè)的分流條件,將外部業(yè)務(wù)請求分流到不同版本的數(shù)據(jù)處理子系統(tǒng)中;切換步驟,當新版本數(shù)據(jù)處理子系統(tǒng)不穩(wěn)定時,將分流到新版本數(shù)據(jù)處理子系統(tǒng)的外部業(yè)務(wù)請求從新版本的數(shù)據(jù)處理子系統(tǒng)切換到老版本的數(shù)據(jù)處理子系統(tǒng)。
[0009]本發(fā)明的實施例還涉及一種服務(wù)控制裝置,包括:接收模塊,接收用戶發(fā)送的外部業(yè)務(wù)請求;檢測模塊,與接收模塊相連,檢測是否存在新老不同版本的數(shù)據(jù)處理子系統(tǒng);分流控制模塊,與檢測模塊相連,在檢測模塊檢測出存在不同版本的數(shù)據(jù)處理子系統(tǒng)時,根據(jù)預(yù)設(shè)的分流條件,將外部業(yè)務(wù)請求分流到不同版本的數(shù)據(jù)處理子系統(tǒng)中;切換模塊,當新版本數(shù)據(jù)處理子系統(tǒng)不穩(wěn)定時,將分流到新版本數(shù)據(jù)處理子系統(tǒng)的外部業(yè)務(wù)請求從新版本的數(shù)據(jù)處理子系統(tǒng)切換到老版本的數(shù)據(jù)處理子系統(tǒng)。
[0010]同時,本發(fā)明的實施例還涉及一種服務(wù)系統(tǒng),包括:老版本生產(chǎn)子系統(tǒng),運行老版本的服務(wù);新版本生產(chǎn)子系統(tǒng),運行新版本的服務(wù);接收裝置,接收用戶發(fā)送的外部業(yè)務(wù)請求;檢測裝置,檢測是否存在新老不同版本的生產(chǎn)子系統(tǒng);分流控制裝置,在檢測模塊檢測出存在不同版本的生產(chǎn)子系統(tǒng)時,根據(jù)預(yù)設(shè)的分流條件,將外部業(yè)務(wù)請求分流到不同版本的生產(chǎn)子系統(tǒng)中;切換裝置,當新版本生產(chǎn)子系統(tǒng)不穩(wěn)定時,將分流到新版本生產(chǎn)子系統(tǒng)的外部業(yè)務(wù)請求從新版本生產(chǎn)子系統(tǒng)切換到老版本生產(chǎn)子系統(tǒng)。
[0011]本發(fā)明實施例具有如下有益效果中的至少一個:
[0012]本發(fā)明實施例中,將原本一次系統(tǒng)升級的工作拆分成多步實施,逐步擴大系統(tǒng)升級的范圍直至全部升級完成。分流控制根據(jù)業(yè)務(wù)特征將業(yè)務(wù)請求分流到新老不同版本的生產(chǎn)環(huán)境上,確保一部分試點數(shù)據(jù)運行在新版本的生產(chǎn)環(huán)境(服務(wù)集群)中;
[0013]同時,分流控制還支持快速回切,保證試點期間發(fā)現(xiàn)問題后所有業(yè)務(wù)請求能及時切換回老版本。本發(fā)明的實施例能按照預(yù)設(shè)的分流條件,對用戶進行分流,并根據(jù)新版本的穩(wěn)定程度,控制整個版本升級工作的風險。
[0014]待驗證新的版本符合條件并穩(wěn)定運行一段時間后,擴大體驗用戶的范圍,逐漸把老的版本替換升級,直到所有的服務(wù)全部升級到新版本。解決了傳統(tǒng)的升級方法升級復(fù)雜,新版本測試不充分,無法及時解決升級故障等問題。因此,本發(fā)明實施例中的系統(tǒng)升級方法實現(xiàn)了對用戶的智能分流控制,保證了升級過程中對新版本的全面測試,并能及時回退至老版本,達到降低系統(tǒng)升級風險的目的。
【專利附圖】
【附圖說明】
[0015]此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,并不構(gòu)成對本發(fā)明的限定。在附圖中:
[0016]圖1是本發(fā)明實施例的服務(wù)控制裝置的示意圖;
[0017]圖2是本發(fā)明實施例的服務(wù)控制裝置的硬件部署框圖;
[0018]圖3是本發(fā)明實施例的服務(wù)控制方法的示意圖;
[0019]圖4是本發(fā)明實施例的服務(wù)控制方法的分流控制流程圖。
【具體實施方式】
[0020]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下面結(jié)合實施方式和附圖,對本發(fā)明做進一步詳細說明。在此,本發(fā)明的示意性實施方式及其說明用于解釋本發(fā)明,但并不作為對本發(fā)明的限定。
[0021]本發(fā)明將原有系統(tǒng)升級的一次性的工作劃分成多次升級的工作,在生產(chǎn)環(huán)境保持兩套版本的服務(wù)集群,控制不同的用戶使用不同的系統(tǒng)版本。同時,通過跟蹤實際用戶的使用情況,驗證新版本的功能,監(jiān)控和收集新版本存在的問題,在新版本穩(wěn)定后再逐步擴大升級范圍,從而達到降低系統(tǒng)升級風險的目的。
[0022]圖1是本發(fā)明服務(wù)控制裝置的示意圖,該服務(wù)控制裝置包括:
[0023]接收模塊,接收用戶發(fā)送的外部業(yè)務(wù)請求;
[0024]檢測模塊,與接收模塊相連,檢測是否存在新老不同版本的數(shù)據(jù)處理子系統(tǒng);
[0025]分流控制模塊,與檢測模塊相連,在檢測模塊檢測出存在不同版本的數(shù)據(jù)處理子系統(tǒng)時,根據(jù)預(yù)設(shè)的分流條件,將外部業(yè)務(wù)請求分流到不同版本的數(shù)據(jù)處理子系統(tǒng)中;
[0026]切換模塊,當新版本數(shù)據(jù)處理子系統(tǒng)不穩(wěn)定時,將分流到新版本數(shù)據(jù)處理子系統(tǒng)的外部業(yè)務(wù)請求從新版本的數(shù)據(jù)處理子系統(tǒng)切換到老版本的數(shù)據(jù)處理子系統(tǒng)。
[0027]具體而言,通過例如計算機終端設(shè)備,手機通訊設(shè)備或互聯(lián)網(wǎng)接入端等發(fā)出所要辦理的業(yè)務(wù)請求,接收模塊接收上述外部業(yè)務(wù)請求,將其發(fā)送至檢測模塊。這里業(yè)務(wù)請求來自用戶自助辦理或營業(yè)廳的工作人員人工辦理,所發(fā)送的業(yè)務(wù)請求數(shù)據(jù)中可包含有發(fā)起請求的IP地址,用戶的手機號碼等識別信息。
[0028]檢測模塊接收到從接受模塊所發(fā)送的業(yè)務(wù)請求之后,檢測辦理該項業(yè)務(wù)請求的數(shù)據(jù)處理子系統(tǒng),判斷是否同時部署了新老兩套版本的數(shù)據(jù)處理子系統(tǒng),新版本的數(shù)據(jù)處理子系統(tǒng)處于測試階段。檢測模塊執(zhí)行如下功能,在只有一套老版本數(shù)據(jù)處理子系統(tǒng)的服務(wù)時,直接執(zhí)行老版本的服務(wù),不必進行分流控制。如果存在新老兩個版本數(shù)據(jù)處理子系統(tǒng)的服務(wù)需要將請求進行分流時,執(zhí)行分流操作。優(yōu)選地,當遇到新版本的服務(wù)異常時,可以通過切換模塊,快速將所有的外部服務(wù)請求都切換到老版本數(shù)據(jù)處理子系統(tǒng)的服務(wù)集群上去。
[0029] 而分流控制模塊,與檢測模塊相連,在檢測模塊檢測出存在新老不同版本的數(shù)據(jù)處理子系統(tǒng)需要進行分流時,根據(jù)預(yù)設(shè)的分流條件,將外部業(yè)務(wù)請求分流到不同版本的數(shù)據(jù)處理子系統(tǒng)中。[0030]當新版本的數(shù)據(jù)處理子系統(tǒng)不穩(wěn)定時,切換模塊能夠?qū)⒎至鞯叫掳姹镜耐獠繕I(yè)務(wù)請求從新版本的數(shù)據(jù)處理子系統(tǒng)切換到老版本的數(shù)據(jù)處理子系統(tǒng)。
[0031]分流控制模塊能執(zhí)行自適應(yīng)的智能分流,根據(jù)業(yè)務(wù)特征將業(yè)務(wù)請求分流到不同版本的生產(chǎn)環(huán)境上,確保試點數(shù)據(jù)運行在新版本的服務(wù)集群中;切換模塊支持快速回切策略,保證試點期間發(fā)現(xiàn)問題后所有業(yè)務(wù)請求能及時切換回老版本。
[0032]分流控制模塊支持預(yù)設(shè)的分流條件,該分流條件包括靜態(tài)分流條件和動態(tài)分流條件,即可基于靜態(tài)試點數(shù)據(jù),如控制前臺試點范圍(靜態(tài)分流條件),又可在靜態(tài)試點數(shù)據(jù)的基礎(chǔ)上基于動態(tài)試點數(shù)據(jù),如隨機挑選真實用戶作為試點(動態(tài)分流條件),有效保證試點樣本的隨機性。
[0033]本發(fā)明實施例中,該服務(wù)控制裝置還可以包括:
[0034]驗證模塊,與分流控制模塊相連,跟蹤分流到新版本的用戶使用情況的數(shù)據(jù),監(jiān)控和分析新版本的數(shù)據(jù)處理子系統(tǒng)的數(shù)據(jù),進而驗證新版本的數(shù)據(jù)處理子系統(tǒng)是否穩(wěn)定。
[0035]通過驗證模塊的設(shè)置,如網(wǎng)管監(jiān)控分析系統(tǒng)等及時獲取的新版本服務(wù)性能信息、試點用戶的動態(tài)業(yè)務(wù)分析數(shù)據(jù),進而可以設(shè)定更加合適的分流條件,影響試點用戶的業(yè)務(wù)分流流向。
[0036]本發(fā)明實施例中,該服務(wù)控制裝置還可以包括:
[0037]數(shù)據(jù)遷移模塊,與分流控制模塊相連,在分流到新版本數(shù)據(jù)處理子系統(tǒng)的試點用戶的外部業(yè)務(wù)請求被接受后,將該試點用戶的歷史數(shù)據(jù)從老版本數(shù)據(jù)處理子系統(tǒng)遷移到新版本數(shù)據(jù)處理子系統(tǒng)。
[0038]所述數(shù)據(jù)遷移模塊還支持將試點用戶的歷史數(shù)據(jù)從新版本回退到老版本的生產(chǎn)環(huán)境。版本升級中如涉及到相關(guān)用戶數(shù)據(jù)表結(jié)構(gòu)調(diào)整,需要先把歷史數(shù)據(jù)轉(zhuǎn)換成新的格式才能保證新版本的運行。本方案不用提前批量遷移數(shù)據(jù)(大數(shù)據(jù)量)的方式,而是通過數(shù)據(jù)遷移模塊實現(xiàn)數(shù)據(jù)的即時遷移;例如:數(shù)據(jù)結(jié)構(gòu)(格式)的轉(zhuǎn)換,在試點用戶的業(yè)務(wù)請求到達后,觸發(fā)該試點用戶的歷史數(shù)據(jù)遷移(小數(shù)據(jù)量),這樣,既保證數(shù)據(jù)遷移的效率,又能保證服務(wù)的正常運行。
[0039]其中數(shù)據(jù)遷移模塊包括:第一數(shù)據(jù)遷移模塊,在分流到新版本數(shù)據(jù)處理子系統(tǒng)的試點用戶的外部業(yè)務(wù)請求被接受后,將該試點用戶的歷史數(shù)據(jù)從老版本數(shù)據(jù)處理子系統(tǒng)遷移到新版本數(shù)據(jù)處理子系統(tǒng)。
[0040]第一數(shù)據(jù)遷移模塊將試點用戶的歷史數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),從老版本數(shù)據(jù)處理子系統(tǒng)的結(jié)構(gòu)形式變化為新版本數(shù)據(jù)處理子系統(tǒng)的結(jié)構(gòu)形式。
[0041]其中數(shù)據(jù)遷移模塊還可以包括:
[0042]第二數(shù)據(jù)遷移模塊,當新版本數(shù)據(jù)處理子系統(tǒng)不穩(wěn)定時,在切換模塊執(zhí)行切換前,將遷移到新版本數(shù)據(jù)處理子系統(tǒng)的歷史數(shù)據(jù)遷移到老版本數(shù)據(jù)處理子系統(tǒng)。
[0043]第二數(shù)據(jù)遷移模塊將試點用戶的歷史數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),從新版本數(shù)據(jù)處理子系統(tǒng)的結(jié)構(gòu)形式變化為老版本數(shù)據(jù)處理子系統(tǒng)的結(jié)構(gòu)形式,使得回退后還能夠基于老版本數(shù)據(jù)處理子系統(tǒng)提供服務(wù)。
[0044]新版本數(shù)據(jù)處理子系統(tǒng)下的服務(wù)經(jīng)驗證穩(wěn)定后,老版本的服務(wù)集群將逐步升級加入到新版本的服務(wù)集群中,直到全部升級完成。
[0045]如圖2所示,本實施例采用硬件負載均衡設(shè)備來保障各項服務(wù)的連續(xù)性,除此之外也可以通過軟負載均衡前端服務(wù)器來保證。新版本的服務(wù)集群和老版本的服務(wù)集群各自獨立,避免相互之間的影響。同時,重構(gòu)業(yè)務(wù)調(diào)用的實現(xiàn),調(diào)用之前必須先通過“分流控制模塊”來決定是調(diào)用老版本的業(yè)務(wù)服務(wù)還是新版本的業(yè)務(wù)服務(wù),從而實現(xiàn)不同版本服務(wù)分流調(diào)用的目的。這里作為分流模塊的一個具體應(yīng)用,可以采用智能分流引擎。
[0046]業(yè)務(wù)請求首先通分流控制服務(wù)集群,由智能分流引擎判斷是調(diào)用老版本的業(yè)務(wù)服務(wù)接口還是調(diào)用新版本的業(yè)務(wù)服務(wù)接口,再由切換模塊分別轉(zhuǎn)發(fā)到新、老兩套不同版本的業(yè)務(wù)服務(wù)集群入口中。智能分流引擎采用不同的分流條件,根據(jù)不同的需要設(shè)定分流條件,如根據(jù)服務(wù)請求的報文頭格式、根據(jù)業(yè)務(wù)請求的成功率等;同時也能導(dǎo)入相應(yīng)的數(shù)據(jù)清單來設(shè)定分流條件,如發(fā)起請求的IP地址、請求中對應(yīng)用戶手機號碼等;這些分流條件的相關(guān)數(shù)據(jù)除了會保存在配置數(shù)據(jù)庫中,同時也會通過緩存的方式保存在內(nèi)存中以提高訪問的效率。同時,實時更新的緩存信息也可以通過接口定期回寫到配置數(shù)據(jù)庫中,以保證服務(wù)重啟后數(shù)據(jù)不會缺失。智能分流引擎和驗證模塊的業(yè)務(wù)監(jiān)控之間也打通了接口,業(yè)務(wù)監(jiān)控的部分分析數(shù)據(jù),如調(diào)用次數(shù)、調(diào)用成功率,會實時傳遞到智能分流引擎,通過分析數(shù)據(jù)得出的統(tǒng)計信息也能構(gòu)成基礎(chǔ)數(shù)據(jù)配合形成相應(yīng)的分流條件來使用,比如,某新版服務(wù)調(diào)用連續(xù)一段時間內(nèi)失敗次數(shù)超過一定的閥值,相關(guān)的新版本服務(wù)都不再被調(diào)用;或者某個試點用戶調(diào)用服務(wù)重復(fù)失敗一定次數(shù)后,自動將該用戶從試點用戶中剔除。[0047]如果新版本上線后發(fā)現(xiàn)新版本的服務(wù)有缺陷,不需要回退代碼,直接通過分流控制模塊關(guān)閉分流控制,立即把前臺請求引導(dǎo)到老版本的服務(wù)上,實現(xiàn)升級業(yè)務(wù)的快速回退,確保服務(wù)穩(wěn)定性。在新版本通過一定時間的驗證后,通過調(diào)整服務(wù)集群策略,將一部分老版本服務(wù)集群上的服務(wù)升級后加入到新版本服務(wù)的集群中來,從而達到逐步將老版本服務(wù)升級的目標。因為整個升級過程中,新服務(wù)已經(jīng)經(jīng)過了真實用戶的驗證,且在升級過程中都有新老兩個版本同時保障,遇到問題可以快速回退,從而有效控制了系統(tǒng)升級的風險。
[0048]在不同版本服務(wù)并存的環(huán)境中,需要不同數(shù)據(jù)結(jié)構(gòu)版本。因為不同版本的服務(wù)可以通過生產(chǎn)環(huán)境部署來解決,此時如果后臺數(shù)據(jù)也要隨之改變,在數(shù)據(jù)批量更新、同步上的壓力會非常大,而且這種復(fù)雜的環(huán)境反而增加了上線升級的風險。本實施例實現(xiàn)的數(shù)據(jù)遷移模塊,支持正反雙向的即時數(shù)據(jù)遷移。其中的第一數(shù)據(jù)遷移模塊將試點用戶的歷史數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),從老版本數(shù)據(jù)處理子系統(tǒng)的結(jié)構(gòu)形式變化為新版本數(shù)據(jù)處理子系統(tǒng)的結(jié)構(gòu)形式;第二數(shù)據(jù)遷移模塊將試點用戶的歷史數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),從新版本數(shù)據(jù)處理子系統(tǒng)的結(jié)構(gòu)形式變化為老版本數(shù)據(jù)處理子系統(tǒng)的結(jié)構(gòu)形式。通過觸點式的數(shù)據(jù)遷移方式,在試點用戶的業(yè)務(wù)請求到達后才觸發(fā)該用戶的歷史數(shù)據(jù)遷移,以單用戶的數(shù)據(jù)遷移保證遷移的工作效率,遷移成功后才能使用新版本服務(wù),保證服務(wù)正常運行。即時數(shù)據(jù)遷移裝置除支持正向的升級遷移,也支持反向的降級遷移腳本,用于試點用戶回退時數(shù)據(jù)的遷移。
[0049]如圖3所示,本發(fā)明的一種服務(wù)控制方法,包括:
[0050]接收步驟,接收用戶發(fā)送的外部業(yè)務(wù)請求;
[0051]檢測步驟,檢測是否存在新老不同版本的數(shù)據(jù)處理子系統(tǒng);
[0052]分流控制步驟,在檢測步驟檢測出存在不同版本的數(shù)據(jù)處理子系統(tǒng)時,根據(jù)預(yù)設(shè)的分流條件,將外部業(yè)務(wù)請求分流到不同版本的數(shù)據(jù)處理子系統(tǒng)中;
[0053]切換步驟,當新版本數(shù)據(jù)處理子系統(tǒng)不穩(wěn)定時,將分流到新版本數(shù)據(jù)處理子系統(tǒng)的外部業(yè)務(wù)請求從新版本的數(shù)據(jù)處理子系統(tǒng)切換到老版本的數(shù)據(jù)處理子系統(tǒng)。[0054]當然,還可以包括:
[0055]驗證步驟,跟蹤分流到新版本的用戶使用情況的數(shù)據(jù),監(jiān)控和分析新版本的數(shù)據(jù)處理子系統(tǒng)的數(shù)據(jù),及時獲取新版本的服務(wù)性能信息,進而驗證新版本的數(shù)據(jù)處理子系統(tǒng)是否穩(wěn)定。
[0056]其中預(yù)設(shè)的分流條件一方面能根據(jù)靜態(tài)試點數(shù)據(jù)和/或動態(tài)試點數(shù)據(jù)來設(shè)定,另一方面還能根據(jù)驗證步驟的驗證數(shù)據(jù)來設(shè)定分流條件。
[0057]而由于新舊版本數(shù)據(jù)處理子系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)方面的差異,還應(yīng)該設(shè)置:數(shù)據(jù)遷移步驟,在分流到新版本的試點用戶的外部業(yè)務(wù)請求被接受后,觸發(fā)該試點用戶的歷史數(shù)據(jù)從老版本遷移到新版本的數(shù)據(jù)處理子系統(tǒng)。
[0058]其中的數(shù)據(jù)遷移步驟包括雙反向的遷移,即包括:
[0059]第一數(shù)據(jù)遷移步驟,在分流到新版本數(shù)據(jù)處理子系統(tǒng)的試點用戶的外部業(yè)務(wù)請求被接受后,將該試點用戶的歷史數(shù)據(jù)從老版本數(shù)據(jù)處理子系統(tǒng)遷移到新版本數(shù)據(jù)處理子系統(tǒng);
[0060]第二數(shù)據(jù)遷移步驟,當新版本數(shù)據(jù)處理子系統(tǒng)不穩(wěn)定時,在切換步驟執(zhí)行前,將遷移到新版本數(shù)據(jù)處理子系統(tǒng)的歷史數(shù)據(jù)遷移到老版本數(shù)據(jù)處理子系統(tǒng)。
[0061]第一數(shù)據(jù)遷移步驟將試點用戶的歷史數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),從老版本數(shù)據(jù)處理子系統(tǒng)的結(jié)構(gòu)形式變化為新版本數(shù)據(jù)處理子系統(tǒng)的結(jié)構(gòu)形式。而第二數(shù)據(jù)遷移步驟將試點用戶的歷史數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu),從新版本數(shù)據(jù)處理子系統(tǒng)的結(jié)構(gòu)形式變化為老版本數(shù)據(jù)處理子系統(tǒng)的結(jié)構(gòu)形式。
[0062]如圖4所示,給出了一種服務(wù)控制方法的【具體實施方式】的流程圖,按照步驟詳細闡述如下。
[0063]步驟301:接收外部業(yè)務(wù)請求。
[0064]步驟302:判斷是否部署了新老兩套版本的服務(wù),是否需要根據(jù)業(yè)務(wù)特征將業(yè)務(wù)請求引導(dǎo)到新版本的服務(wù)集群中。若是,執(zhí)行步驟303,若否,執(zhí)行步驟311。
[0065]步驟302能執(zhí)行控制操作,在只有一套老版本的服務(wù)時,該分流控制關(guān)閉,直接調(diào)用老版本服務(wù);如果存在新老兩個版本的服務(wù)集群,遇到新版本的服務(wù)異常時,可以及時改變,快速將所有的外部服務(wù)請求都切換到老版本的服務(wù)集群上去。
[0066]步驟303:根據(jù)業(yè)務(wù)請求報文中的屬性標志,和緩存在內(nèi)存中的分流條件和數(shù)據(jù)進行比較,判斷應(yīng)該調(diào)用哪個版本的服務(wù)。
[0067]根據(jù)運營商業(yè)務(wù)的特點,新業(yè)務(wù)升級要會先受到控制,只有個別營業(yè)廳、個別前臺席才能使用,這樣,一般先配置以營業(yè)臺席的IP地址作為分流條件,從這些IP地址發(fā)送上來的業(yè)務(wù)請求才會可能被分流到新版本,這樣,其他絕大部分的臺席都仍然使用老版本。如果驗證新版本服務(wù)不穩(wěn)定,不會出現(xiàn)無法響應(yīng)請求或請求失敗等情形,影響服務(wù)效果和用戶體驗。
[0068]這里的分流條件并不是只有IP地址一種,還可以包括用戶的手機號碼、賬戶編號等關(guān)鍵信息,這些數(shù)據(jù)可以提前導(dǎo)入,這就意味著這批提前導(dǎo)入的用戶將作為試點的用戶,在業(yè)務(wù)受理、查詢等功能上 使用新版本的功能。如果沒有提前導(dǎo)入,分流條件也可以與關(guān)聯(lián)設(shè)置和/或關(guān)聯(lián)數(shù)據(jù)配合,當試點IP的臺席受理了某個用戶的業(yè)務(wù),那這個用戶自然就作為試點用戶,去驗證后續(xù)的其他功能是否正常。這種關(guān)聯(lián)設(shè)置加大了試點用戶的隨機性,避免了提前選擇試點客戶做驗證測試的片面性。實現(xiàn)分流條件的實時關(guān)聯(lián)刷新,透明引入試點用戶。如前臺功能試點的使用人員通過新功能操作過的用戶將作為試點用戶,參與驗證后續(xù)一系列查詢、計費等后臺功能,避免因目標用戶的選取出現(xiàn)偏差而導(dǎo)致功能驗證的不全面。
[0069]因為試點的分流條件和目標用戶數(shù)據(jù)都是緩存在內(nèi)存中,為了避免內(nèi)存數(shù)據(jù)太大效率低下并且可能溢出,可以設(shè)置試點目標用戶的數(shù)量,比如1000,當達到這個量值以后,后續(xù)受理的用戶就不再作為試點用戶去驗證新版本服務(wù),而是去調(diào)用老版本的服務(wù)。
[0070]此外,針對新版本服務(wù)調(diào)用的情況,如調(diào)用次數(shù)、調(diào)用成功率等等數(shù)據(jù),有專屬的驗證模塊和驗證步驟來監(jiān)控系統(tǒng)或服務(wù),獲取相關(guān)的統(tǒng)計信息,這些統(tǒng)計信息也將能構(gòu)成分流條件所需的參考數(shù)據(jù),比如,某新版服務(wù)調(diào)用連續(xù)一段時間內(nèi)失敗次數(shù)超過一定的閥值,相關(guān)的新版本服務(wù)都不再被調(diào)用;或者某個試點用戶調(diào)用服務(wù)重復(fù)失敗一定次數(shù)后,自動將該用戶從試點用戶中剔除。
[0071]步驟304:判斷是否要調(diào)用新版本的服務(wù)?如是,執(zhí)行步驟305 ;如否,執(zhí)行步驟311。
[0072]步驟305:判斷是否包含數(shù)據(jù)遷移?如是,執(zhí)行步驟306 ;如否,執(zhí)行步驟307。
[0073]有時,新版本的服務(wù)還依賴于新的數(shù)據(jù)結(jié)構(gòu),在傳統(tǒng)的版本升級工作中需要同步完成用戶數(shù)據(jù)的割接遷移。但在本方案中,因為試點用戶選擇的隨機性,所以沒有辦法做到提前遷移數(shù)據(jù),所以要配置新服務(wù)調(diào)用前的數(shù)據(jù)遷移依賴關(guān)系。必須在數(shù)據(jù)遷移完成后,才能調(diào)用新版本的服務(wù)。 [0074]步驟306:調(diào)用數(shù)據(jù)遷移服務(wù),升級單個用戶的數(shù)據(jù)。升級完成后,執(zhí)行步驟307。
[0075]步驟307:調(diào)用新版本的服務(wù)。服務(wù)調(diào)用成功,執(zhí)行步驟308。
[0076]步驟308:判斷新版本服務(wù)是否調(diào)用成功?如是,執(zhí)行步驟309 ;如否,執(zhí)行步驟313 ;
[0077]步驟309:調(diào)用關(guān)聯(lián)設(shè)置和/或關(guān)聯(lián)數(shù)據(jù)更新分流條件,刷新緩存。
[0078]開始只有試點IP地址的靜態(tài)數(shù)據(jù),在受理完成某個業(yè)務(wù)后,該用戶的數(shù)據(jù),如手機號碼、賬戶編號等動態(tài)數(shù)據(jù)也要被刷新到分流數(shù)據(jù)中。這里,一般采用內(nèi)存數(shù)據(jù)庫,如memcache技術(shù),以保證緩存更新的效率。這里是異步調(diào)用緩存刷新的服務(wù),不用等待緩存刷新結(jié)果返回,即可執(zhí)行步驟310。
[0079]當下一次該用戶訪問系統(tǒng)時(不單單是通過試點IP地址來辦理業(yè)務(wù),也可能是查詢余額、繳費等其他業(yè)務(wù)),因為該試點用戶的分流數(shù)據(jù)已經(jīng)保存在緩存中,后臺調(diào)用的都將是新版本的服務(wù)集群對應(yīng)的服務(wù)。
[0080]步驟310:應(yīng)答服務(wù)請求,告知服務(wù)調(diào)用成功。
[0081]步驟311:如果在步驟302、或者在步驟304中判斷不需要調(diào)用新服務(wù),則調(diào)用老版本服務(wù)。
[0082]步驟312:判斷老版本服務(wù)是否調(diào)用成功?如是,執(zhí)行步驟310 ;如否,執(zhí)行步驟313 ;
[0083]本發(fā)明實施例還提供一種服務(wù)系統(tǒng)的示意圖,包括:老版本生產(chǎn)子系統(tǒng),運行老版本的服務(wù);新版本生產(chǎn)子系統(tǒng),運行新版本的服務(wù);接收裝置,接收用戶發(fā)送的外部業(yè)務(wù)請求;檢測裝置,檢測是否存在新老不同版本的生產(chǎn)子系統(tǒng);分流控制裝置,在檢測模塊檢測出存在不同版本的生產(chǎn)子系統(tǒng)時,根據(jù)預(yù)設(shè)的分流條件,將外部業(yè)務(wù)請求分流到不同版本的生產(chǎn)子系統(tǒng)中;切換裝置,當新版本生產(chǎn)子系統(tǒng)不穩(wěn)定時,將分流到新版本生產(chǎn)子系統(tǒng)的外部業(yè)務(wù)請求從新版本生產(chǎn)子系統(tǒng)切換到老版本生產(chǎn)子系統(tǒng)。
[0084]在新老版本的生產(chǎn)子系統(tǒng)可以提供不同的服務(wù),老版本的生產(chǎn)子系統(tǒng)按照原有的服務(wù)模式來響應(yīng)用戶的業(yè)務(wù)請求,新版本的生產(chǎn)子系統(tǒng)按照升級后的新的服務(wù)模式來響應(yīng)用戶的業(yè)務(wù)請求,以適應(yīng)日益發(fā)展的業(yè)務(wù)需要。新老版本的生產(chǎn)子系統(tǒng)不限于包括數(shù)據(jù)處理子系統(tǒng),還可以包括多個服務(wù)提供者組成的聯(lián)合服務(wù)系統(tǒng)等。
[0085]當通過分流控制裝置將業(yè)務(wù)請求分流到某個服務(wù)提供者,其所屬的服務(wù)系統(tǒng)不穩(wěn)定時,導(dǎo)致該生產(chǎn)環(huán)境下無法提供服務(wù)時,還可以由切換裝置將用戶的業(yè)務(wù)請求切換回其他的服務(wù)提供者,從而保證了服務(wù)的連續(xù)性,提高了用戶的使用體驗感受。
[0086]該服務(wù)系統(tǒng),還可包括上述服務(wù)控制裝置實施例中的其他模塊,還可執(zhí)行上述服務(wù)控制方法實施例中的各個流程,這里不再贅述。
[0087]本發(fā)明的實施例從根本上改變了現(xiàn)有系統(tǒng)升級發(fā)布的策略(要升級全升級,要回退全回退),通過智能分流引擎隨機動態(tài)選取新版本的試點范圍,縮小了錯誤的可能的波及范圍,充分驗證新版本服務(wù)的穩(wěn)定性和可靠性后再將老版本服務(wù)逐步升級直至全部升級完成,有效降低了系統(tǒng)升級的風險。
[0088]此外,對于數(shù)據(jù)處理子系統(tǒng)或生產(chǎn)環(huán)境的數(shù)量不應(yīng)僅僅局限于實施例中所述的兩個,本發(fā)明中的升級系統(tǒng)同樣可以用于同時存在多個數(shù)據(jù)處理子系統(tǒng)或生產(chǎn)環(huán)境的情形,根據(jù)系統(tǒng)測試需求,將外部業(yè)務(wù)請求分流至多個不同版本的數(shù)據(jù)處理子系統(tǒng)或生產(chǎn)環(huán)境中,進而同時可以對多個數(shù)據(jù)處理子系統(tǒng)或生產(chǎn)環(huán)境進行測試,選取合適穩(wěn)定版本的生產(chǎn)環(huán)境,完成服務(wù)升級。
[0089]以上所述的【具體實施方式】,對本發(fā)明的目的、技術(shù)方案和有益效果進行了進一步詳細說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的【具體實施方式】而已,并不用于限定本發(fā)明的保護范圍,凡在 本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種服務(wù)控制方法,其特征在于,包括: 接收步驟,接收用戶發(fā)送的外部業(yè)務(wù)請求; 檢測步驟,檢測是否存在新老不同版本的數(shù)據(jù)處理子系統(tǒng); 分流控制步驟,在檢測步驟檢測出存在不同版本的數(shù)據(jù)處理子系統(tǒng)時,根據(jù)預(yù)設(shè)的分流條件,將外部業(yè)務(wù)請求分流到不同版本的數(shù)據(jù)處理子系統(tǒng)中; 切換步驟,當新版本數(shù)據(jù)處理子系統(tǒng)不穩(wěn)定時,將分流到新版本數(shù)據(jù)處理子系統(tǒng)的外部業(yè)務(wù)請求從新版本的數(shù)據(jù)處理子系統(tǒng)切換到老版本的數(shù)據(jù)處理子系統(tǒng)。
2.根據(jù)權(quán)利要求1所述的服務(wù)控制方法,其特征在于,還包括: 驗證步驟,跟蹤和統(tǒng)計分流到新版本數(shù)據(jù)處理子系統(tǒng)的用戶使用情況的數(shù)據(jù),監(jiān)控和分析新版本數(shù)據(jù)處理子系統(tǒng)的數(shù)據(jù),以及時獲取新版本數(shù)據(jù)處理子系統(tǒng)的服務(wù)性能信息,進而驗證新版本數(shù)據(jù)處理子系統(tǒng)是否穩(wěn)定。
3.根據(jù)權(quán)利要求1所述的服務(wù)控制方法,其特征在于,所述分流控制步驟,根據(jù)靜態(tài)試點數(shù)據(jù)和/或動態(tài)試點數(shù)據(jù)來設(shè)定分流條件。
4.根據(jù)權(quán)利要求2所述的服務(wù)控制方法,其特征在于,所述分流控制步驟,根據(jù)驗證步驟的驗證數(shù)據(jù)來設(shè)定分流條件。
5.根據(jù)權(quán)利要求1或2所述的服務(wù)控制方法,其特征在于,還包括: 第一數(shù)據(jù)遷移步驟,在分流到新版本數(shù)據(jù)處理子系統(tǒng)的用戶的外部業(yè)務(wù)請求被接受后,將用戶的歷史數(shù)據(jù)從老版本數(shù)據(jù)處理子系統(tǒng)遷移到新版本數(shù)據(jù)處理子系統(tǒng)。
6.根據(jù)權(quán)利要求5所述的服務(wù)控制方法,其特征在于,還包括: 第二數(shù)據(jù)遷移步驟,當新版本數(shù)據(jù)處理子系統(tǒng)不穩(wěn)定時,在切換步驟執(zhí)行前,將遷移到新版本數(shù)據(jù)處理子系統(tǒng)的歷史數(shù)據(jù)遷移到老版本數(shù)據(jù)處理子系統(tǒng)。
7.一種服務(wù)控制裝置,其特征在于,包括: 接收模塊,接收用戶發(fā)送的外部業(yè)務(wù)請求; 檢測模塊,與接收模塊相連,檢測是否存在新老不同版本的數(shù)據(jù)處理子系統(tǒng); 分流控制模塊,與檢測模塊相連,在檢測模塊檢測出存在不同版本的數(shù)據(jù)處理子系統(tǒng)時,根據(jù)預(yù)設(shè)的分流條件,將外部業(yè)務(wù)請求分流到不同版本的數(shù)據(jù)處理子系統(tǒng)中; 切換模塊,當新版本數(shù)據(jù)處理子系統(tǒng)不穩(wěn)定時,將分流到新版本數(shù)據(jù)處理子系統(tǒng)的外部業(yè)務(wù)請求從新版本的數(shù)據(jù)處理子系統(tǒng)切換到老版本的數(shù)據(jù)處理子系統(tǒng)。
8.根據(jù)權(quán)利要求7所述的服務(wù)控制裝置,其特征在于,還包括: 驗證模塊,與分流控制模塊相連,跟蹤和統(tǒng)計分流到新版本數(shù)據(jù)處理子系統(tǒng)的用戶使用情況的數(shù)據(jù),監(jiān)控和分析新版本數(shù)據(jù)處理子系統(tǒng)的數(shù)據(jù),以及時獲取新版本數(shù)據(jù)處理子系統(tǒng)的服務(wù)性能信息,進而驗證新版本數(shù)據(jù)處理子系統(tǒng)是否穩(wěn)定。
9.根據(jù)權(quán)利要求8所述的服務(wù)控制裝置,其特征在于:所述分流控制模塊,根據(jù)靜態(tài)試點數(shù)據(jù)和/或動態(tài)試點數(shù)據(jù)來設(shè)定分流條件。
10.根據(jù)權(quán)利要求8所述的服務(wù)控制裝置,其特征在于:所述分流控制模塊,根據(jù)驗證模塊的驗證數(shù)據(jù)來設(shè)定分流條件。
11.根據(jù)權(quán)利要求7或 8所述的服務(wù)控制裝置,其特征在于,還包括: 第一數(shù)據(jù)遷移模塊,在分流到新版本數(shù)據(jù)處理子系統(tǒng)的試點用戶的外部業(yè)務(wù)請求被接受后,將該試點用戶的歷史數(shù)據(jù)從老版本數(shù)據(jù)處理子系統(tǒng)遷移到新版本數(shù)據(jù)處理子系統(tǒng)。
12.根據(jù)權(quán)利要求11所述的服務(wù)控制裝置,其特征在于,還包括: 第二數(shù)據(jù)遷移模塊,當新版 本數(shù)據(jù)處理子系統(tǒng)不穩(wěn)定時,在切換模塊執(zhí)行切換前,將遷移到新版本數(shù)據(jù)處理子系統(tǒng)的歷史數(shù)據(jù)遷移到老版本數(shù)據(jù)處理子系統(tǒng)。
13.一種服務(wù)系統(tǒng),其特征在于,包括: 老版本生產(chǎn)子系統(tǒng),運行老版本的服務(wù); 新版本生產(chǎn)子系統(tǒng),運行新版本的服務(wù); 接收裝置,接收用戶發(fā)送的外部業(yè)務(wù)請求; 檢測裝置,檢測是否存在新老不同版本的生產(chǎn)子系統(tǒng); 分流控制裝置,在檢測模塊檢測出存在不同版本的生產(chǎn)子系統(tǒng)時,根據(jù)預(yù)設(shè)的分流條件,將外部業(yè)務(wù)請求分流到不同版本的生產(chǎn)子系統(tǒng)中; 切換裝置,當新版本生產(chǎn)子系統(tǒng)不穩(wěn)定時,將分流到新版本生產(chǎn)子系統(tǒng)的外部業(yè)務(wù)請求從新版本生產(chǎn)子系統(tǒng)切換到老版本生產(chǎn)子系統(tǒng)。
【文檔編號】H04L12/24GK103905225SQ201210574097
【公開日】2014年7月2日 申請日期:2012年12月25日 優(yōu)先權(quán)日:2012年12月25日
【發(fā)明者】吳楊凱, 蔣海濱, 申宗杰, 余建利, 張莉 申請人:中國移動通信集團浙江有限公司