亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁(yè) > 知識(shí)庫(kù) > 使用nginx模擬進(jìn)行金絲雀發(fā)布的方式

使用nginx模擬進(jìn)行金絲雀發(fā)布的方式

熱門(mén)標(biāo)簽:廈門(mén)營(yíng)銷(xiāo)外呼系統(tǒng)平臺(tái) 涪陵商都400電話開(kāi)通辦理 外呼系統(tǒng)的經(jīng)營(yíng)范圍 外呼系統(tǒng)不彈窗 申請(qǐng)400電話價(jià)格多少 云會(huì)外呼系統(tǒng) 智能電話機(jī)器人坐席 安陽(yáng)ai電銷(xiāo)機(jī)器人軟件 柳州市機(jī)器人外呼系統(tǒng)報(bào)價(jià)

這篇文章介紹一下藍(lán)綠部署以及使用nginx如何最簡(jiǎn)單地模擬一下金絲雀發(fā)布的方式

金絲雀發(fā)布/灰度發(fā)布

金絲雀發(fā)布的重點(diǎn)在于:試錯(cuò)。金絲雀發(fā)布的來(lái)歷本身就是自然界的美麗生物在人類(lèi)工業(yè)發(fā)展過(guò)程中的一個(gè)悲慘的故事。金絲雀就是用它的生命來(lái)為礦工的安全來(lái)試錯(cuò)的。用很小的成本來(lái)?yè)Q取整體的安全,在持續(xù)部署的實(shí)踐中,金絲雀就是流量控制,用很少的流量比如百分之一或者十分之一用于檢證某個(gè)版本是否正常,如果不正常則就用最低的成本實(shí)現(xiàn)了其作用,降低了風(fēng)險(xiǎn)。如果正常,則可以逐漸加大權(quán)重直至百分之百,將所有的流量都平穩(wěn)地切換至新的版本。灰度發(fā)布,一般來(lái)說(shuō)也是類(lèi)似的概念。灰色是介于黑和白之前的一個(gè)過(guò)渡,區(qū)別于藍(lán)綠部署的非藍(lán)即綠,灰度發(fā)布/金絲雀發(fā)布會(huì)有一個(gè)兩者同時(shí)存在的時(shí)間段,只是兩者對(duì)應(yīng)的流量不同,金絲雀發(fā)布如果說(shuō)和灰度發(fā)布有所不同的話,其不同點(diǎn)應(yīng)該是目的性的不同,金絲雀發(fā)布目的在于試錯(cuò),而灰度發(fā)布在于平穩(wěn)發(fā)布,而在金絲雀發(fā)布沒(méi)有問(wèn)題的狀況下進(jìn)行的平穩(wěn)過(guò)渡則正是灰度發(fā)布。

模擬金絲雀發(fā)布

接下來(lái)我們使用nginx的upstream來(lái)簡(jiǎn)單模擬一下金絲雀發(fā)布的場(chǎng)景。具體場(chǎng)景如下, 當(dāng)前活躍的是主版本,通過(guò)調(diào)整nginx設(shè)定,通過(guò)不斷的調(diào)節(jié)金絲雀版本的權(quán)重,最終實(shí)現(xiàn)平穩(wěn)地發(fā)布。

事前準(zhǔn)備

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

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"

執(zhí)行日志

[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 ~]#

啟動(dòng)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代碼段

準(zhǔn)備如下nginx代碼段將其添加到nginx的/etc/nginx/conf.d/default.conf中, 模擬方式很簡(jiǎn)單,通過(guò)down來(lái)表示流量為零(nginx中無(wú)法將weight設(shè)置為零),開(kāi)始的時(shí)候100%的流量都發(fā)到主版本。

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的方法

可以通過(guò)在容器中安裝vim達(dá)到效果,也可以在本地修改然后通過(guò)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設(shè)定

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

確認(rèn)結(jié)果

10次調(diào)用全部輸出的都是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 ~]#

金絲雀發(fā)布: 金絲雀版本流量權(quán)重10%

通過(guò)調(diào)整default.conf的weight,然后執(zhí)行nginx -s reload的方式,調(diào)節(jié)金絲雀版本的權(quán)重為10%,流量的10%會(huì)執(zhí)行新的服務(wù)

