天天看點

istio:灰階釋出與AB測試

灰階釋出

istio:灰階釋出與AB測試

隻讓一部分使用者繼續使用老版本,一部分使用者開始用新版本,如果使用者對新版本沒有什麼意見,那麼逐漸擴大範圍,把所有使用者都遷移到新版本上面來

優點:

保證整體系統穩定性

使用者無感覺,平滑過渡

缺點:

自動化要求高

A/B測試 

istio:灰階釋出與AB測試

灰階釋出的另一種方式,主要對特定使用者采樣後,對采集的回報資料做相關對比,然後根據對比結果做出決策。用來測試應用功能表現的方法,側重應用的可用性,受歡迎程度等,最後決定是否更新

istio實作灰階釋出

istio:灰階釋出與AB測試

 使用者的請求由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)中的配置就可以了

繼續閱讀