灰階釋出

隻讓一部分使用者繼續使用老版本,一部分使用者開始用新版本,如果使用者對新版本沒有什麼意見,那麼逐漸擴大範圍,把所有使用者都遷移到新版本上面來
優點:
保證整體系統穩定性
使用者無感覺,平滑過渡
缺點:
自動化要求高
A/B測試
灰階釋出的另一種方式,主要對特定使用者采樣後,對采集的回報資料做相關對比,然後根據對比結果做出決策。用來測試應用功能表現的方法,側重應用的可用性,受歡迎程度等,最後決定是否更新
istio實作灰階釋出
使用者的請求由gateway轉發到虛拟服務(virtual service)中,在虛拟服務中定義了版本的權重和目标規則(destination rule),找到指定的目标規則後,通過k8s中标簽找到指定的pod,實作不同權重的服務轉發
istio實作AB測試
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: reviews
spec:
hosts:
- reviews
http:
- match:
- headers:
end-user:
exact: jason #指定使用者jason登入為v2版本,其他使用者登入為v1版本
route:
- destination:
host: reviews
subset: v2
- route:
- destination:
host: reviews
subset: v3
AB測試的配置方法其實很簡單,隻要修改虛拟服務(virtual Service)中的配置就可以了
istio實作流量複制
将請求複制一份,并根據政策來處理這個請求,不會影響真是請求
應用場景:
線上問題排查
用真實的流量驗證應用功能是否正常
對鏡像環境壓力測試
收集真實流量資料進行分析
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: nginx
spec:
hosts:
- "*"
gateways:
- nginx
http:
- route:
- destination:
host: nginx
subset: v1
weight: 100
#複制v1的流量到v2
mirror:
host: nginx
subset: v2
mirror_percent: 100
同樣要修改虛拟服務(virtual Service)中的配置就可以了