最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ā)布的評論 (共 條)

分享到微博請遵守國家法律
鲜城| 棋牌| 瑞安市| 什邡市| 颍上县| 中方县| 克山县| 托克托县| 沭阳县| 梨树县| 新乡县| 文成县| 东港市| 友谊县| 永清县| 怀远县| 高清| 青岛市| 石林| 古蔺县| 石嘴山市| 兴山县| 微博| 沽源县| 东城区| 岱山县| 闻喜县| 长白| 宁陵县| 内丘县| 平凉市| 平邑县| 蒙自县| 木兰县| 蒙山县| 祁连县| 武平县| 仙游县| 浦北县| 纳雍县| 双江|