共计 813 个字符,预计需要花费 3 分钟才能阅读完成。
前言
应用程序的更新公布,如何升高对用户的影响面,人们钻研出了几种公布策略。
更新历史
- 20200720 – 初稿 – 左程立
- 原文地址 – https://blog.zuolinux.com/2020/07/20/how-to-deployment.html
蓝绿部署
流程
筹备 A/B 两个集群,运行雷同的程序。
在我的项目降级时,首先把 A 集群从负载平衡中移除,进行新版本的部署。
B 集群仍提供服务。
A 集群降级实现后退出负载平衡,B 集群从负载平衡中移除。
长处
平滑公布,不会因公布导致服务中断,策略简略,回滚速度快,用户无感知
毛病
耗费资源,硬件老本高,须要两倍以上服务器资源。
滚动部署
流程
先启动一台新服务器运行新版本,退出生产环境。
而后进行一台老版本服务器,将其更新为新版本,而后退出生产环境。
依此类推,直到集群中全副服务器降级为新版本。
长处
解决了蓝绿公布老本高的问题。如果业务须要 10 台服务器,那么降级中一共有 11 台服务器即可。
毛病
部署周期长,公布策略简单。
如果此时用户拜访呈现问题,无奈疾速确定是新版本导致还是旧版本 BUG。即无奈进行准确流量管制。
金丝雀部署、也叫灰度部署
流程
在具备准确流量管制的状况下,将局部服务器降级为新版本,而后将指定起源 IP 的小局部流量导向到这部分服务器。
确定这部分用户没问题后,将全副服务器降级为新版本。
K8S 中能够应用两套 Deployment,其中一套 Deployment 运行新版本 Pod,通过 ingress 映射进去后,通过 DNS 将指定起源地区的解析,或者公司外部用户的解析,导向到该 ingress。
长处
因为咱们管制了指定起源的 IP 拜访新版本,所以呈现问题后,咱们可能晓得受影响用户拜访的是新版本还是旧版本,从而防止了滚动公布的毛病。
毛病
仍然无奈防止新版本呈现问题后对用户的影响,但咱们曾经将其管制在可控范畴之内。
结束语
金丝雀部署,即灰度公布,是绝对比拟完满的应用程序公布解决方案。
分割我
微信公众号:zuolinux_com