灰度发布对于任何一个拥有较大业务流量的公司都是不可或缺的,我的公司也不例外。
没有灰度能力,那么发布业务一旦有问题就会造成业务损失,而如果有了灰度能力,那么可以做的事情就比较有想象空间了。
kubernetes能力限制
默认kubernetes的deployment只能支持滚动发布,并没有暂停点机制(自带的pause/resume很鸡肋)。
deployment持续滚动的前提是新POD健康检查OK即可,然而健康检查并不意味着业务逻辑是正确的,一旦发布业务逻辑错误代码损失将比较惨重。
因此,我们需要考虑自己实现灰度能力,同时寄希望于该方案简单、可靠。
最早想做灰度发布,潜意识方案就是一个这样的模式:
创建几个新POD就停住,老POD不删除,等业务确认继续,那么就全量发布成新POD。
至于要发布几个新POD之后暂停呢?
这个应该是可配置的。
那么如何设计一个这样的工作模式呢?
灰度方案设计
因为K8S发布系统已经在线上运行了,如何结合到现有发布系统中,尽量少的改动满足灰度需求是我的思考出发点。
所以,我选择了”蓝绿发布”的思路。
实际操作起来是简单粗暴的,只是在发布的时候增加一个”发布方式”选项即可:
阅读后续内容?
你必须付费加入我的知识星球,为有效知识付费是对作者最好的回报。
二维码见下方 或者 右侧边栏。

傻逼
可以了解一下DHorse(https://github.com/tiandizhiguai/dhorse), 是一个开源的多云云原生应用管理平台和发布平台,部署简单,快速易用。
傻逼
1
1
1
1
1
可以了解一下DHorse(https://github.com/tiandizhiguai/dhorse), 是一个开源的多云云原生应用管理平台和发布平台,部署简单,快速易用。