陳燕妮
摘要:該文對ERP系統的灰度發(fā)布方案進行闡述,由原傳統方式的一次性發(fā)布、不允許試錯的升級模式逐漸轉為灰度發(fā)布,并且做到7*24小時不中斷服務,提供用戶更好的使用體驗。
關鍵詞:灰度發(fā)布;ERP系統
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2018)17-0138-02
系統的灰度發(fā)布就是指一個全新的改版系統在還沒有正式發(fā)布之前先進行小范圍用戶的發(fā)布,分析總結問題以及需要改進的地方,加以完善后再全面進行用戶推廣的一種發(fā)布形式?;叶劝l(fā)布系統的作用在于,可以根據自己的配置,將用戶的流量導到新上線的系統上,快速驗證新功能的上線效果,而一旦出問題,也可以馬上的恢復。
1 概述
1.1 系統現狀
目前ERP系統采用傳統的發(fā)布方式,每次發(fā)布新功能時,需要停止服務才能發(fā)布新版本,發(fā)布成功后再收集新版本的應用情況,在下次發(fā)布中進行優(yōu)化。此流程使得用戶體驗差,不適合快速變化的業(yè)務需求。
1.2 建設目標
參考互聯網程序7*24不間斷服務,提供用戶更好的體驗,新舊版本切割無縫銜接。
1) 將ERP系統實行灰度發(fā)布,做到7*24小時不中斷,無縫升級,縮小新功能上線或重大流程改造升級所影響的用戶范圍,全面提升用戶感知。
2) 通過灰度發(fā)布,嘗試新功能點,及時獲取用戶使用的反饋信息,完善產品功能,提升產品質量。
3) 實現迭代開發(fā),快速更替版本。讓系統迭代升級遵循“IT人員內部測試->外部小范圍用戶測試>外部大范圍用戶測試->全網用戶正式發(fā)布”的發(fā)布過程,涉及的用戶數也是逐步放量的過程,讓新功能發(fā)布實現平滑過渡。
2 總體說明
2.1 傳統軟件發(fā)布
傳統軟件開發(fā)流程通過需求分析后,交由研發(fā)人員進行開發(fā),開發(fā)完成后由測試人員進行內部測試,測試通過后合并版本號。測試無誤則在正式環(huán)境發(fā)布版本。發(fā)布過程需要停止服務,用戶感知下降。如果用戶發(fā)布過程中存在測試階段未能發(fā)現的問題,并且短期內不能問題修復,對用戶感知帶來較大影響,并只能進行版本回退。
2.2 灰度發(fā)布
應用系統的灰度發(fā)布指的是,新系統發(fā)布時不直接廢止舊的系統,而是有一段新舊系統的共存時間。通過逐漸增加新系統承擔的用戶負載權重,直到完全替代舊的系統。這樣的好處在于避免因為新系統存在功能異?;蛘咴O計上的不合理導致的服務完全中斷,通過漸進式觀測新系統替代舊系統的效果,達到平緩升級的目的,即為:在一段時間內,通過流量源頭的開關控制,動態(tài)調整新舊系統承擔的負載。一旦出現問題那么可以很快地控制影響面而不中斷服務。
3 ERP系統灰度發(fā)布方案
3.1 ERP系統灰度發(fā)布概述:
ERP灰度發(fā)布系統的大致架構,如下圖所示:
主要有以下幾個部分:
1) 接入層,接入客戶端請求,根據下發(fā)的分發(fā)策略配置將符合條件的用戶請求轉發(fā)到新舊系統上。
2) 配置管理后臺,以配置不同的分發(fā)規(guī)則策略給接入層。
3) 新舊兩套生產服務器,分別部署的新版本程序和舊版本程序,分別處理客戶端請求。
3.2 ERP系統灰度發(fā)布具體方案
3.2.1 灰度發(fā)布的集群
準備好要發(fā)布的2套生產環(huán)境,包括一套灰度發(fā)布環(huán)境、一套正式環(huán)境,根據發(fā)布軟件的需要,還可以設置多套隔離的線上發(fā)布環(huán)境。不同的服務集群可以針對不同分組的用戶,并且這些集群可以分方便的橫向擴展,在灰度發(fā)布的過程中,可以動態(tài)增加訪問的用戶數,以便達到更全面的測試。
3.2.2 接入層
接入層(中轉代理服務器)針對不同用戶轉發(fā)到不同的生產集群環(huán)境中。原始負載均衡主要是為了平衡各應用服務器的壓力,將訪問的用戶通過預先制定的規(guī)則進行分流。而為了滿足灰度發(fā)布,在原始負載均衡上必須新建一套分流規(guī)則,需要將用戶群再次進行區(qū)分,即在原來的負載均衡的策略上增加一層灰度發(fā)布的分流規(guī)則。
接入層采用nginx,可以基于cookie的方式進行分流。用戶分發(fā)規(guī)則配在數據庫中,因此調整灰度的范圍,只需要操作數據庫即可,無需重啟服務。nginx匹配特定Cookie做轉發(fā):在登陸時,如果用戶在名單中則給用戶set特定標識的Cookie;退出或Session過期后Cookie失效。
3.2.3 灰度發(fā)布規(guī)則制定
篩選用戶:根據具體的產品特點,選好要小范圍發(fā)布的用戶特點以及用戶數量,可以是幾十、幾百或上千人,可以是自己的VIP用戶,也可以是普通的隨機用戶等。ERP系統是按照用戶的區(qū)域歸屬、用戶級別(VIP用戶、普通用戶)等維度劃分確定用戶范圍,按照不同的用戶特性,分發(fā)給不同的生產集群環(huán)境,內部體驗用戶分發(fā)給灰度發(fā)布集群環(huán)境,使用新版本;其他用戶仍分發(fā)給生產集群環(huán)境;或手動導入:管理人員可以導入指定用戶群,將其路由至指定的生產發(fā)布環(huán)境。
通過以上用戶群生成分發(fā)規(guī)則,并生成具體的分發(fā)的用戶明細,將此分發(fā)用戶的明細同步到數據庫中,完成灰度發(fā)布規(guī)則的制定。
3.2.4 用戶分流
通過接入層(中轉代理服務器)將用戶請求轉發(fā)到后端服務器,在轉發(fā)過程中通過管理員制定的分發(fā)規(guī)則將用戶分發(fā)到不同的生產服務器。中轉代理服務器根據配置查找后臺對應的數據源。當訪問者訪問登錄系統或訪問新增功能菜單時,根據用戶分流控制層配置的分流規(guī)則判斷用戶身份是否為“內測用戶或體驗者”,如果是,跳轉至新系統(灰度環(huán)境服務器);如果不是,跳轉至舊系統應用環(huán)境。
實現的用戶分流效果為:對本次新版本(需要灰度發(fā)布的)功能先開放給內部人員試用,先進行內部測試,如果測試不通過則做版本修復,修復完成后再繼續(xù)測試。內部測試通過后,將功能開放給指定的試點用戶繼續(xù)試運營,試運營期間,收集用戶反饋,對功能進行優(yōu)化、修復。試點完成后,將新功能開放給全網用戶使用。
通過多用戶、多群體的用戶測試,收集測試用戶的反饋信息,進行及時的版本問題更新,加快版本的迭代開發(fā),提高版本質量,使用戶認可度高、客戶感知好。
3.2.5 相關的程序調整
ERP 系統特點為企業(yè)辦公管理系統,涉及業(yè)務流程審批。在灰度發(fā)布過程中,需考慮端到端流程運營效果和在途單處理,總體策略是以頭帶尾,將涉及該流程的所有用戶切換到灰度環(huán)境,避免流程單據在新舊系統中不兼容出現問題。具體情況有:
若涉及流程及表單調整,用戶在灰度環(huán)境發(fā)起流程,審批環(huán)節(jié)涉及的用戶均切換為灰度環(huán)境;升級前用戶在老系統發(fā)起的流程在途單,將該流程的在途單涉及的所有用戶均切換到灰度環(huán)境。
若涉及新增流程,用戶在灰度環(huán)境發(fā)起的流程,審批環(huán)節(jié)涉及的用戶均切換為灰度環(huán)境。
4 結束語
一個產品,如果需要快速迭代開發(fā)上線,又要保證剛上線系統的運營質量,能夠在出現問題時很快地控制影響面,就需要設計一套灰度發(fā)布系統。ERP系統灰度發(fā)布的使用,能夠嘗試新功能,允許大膽創(chuàng)新、試錯,會提高用戶感知。同時隨著通信行業(yè)向互聯網企業(yè)轉型發(fā)展的迫切需要,如何進一步優(yōu)化和改善IT系統,以快速適應業(yè)務需求和變化,還需要不斷深入探索并持續(xù)提高客戶感知。