修改default.conf的方法

只需要將upstream中的server的權(quán)重做如下調(diào)整:

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

重新加載nginx設(shè)定

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

確認(rèn)結(jié)果

[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 ~]#

金絲雀發(fā)布: 金絲雀版本流量權(quán)重50%

通過(guò)調(diào)整default.conf的weight,然后執(zhí)行nginx -s reload的方式,調(diào)節(jié)金絲雀版本的權(quán)重為50%,流量的50%會(huì)執(zhí)行新的服務(wù)

修改default.conf的方法

只需要將upstream中的server的權(quán)重做如下調(diào)整:

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

重新加載nginx設(shè)定

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

確認(rèn)結(jié)果

[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 ~]#

金絲雀發(fā)布: 金絲雀版本流量權(quán)重90%

通過(guò)調(diào)整default.conf的weight,然后執(zhí)行nginx -s reload的方式,調(diào)節(jié)金絲雀版本的權(quán)重為90%,流量的90%會(huì)執(zhí)行新的服務(wù)

修改default.conf的方法

只需要將upstream中的server的權(quán)重做如下調(diào)整:

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

重新加載nginx設(shè)定

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

確認(rèn)結(jié)果

[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 ~]#

金絲雀發(fā)布: 金絲雀版本流量權(quán)重100%

通過(guò)調(diào)整default.conf的weight,然后執(zhí)行nginx -s reload的方式,調(diào)節(jié)金絲雀版本的權(quán)重為100%,流量的100%會(huì)執(zhí)行新的服務(wù)

修改default.conf的方法

只需要將upstream中的server的權(quán)重做如下調(diào)整:

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

重新加載nginx設(shè)定

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

確認(rèn)結(jié)果

[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 ~]#

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

