国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【最佳實踐】利用 OpenNJet 實現(xiàn)灰度發(fā)布

2023-07-20 16:09 作者:OpenNJet  | 我要投稿


在應用的新版本測試發(fā)布過程中,經常需要先使用部分選定的賬號進行驗證,待驗證完成后,再逐步將業(yè)務流量切換到新版本,直至所有流量均切換到新的集群。

測試賬號的檢測可以使用多種方式,如通過?Header?中字段,Cookie?中的值,或者?URL?中的參數(shù)等方式。

在之后章節(jié)的配置及場景中,將使用?HTTP Header?中的?staffid?字段做為測試賬號的判斷依據(jù),7xxxx?的賬號將被認定為測試工號。

初始靜態(tài)配置

初始配置中,將設置兩組?upstream:?backendA , backendB?,?并通過?split_clients?指令設置使用?header?中的?staffid?值做為流量配比依據(jù),并設置?100%?的流量將指向后端?backendA。

完整配置如下:

灰度發(fā)布步驟

動態(tài)添加?location

當新版本已經部署到?backendB?集群后,?通過動態(tài)?location?提供的?API?添加一個條件?location, location?中設置所有的?7xxxx?測試工號將訪問到?backendB。Njet?提供的條件表達式中,可以使用?$http_*?獲取到請求?header?中的值,?$http_staffid? ~* "7.*"?表達式將匹配所有?header?中?staffid?為?7xxxx?的請求。

使用測試工號測試

通過上一個步驟添加條件?location?后,?所有非?7xxxx?的工號將繼續(xù)訪問到集群?backendA,?所有?7xxxx?做為測試工號,將訪問到集群?backendB。

刪除表達式?location

當測試完成后,可以使用動態(tài)?API?刪除條件?location。

刪除條件?location?后,所有的流量均指向?backendA,?包括?7xxxx?的測試工號。

逐步調整分流比例直至?100%

使用模塊提供的動態(tài)配置?API,?逐步調整分流比例。

如調整到?50:50?的比例時:

最后調整到?0:100?的比例,?所有的流量將指向?backendB

這時,應用的新版本已經完成部署和切換?(A => B ),?當下一個版本發(fā)布時,可以使用相同的步驟,完成?(B => A)?的切換。?


OpenNJet 最早是基于 NGINX1.19 基礎 fork 并獨立演進,隨著 NGINX 版本迭代,吸收上游 NGINX 的更新,已經同步更新到 NGINX1.23.1 版本,OpenNJet 具有高性能、穩(wěn)定、易擴展的特點,同時也解決了 NGINX 長期存在的難于動態(tài)配置、管理功能影響業(yè)務等問題。

作為底層引擎,OpenNJet 利用動態(tài)加載機制可以實現(xiàn)不同的產品形態(tài),如 API 網(wǎng)關、消息代理、出入向代理,負載均衡,WAF 等等。在云原生架構中,OpenNJet 除了提供南北向通信網(wǎng)關的功能以外,還提供了服務網(wǎng)格中東西向通信、透明流量劫持、熔斷、遙測與故障注入等新功能特性。

傳送門:https://gitee.com/njet-rd?


【最佳實踐】利用 OpenNJet 實現(xiàn)灰度發(fā)布的評論 (共 條)

分享到微博請遵守國家法律
赤壁市| 拜泉县| 五指山市| 楚雄市| 桦南县| 横峰县| 栖霞市| 新建县| 奈曼旗| 长岛县| 石泉县| 吴川市| 婺源县| 巴塘县| 大冶市| 海林市| 柯坪县| 河池市| 定远县| 景宁| 台江县| 沂水县| 五原县| 遵义市| 梨树县| 芦山县| 化德县| 闵行区| 南部县| 青浦区| 镇赉县| 武鸣县| 枣强县| 巨野县| 墨玉县| 宁安市| 闸北区| 江源县| 东阿县| 五华县| 镇康县|