婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 使用nginx模擬進行金絲雀發布的方式

使用nginx模擬進行金絲雀發布的方式

熱門標簽:廈門營銷外呼系統平臺 涪陵商都400電話開通辦理 外呼系統的經營范圍 外呼系統不彈窗 申請400電話價格多少 云會外呼系統 智能電話機器人坐席 安陽ai電銷機器人軟件 柳州市機器人外呼系統報價

這篇文章介紹一下藍綠部署以及使用nginx如何最簡單地模擬一下金絲雀發布的方式

金絲雀發布/灰度發布

金絲雀發布的重點在于:試錯。金絲雀發布的來歷本身就是自然界的美麗生物在人類工業發展過程中的一個悲慘的故事。金絲雀就是用它的生命來為礦工的安全來試錯的。用很小的成本來換取整體的安全,在持續部署的實踐中,金絲雀就是流量控制,用很少的流量比如百分之一或者十分之一用于檢證某個版本是否正常,如果不正常則就用最低的成本實現了其作用,降低了風險。如果正常,則可以逐漸加大權重直至百分之百,將所有的流量都平穩地切換至新的版本。灰度發布,一般來說也是類似的概念。灰色是介于黑和白之前的一個過渡,區別于藍綠部署的非藍即綠,灰度發布/金絲雀發布會有一個兩者同時存在的時間段,只是兩者對應的流量不同,金絲雀發布如果說和灰度發布有所不同的話,其不同點應該是目的性的不同,金絲雀發布目的在于試錯,而灰度發布在于平穩發布,而在金絲雀發布沒有問題的狀況下進行的平穩過渡則正是灰度發布。

模擬金絲雀發布

接下來我們使用nginx的upstream來簡單模擬一下金絲雀發布的場景。具體場景如下, 當前活躍的是主版本,通過調整nginx設定,通過不斷的調節金絲雀版本的權重,最終實現平穩地發布。

事前準備

事前在7001/7002兩個端口分別啟動兩個服務,用于顯示不同信息,為了演示方便,使用tornado做了一個鏡像,通過docker容器啟動時傳遞的參數不同用于顯示服務的不同。

docker run -d -p 7001:8080 liumiaocn/tornado:latest python /usr/local/bin/daemon.py "Hello main service: v1 in 7001"
docker run -d -p 7002:8080 liumiaocn/tornado:latest python /usr/local/bin/daemon.py "Hello canary deploy service: v2 in 7002"

執行日志

[root@kong ~]# docker run -d -p 7001:8080 liumiaocn/tornado:latest python /usr/local/bin/daemon.py "Hello main service: v1 in 7001"
28f42bbd21146c520b05ff2226514e62445b4cdd5d82f372b3791fdd47cd602a
[root@kong ~]# docker run -d -p 7002:8080 liumiaocn/tornado:latest python /usr/local/bin/daemon.py "Hello canary deploy service: v2 in 7002"
b86c4b83048d782fadc3edbacc19b73af20dc87f5f4cf37cf348d17c45f0215d
[root@kong ~]# curl http://192.168.163.117:7001
Hello, Service :Hello main service: v1 in 7001
[root@kong ~]# curl http://192.168.163.117:7002
Hello, Service :Hello canary deploy service: v2 in 7002
[root@kong ~]#

啟動nginx

[root@kong ~]# docker run -p 9080:80 --name nginx-canary -d nginx
659f15c4d006df6fcd1fab1efe39e25a85c31f3cab1cda67838ddd282669195c
[root@kong ~]# docker ps |grep nginx-canary
659f15c4d006    nginx           "nginx -g 'daemon ..."  7 seconds ago    Up 7 seconds    0.0.0.0:9080->80/tcp   nginx-canary
[root@kong ~]#

nginx代碼段

準備如下nginx代碼段將其添加到nginx的/etc/nginx/conf.d/default.conf中, 模擬方式很簡單,通過down來表示流量為零(nginx中無法將weight設置為零),開始的時候100%的流量都發到主版本。

