通過Kong實現金絲雀發佈

金絲雀發佈(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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章