金丝雀发布(Canary Releases)的由来
17世纪,英国矿井工人发现,金丝雀对瓦斯这种气体十分敏感。空气中哪怕有极其微量的瓦斯,金丝雀也会停止歌唱;而当瓦斯含量超过一定限度时,虽然人类毫无察觉,金丝雀却早已毒发身亡。当时在采矿设备相对简陋的条件下,工人们每次下井都会带上一只金丝雀作为“瓦斯检测指标”,以便在危险状况下紧急撤离。
Kong的金丝雀发布简述
金丝雀发布又称灰度发布,是指在我们的生产环境中划分出一部分节点为灰度节点,当上新版本的时候,先上灰度环境并且会切换一部分流量过来,当灰度环境的流量都没有问题的时候,就会在整个生产环境上新版本。我理解的可能有问题,请留言或者进群讨论一下
Kong的金丝雀发布的实现
假设生产环境的状况如下:
- 创建upstream
upstreams/ POST { "name":"xjj.tv.com" }
- 创建target
#灰度版本的target /upstreams/b7208664-4c0b-4c64-98a2-683594bb1bfd/targets POST { "target":"172.16.0.92:8899", "weight": 0 }
#生产版本 /upstreams/b7208664-4c0b-4c64-98a2-683594bb1bfd/targets POST { "target":"172.16.0.92:8810", "weight": 1000 }
- b7208664-4c0b-4c64-98a2-683594bb1bfd 是上传面创建的upstream的id
- 创建service
services POST { "name": "xjj.yv.com", "protocol":"http", "host":"xjj.tv.com", "path":"/", "read_timeout":6000 }
- 创建路由
routes POST { "protocols": ["http"], "methods": ["GET"], "paths": ["/xjj_tv"], "service":{"id":"2fc52878-1fe9-48ba-bc45-146da3822851"} }
- 测试一下,注意多点几下
- 现在灰度上了新版本,我们要切一部分流量过去:
/upstreams/b7208664-4c0b-4c64-98a2-683594bb1bfd/targets POST { "target":"172.16.0.92:8810", "weight": 800 }
/upstreams/b7208664-4c0b-4c64-98a2-683594bb1bfd/targets POST { "target":"172.16.0.92:8899", "weight": 200 }
相当于切换了五分之一的流量过去
- 测试一下,点击多次,才会出现下面这个小姐姐
先写到这里了,有问题进QQ群630300475
来源:51CTO
作者:going_han
链接:https://blog.csdn.net/u014686399/article/details/100084613