http {
upstream nginx_canary {
  server 192.168.163.117:7001 weight=100;
  server 192.168.163.117:7002 down;
}
server {
  listen    80;
  server_name www.liumiao.cn 192.168.163.117;
  location / {
    proxy_pass http://nginx_canary;
  }
}

修改default.conf的方法

可以通過在容器中安裝vim達到效果,也可以在本地修改然后通過docker cp傳入,或者直接sed修改都可。如果在容器中安裝vim,使用如下方式即可

[root@kong ~]# docker exec -it nginx-lb sh
# apt-get update
...省略
# apt-get install vim
...省略

修改前

# cat default.conf
server {
  listen    80;
  server_name localhost;
  #charset koi8-r;
  #access_log /var/log/nginx/host.access.log main;
  location / {
    root  /usr/share/nginx/html;
    index index.html index.htm;
  }
  #error_page 404       /404.html;
  # redirect server error pages to the static page /50x.html
  #
  error_page  500 502 503 504 /50x.html;
  location = /50x.html {
    root  /usr/share/nginx/html;
  }
  # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  #
  #location ~ \.php$ {
  #  proxy_pass  http://127.0.0.1;
  #}
  # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  #
  #location ~ \.php$ {
  #  root      html;
  #  fastcgi_pass  127.0.0.1:9000;
  #  fastcgi_index index.php;
  #  fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
  #  include    fastcgi_params;
  #}
  # deny access to .htaccess files, if Apache's document root
  # concurs with nginx's one
  #
  #location ~ /\.ht {
  #  deny all;
  #}
}
#

修改后

# cat default.conf
upstream nginx_canary {
  server 192.168.163.117:7001 weight=100;
  server 192.168.163.117:7002 down;
}
server {
  listen    80;
  server_name www.liumiao.cn 192.168.163.117;
  #charset koi8-r;
  #access_log /var/log/nginx/host.access.log main;
  location / {
    #root  /usr/share/nginx/html;
    #index index.html index.htm;
    proxy_pass http://nginx_canary;
  }
  #error_page 404       /404.html;
  # redirect server error pages to the static page /50x.html
  #
  error_page  500 502 503 504 /50x.html;
  location = /50x.html {
    root  /usr/share/nginx/html;
  }
  # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  #
  #location ~ \.php$ {
  #  proxy_pass  http://127.0.0.1;
  #}
  # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  #
  #location ~ \.php$ {
  #  root      html;
  #  fastcgi_pass  127.0.0.1:9000;
  #  fastcgi_index index.php;
  #  fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
  #  include    fastcgi_params;
  #}
  # deny access to .htaccess files, if Apache's document root
  # concurs with nginx's one
  #
  #location ~ /\.ht {
  #  deny all;
  #}
}
#

重新加載nginx設定

# nginx -s reload
2018/05/28 05:16:20 [notice] 319#319: signal process started
#

確認結果

10次調用全部輸出的都是v1 in 7001

[root@kong ~]# cnt=0; while [ $cnt -lt 10 ]; do curl http://localhost:9080; let cnt++; done
Hello, Service :Hello main service: v1 in 7001
Hello, Service :Hello main service: v1 in 7001
Hello, Service :Hello main service: v1 in 7001
Hello, Service :Hello main service: v1 in 7001
Hello, Service :Hello main service: v1 in 7001
Hello, Service :Hello main service: v1 in 7001
Hello, Service :Hello main service: v1 in 7001
Hello, Service :Hello main service: v1 in 7001
Hello, Service :Hello main service: v1 in 7001
Hello, Service :Hello main service: v1 in 7001
[root@kong ~]#

金絲雀發布: 金絲雀版本流量權重10%

通過調整default.conf的weight,然后執行nginx -s reload的方式,調節金絲雀版本的權重為10%,流量的10%會執行新的服務

修改default.conf的方法

只需要將upstream中的server的權重做如下調整:

upstream nginx_canary {
  server 192.168.163.117:7001 weight=10;
  server 192.168.163.117:7002 weight=90;
}

重新加載nginx設定

# nginx -s reload
2018/05/28 05:20:14 [notice] 330#330: signal process started
#

確認結果

[root@kong ~]# cnt=0; while [ $cnt -lt 10 ]; do curl http://localhost:9080; let cnt++; done
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello main service: v1 in 7001
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
[root@kong ~]#

金絲雀發布: 金絲雀版本流量權重50%

通過調整default.conf的weight,然后執行nginx -s reload的方式,調節金絲雀版本的權重為50%,流量的50%會執行新的服務

修改default.conf的方法

只需要將upstream中的server的權重做如下調整:

upstream nginx_canary {
  server 192.168.163.117:7001 weight=50;
  server 192.168.163.117:7002 weight=50;
}

重新加載nginx設定

# nginx -s reload
2018/05/28 05:22:26 [notice] 339#339: signal process started
#

確認結果

[root@kong ~]# cnt=0; while [ $cnt -lt 10 ]; do curl http://localhost:9080; let cnt++; done
Hello, Service :Hello main service: v1 in 7001
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello main service: v1 in 7001
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello main service: v1 in 7001
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello main service: v1 in 7001
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello main service: v1 in 7001
Hello, Service :Hello canary deploy service: v2 in 7002
[root@kong ~]#

金絲雀發布: 金絲雀版本流量權重90%

通過調整default.conf的weight,然后執行nginx -s reload的方式,調節金絲雀版本的權重為90%,流量的90%會執行新的服務

修改default.conf的方法

只需要將upstream中的server的權重做如下調整:

upstream nginx_canary {
  server 192.168.163.117:7001 weight=10;
  server 192.168.163.117:7002 weight=90;
}

重新加載nginx設定

# nginx -s reload
2018/05/28 05:24:29 [notice] 346#346: signal process started
#

確認結果

[root@kong ~]# cnt=0; while [ $cnt -lt 10 ]; do curl http://localhost:9080; let cnt++; done
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello main service: v1 in 7001
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
[root@kong ~]#

金絲雀發布: 金絲雀版本流量權重100%

通過調整default.conf的weight,然后執行nginx -s reload的方式,調節金絲雀版本的權重為100%,流量的100%會執行新的服務

修改default.conf的方法

只需要將upstream中的server的權重做如下調整:

upstream nginx_canary {
  server 192.168.163.117:7001 down;
  server 192.168.163.117:7002 weight=100;
}

重新加載nginx設定

# nginx -s reload
2018/05/28 05:26:37 [notice] 353#353: signal process started

確認結果

[root@kong ~]# cnt=0; while [ $cnt -lt 10 ]; do curl http://localhost:9080; let cnt++; done
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
Hello, Service :Hello canary deploy service: v2 in 7002
[root@kong ~]#

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

標簽:綏化 撫順 巴中 蕪湖 福州 孝感 南充 晉城

巨人網絡通訊聲明:本文標題《使用nginx模擬進行金絲雀發布的方式》,本文關鍵詞  使用,nginx,模擬,進行,金絲雀,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用nginx模擬進行金絲雀發布的方式》相關的同類信息!
  • 本頁收集關于使用nginx模擬進行金絲雀發布的方式的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美日韩在线播| 91污片在线观看| 色哟哟精品一区| 欧美精选在线播放| 中文字幕 久热精品 视频在线| 久久午夜色播影院免费高清| 国产精品卡一卡二| 国内一区二区在线| 717成人午夜免费福利电影| 久久精品这里都是精品| 日韩精品成人一区二区三区| a美女胸又www黄视频久久| 不卡的av中国片| 欧美大片顶级少妇| 亚洲大片免费看| 中文字幕在线一区| 精品一区二区免费在线观看| 欧美一区二区三区日韩| 亚洲电影中文字幕在线观看| 高清在线成人网| 欧美一区二区三区四区久久| 亚洲欧美激情插| 成人免费视频一区| 久久久久久97三级| 久久精品国产77777蜜臀| 欧美久久婷婷综合色| 亚洲欧美另类久久久精品2019 | 欧美一区二区三级| 亚洲成av人片一区二区三区| 欧美色手机在线观看| 丁香六月久久综合狠狠色| 99精品热视频| 国产真实乱偷精品视频免| 亚洲免费在线看| 免费在线看成人av| 色综合久久综合网欧美综合网| 成人av网址在线| 国产精品久久久久国产精品日日 | 国产精品每日更新| 成人午夜电影网站| 亚洲女与黑人做爰| 日本黄色一区二区| 久久嫩草精品久久久久| 一区二区高清免费观看影视大全| 黄色日韩网站视频| 日本一区二区高清| 福利电影一区二区| 亚洲免费资源在线播放| 欧美系列一区二区| 污片在线观看一区二区| 欧美精三区欧美精三区| 午夜一区二区三区在线观看| 成人福利在线看| 亚洲制服丝袜av| 在线观看一区日韩| 亚洲国产中文字幕| 欧美精品一区二区三区在线| 国产精品久久一级| 91国产丝袜在线播放| 天堂va蜜桃一区二区三区| 欧美一区二区三区白人| 国产不卡在线播放| 亚洲午夜激情网页| 欧美大片免费久久精品三p| 99精品欧美一区| 亚洲国产精品ⅴa在线观看| 不卡高清视频专区| 久久草av在线| 一区二区三区高清在线| 精品成人一区二区三区| 成人av在线资源网站| 日韩精品电影在线| 18欧美亚洲精品| 精品国一区二区三区| 一本色道亚洲精品aⅴ| 三级不卡在线观看| 亚洲激情综合网| 久久精品人人做人人综合| 欧洲国内综合视频| 丁香一区二区三区| 国产一区二区三区精品视频| 亚洲123区在线观看| 欧美韩国一区二区| 久久嫩草精品久久久精品| 欧美精品九九99久久| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 自拍av一区二区三区| 精品av综合导航| 欧美大片在线观看一区| 欧美欧美午夜aⅴ在线观看| 99国产精品国产精品久久| 国产精品一线二线三线| 亚洲福利视频一区| 亚洲第一在线综合网站| 99视频精品在线| 懂色av一区二区三区免费看| 麻豆成人综合网| 天天综合网天天综合色| 亚洲成人资源网| 一区二区三区加勒比av| 亚洲精品中文字幕乱码三区| 中文成人av在线| 国产精品伦理在线| 亚洲国产精品成人综合色在线婷婷| 精品日韩在线观看| 2020日本不卡一区二区视频| 精品国产百合女同互慰| 精品捆绑美女sm三区| 久久蜜桃av一区精品变态类天堂| 欧美va亚洲va| 亚洲精品一区二区三区在线观看| 欧美成人福利视频| 2023国产精品| 国产成人小视频| 成人av午夜电影| 91网站最新网址| 欧日韩精品视频| 欧美一区二区私人影院日本| 精品黑人一区二区三区久久| 欧美激情综合在线| 亚洲免费毛片网站| 视频一区在线播放| 蜜臀91精品一区二区三区| 国产一区999| 91亚洲资源网| 欧美久久久久中文字幕| 91精选在线观看| 中文字幕av一区二区三区高| 亚洲蜜桃精久久久久久久| 亚洲第一在线综合网站| 国产综合久久久久久久久久久久| 国产一区二区三区四区五区美女| 日本不卡一区二区| 国产一区二区三区视频在线播放| 91农村精品一区二区在线| 91精品办公室少妇高潮对白| 欧美日韩精品一区二区三区蜜桃 | 美国毛片一区二区| 成人性生交大片免费看中文网站| 99精品久久99久久久久| 91精品国产91久久久久久最新毛片| 久久亚洲综合色一区二区三区| 亚洲另类中文字| 成人免费毛片片v| 欧美精品自拍偷拍| 亚洲欧美日韩一区| 亚洲成人一区在线| 色一区在线观看| 日韩欧美视频一区| 一区二区免费在线| 国产精品一二三| 日韩一区二区精品在线观看| 国产精品久99| 激情伊人五月天久久综合| 欧美精品v日韩精品v韩国精品v| 日韩一区二区三区在线| 中文字幕日韩一区| 成人av在线播放网址| 国产亚洲综合av| 国产成人丝袜美腿| 欧美精品一区二区三区四区| 午夜精品免费在线| 色综合色狠狠天天综合色| 精品免费一区二区三区| 亚洲国产成人tv| 精品视频在线看| 一区二区三区欧美亚洲| 成人小视频免费观看| 国产精品午夜在线观看| 韩国精品一区二区| 2欧美一区二区三区在线观看视频| 日韩高清不卡一区二区三区| 欧美精品视频www在线观看| 亚洲一区二区三区在线| 欧美日韩一卡二卡三卡 | 国产成人午夜精品影院观看视频| 91精品欧美福利在线观看| 亚洲高清不卡在线观看| 欧美一级在线观看| 蜜芽一区二区三区| 欧美videos中文字幕| 亚洲一级电影视频| 欧美在线免费视屏| 亚洲国产精品一区二区久久恐怖片 | 九九精品视频在线看| 欧美大白屁股肥臀xxxxxx| 精品在线免费视频| 国产丝袜美腿一区二区三区| 久久99久久精品欧美| 国产精品欧美精品| 色哟哟一区二区| 婷婷国产在线综合| 精品国产一区a| 色综合视频一区二区三区高清| 伊人夜夜躁av伊人久久| 色哟哟精品一区| 美女视频黄免费的久久 | 国产成人精品亚洲日本在线桃色| 欧美日韩色一区| 久久成人免费电影|