【原創】Spring-Cloud快速入門(三)灰度/AB測試--轉載請註明出處

注:相關代碼可以查看以下git項目:

框架包:https://gitee.com/zhouzhongzhi/framework-base.git

一、灰度發佈介紹

1.什麼是灰度測試?

灰度測試,又名AB測試,就是指在同一環境下,根據某種特殊的規則,來實現不同的用戶訪問到不同的內容的效果。一般可以用於在正式發佈前,進行小範圍線上測試,或者用於在測試環境中,根據規則來實現一套環境中,可以跑多個版本,卻不互相影響的目的。

2.灰度發佈的優勢

測試有區別於普通的預演環境測試,預演環境可能具有較大的數據量,較好的服務器,但是,預演服務器的環境終究與線上服務器是不完全相同的,例如,線上可能有千萬級別的真實數據,但是預演環境可能只有百萬級別的腳本寫入的虛擬數據。可能線上的服務器有100臺,但是預演環境只有10臺。而使用灰度發佈則是使用線上的服務器進行處理,進行數據庫操作時,使用的也是線上數據庫,因此可以進行最明確的瞭解新版本在線上的情況。

除此以外,灰度發佈,還可以讓正式上線的流程做到完全無感知,平時在服務進行發佈時,會因爲註冊中心的緩存,導致無法及時下線服務,因此還會有請求訪問已經停止的服務中,而灰度發佈,則可以避免這種情況,可以先將要停止的服務的訪問屏蔽,然後再進行服務停止。

二、灰度流程詳解

在進行灰度服務選擇時,灰度的服務基本規則邏輯是在每個調用方進行處理的,但是具體選擇服務所需要的規則的配置數據,則是由前端、配置文件、灰度服務器所連接的數據庫,三個地方獲取到的。在獲取到這些灰度服務的配置,再根據內置的服務規則邏輯來對獲取到的註冊中心中的服務進行篩選,這樣就可以做到灰度測試的效果。

下方的圖即爲我之前工作的公司中,在前端進行灰度配置的頁面:

在這個頁面中,可以通過開發1,開發2,client等,來配置不同的請求頭信息,通過不同的請求頭,就可以在一套服務中,同時對多個版本進行部署測試。當然,這個只是前端配置請求頭的效果,在實際引用中,甚至還可以通過後端數據庫配置特殊用戶信息的方式,來實現灰度的目的。

三、使用SpringCloud進行灰度發佈代碼開發

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章