閱讀211 返回首頁    go 阿裏雲 go 技術社區[雲棲]


開放平台灰度發布分享

灰度發布

指能夠達到平滑過渡的一種發布方式。

灰度發布的目的主要有:

  • 規避一定的發布風險,降低產品迭代升級所影響的範圍。
  • 分流控製,靈活選擇用戶參與產品測試。逐步擴大用戶。
  • 快速獲取用戶的使用情況,完善產品功能,提升產品質量。

其中的要點是能夠靈活精準選取參與使用的用戶,全麵準確的獲取灰度用戶使用情況信息,分析、總結、完善;達到降低發布風險、減少bug帶來的影響。

上線流程是怎樣的?

環境.jpg

一段時期內,灰度環境與正式環境並行處理用戶請求。可以認為是同層級的環境,灰度範圍根據使用情況,逐步增加用戶使用比率,最終完全替代老的係統或功能。

用戶請求處理流程

請求流程圖.jpg

靈活的用戶篩選策略,用戶請求無感知。

開放平台的實現

開放平台的灰度發布實現是在接口層麵的,可以是單個接口,也可以是整個業務服務(一批接口)。

arc1.jpg

這個圖隻是抽取灰度相關的一些點;

網關時序圖

分流時序圖.jpg

分流流程圖

分流流程圖.jpg

百分比和參數對是邏輯判斷的核心;百分比計算需要記錄正常環境和灰度環境的處理量,計數功能類主要使用了LongAdder類,提高大並發下的效率。

特點

  • 配置中心一鍵開/關灰度功能
  • 動態設置分流策略,及時生效,不需要重啟服務
  • 支持按參數分流、按百分比分流、兩種同時使用
  • 參數對可以配置多個,關係為“與”;參數值可以設置多個,以逗號分隔,關係為“或”,可以設置模煳匹配,以“*”表示,“*”隻能放在開頭或者結尾
  • 適用於灰度發布、AB測試、和負載均衡
  • 支持以服務分組級別的灰度(利用分流策略篩選用戶,不是真正意義上的灰度發布)

灰度策略管理

grays.png

API灰度策略設定

apiGrays.png

統計分析報表

tongji.png

其他

  • 如何精確的篩選用戶?

公共請求參數有appKey、IP、clientId(設備ID號),
業務請求參數由接口自定義控製,可根據實際的業務需求,配合使用接口所有參數,來達到用戶篩選。

最後更新:2017-07-05 14:03:01

  上一篇:go  使用Markdown編輯器
  下一篇:go  網關平台架構分享