標(biāo)簽:綏化 撫順 巴中 蕪湖 福州 孝感 南充 晉城

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《使用nginx模擬進(jìn)行金絲雀發(fā)布的方式》,本文關(guān)鍵詞  使用,nginx,模擬,進(jìn)行,金絲雀,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《使用nginx模擬進(jìn)行金絲雀發(fā)布的方式》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于使用nginx模擬進(jìn)行金絲雀發(fā)布的方式的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    九九免费高清在线观看视频| 日韩综合| 精品久久久久久免费影院| 99色播| 日韩欧美一二三区| 青青久久国产成人免费网站| 美国一区二区三区| 成人影视在线播放| 一级片片| 欧美另类videosbestsex高清| 欧美激情在线精品video| 免费国产在线视频| 国产成人精品综合| 日本特黄特色aaa大片免费| 黄色福利片| 欧美日本免费| 人人干人人草| 国产极品精频在线观看| 欧美日本免费| 成人免费观看男女羞羞视频| 香蕉视频久久| 九九九国产| 国产91丝袜高跟系列| 青青青草影院 | 精品国产一区二区三区久久久狼| 国产a视频精品免费观看| 午夜在线影院| 天天做日日爱夜夜爽| 四虎论坛| 夜夜操天天爽| 99久久精品国产国产毛片| 可以在线看黄的网站| 亚洲精品中文一区不卡| 美女被草网站| 日日夜夜婷婷| 色综合久久天天综合绕观看| 午夜在线影院| 99久久精品国产高清一区二区| 91麻豆爱豆果冻天美星空| 91麻豆国产| 国产不卡在线观看| 国产麻豆精品hdvideoss| 成人高清视频在线观看| 日韩在线观看视频黄| 可以免费在线看黄的网站| 久久福利影视| 999久久狠狠免费精品| a级毛片免费全部播放| 精品国产三级a| 国产成人精品综合久久久| 国产视频久久久| 美女免费精品高清毛片在线视 | 精品国产香蕉伊思人在线又爽又黄| 国产不卡在线观看| 色综合久久手机在线| 高清一级毛片一本到免费观看| 999久久久免费精品国产牛牛| 韩国三级香港三级日本三级la| 黄色免费网站在线| 精品国产一区二区三区久久久蜜臀| 超级乱淫黄漫画免费| 国产成+人+综合+亚洲不卡| 99色视频| 午夜激情视频在线观看 | 欧美另类videosbestsex高清| 久久国产影视免费精品| 国产视频一区在线| 日本特黄一级| 色综合久久天天综合| 亚洲天堂在线播放| 国产成人精品影视| 国产精品自拍在线观看| 精品国产一级毛片| 日韩免费在线观看视频| 久久国产影视免费精品| 久久久久久久久综合影视网| 国产不卡高清在线观看视频| 超级乱淫黄漫画免费| 欧美大片a一级毛片视频| 国产亚洲精品成人a在线| 日韩中文字幕在线亚洲一区 | 亚洲天堂免费| 久久久成人网| 国产精品免费精品自在线观看| 精品视频一区二区三区| 国产欧美精品午夜在线播放| 精品国产亚洲一区二区三区| 国产a毛片| 中文字幕一区二区三区 精品| 欧美激情一区二区三区视频高清 | 亚欧视频在线| 久久国产精品自线拍免费| 久久福利影视| 精品毛片视频| 亚欧成人毛片一区二区三区四区 | 国产亚洲精品aaa大片| 91麻豆精品国产片在线观看| 欧美电影免费看大全| 一级女人毛片人一女人| 天天做日日爱| 四虎久久影院| 久久精品免视看国产成人2021| 日本免费看视频| 午夜在线影院| 午夜家庭影院| 日本伦理黄色大片在线观看网站| 国产亚洲精品成人a在线| 国产不卡在线观看视频| 你懂的日韩| 成人高清视频在线观看| 午夜精品国产自在现线拍| 欧美国产日韩一区二区三区| 天天色色色| 精品视频一区二区| 欧美激情影院| 精品久久久久久中文字幕2017| 国产麻豆精品免费密入口| 在线观看成人网 | 免费毛片基地| 国产国语在线播放视频| 91麻豆精品国产自产在线观看一区| 久久99欧美| 国产一区二区精品在线观看| 色综合久久天天综线观看| 久久国产精品自由自在| 韩国三级视频网站| 999久久久免费精品国产牛牛| 成人免费观看的视频黄页| 黄色免费网站在线| 韩国三级视频网站| 国产成a人片在线观看视频| 国产高清在线精品一区二区| a级毛片免费全部播放| 四虎久久影院| 日韩av东京社区男人的天堂| 国产高清在线精品一区二区| 午夜家庭影院| 成人a大片在线观看| 毛片高清| 青青青草视频在线观看| 亚洲 国产精品 日韩| 高清一级淫片a级中文字幕| 亚飞与亚基在线观看| 日韩av东京社区男人的天堂| 国产福利免费视频| 午夜激情视频在线播放| 亚洲 欧美 成人日韩| 日本伦理片网站| 国产不卡高清| 韩国三级视频网站| 毛片高清| 亚欧成人乱码一区二区| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 午夜激情视频在线观看 | 精品在线观看一区| 日韩在线观看视频黄| 久久精品人人做人人爽97| 国产精品自拍一区| 国产精品自拍一区| 九九九国产| 日韩一级黄色大片| 久久精品大片| 99色视频| 国产麻豆精品hdvideoss| 日日夜夜婷婷| 欧美一区二区三区在线观看| 成人免费网站久久久| 久久99这里只有精品国产| 国产精品1024永久免费视频| 欧美日本免费| 精品国产一区二区三区国产馆| 久久久成人网| 欧美日本二区| 精品视频在线观看免费| 一级女人毛片人一女人| 亚洲天堂免费观看| 一本高清在线| 一本高清在线| 91麻豆精品国产片在线观看| 成人影院一区二区三区| 午夜欧美成人久久久久久| 欧美1区| 可以免费看毛片的网站| 日日夜人人澡人人澡人人看免| 国产国语在线播放视频| 一级女人毛片人一女人| 91麻豆精品国产自产在线| 欧美电影免费| 国产a一级| 成人免费一级纶理片| 99久久精品国产免费| 国产精品自拍在线观看| 青青青草视频在线观看| 美女免费黄网站| 99色视频| 欧美一级视频高清片| 国产不卡精品一区二区三区| 成人a大片在线观看| 毛片高清| 午夜久久网|