企业常见的代码部署方式

蓝绿部署

蓝绿部署指的是不停老版本代码(不影响上一个版本访问),而是在另外一套环境部署新版本然后进行测试,测试通过后将用户流量切到新版本,其特点为业务无中断,升级风险相对较小。

具体过程:

1、当前版本业务正常访问(V1)

2、在另外一套环境部署新代码(V2),代码可能是增加了功能或者是修复了某些bug

3、测试通过之后将用户请求流量切到新版本环境

4、观察一段时间,如有异常直接切换旧版本

5、下次升级,将旧版本升级到新版本(V3)

蓝绿部署适用的场景:

1、不停止老版本,额外部署一套新版本,等测试发现新版本OK后,删除老版本。

2、蓝绿发布是一种用于升级与更新的发布策略,部署的最小维度是容器,而发布的最小维度是应用。

3、蓝绿发布对于增量升级有比较好的支持,但是对于涉及数据表结构变更等等不可逆转的升级,并不完全合适用蓝绿发布来实现,需要结合一些业务的逻辑以及数据迁移与回滚的策略才可以完全满足需求。

企业常见的代码部署方式插图

金丝雀发布

“金丝雀”的由来:17世纪英国矿井工人发现,金丝雀对瓦斯这种气体十分敏感。空气中哪怕有极其微量的瓦斯,金丝雀也会停止歌唱;而当瓦斯含量超过一定限度时,虽然鲁钝的人类毫无察觉,金丝雀却早已毒发身亡。当时在采矿设备相对简陋的条件下,工人每次下井都会带上一只金丝雀作为“瓦斯检测指标”,以便在危险状况下紧急撤离。

金丝雀发布也叫灰度发布,是指在黑与白之间,能够平滑过渡的一种发布方式,灰度发布是增量发布的一种类型,灰度发布是在原有版本可用的情况下,同时部署一个新版本应用作为“金丝雀”(小白鼠),测试新版本的性能和表现,以保障整体系统稳定的情况下,尽早发现、调整问题。因此,灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。

金丝雀发布、灰度发布步骤组成:

1、准备好部署各个阶段的工件,包括:构建组件,测试脚本,配置文件和部署清单文件。

2、从负载均衡列表中移除掉“金丝雀”服务器。

3、升级“金丝雀”应用(排掉原有流量并进行部署)。

4、对应用进行自动化测试。

5、将“金丝雀”服务器重新添加到负载均衡列表中(连通性和健康检查)。

6、如果“金丝雀”在线使用测试成功,升级剩余的其他服务器。(否则就回滚)

灰度发布/金丝雀部署适用的场景:

1、不停止老版本,额外搞一套新版本,不同版本应用共存。

2、灰度发布中,常常按照用户设置路由权重,例如90%的用户维持使用老版本,10%的用户尝鲜新版本。

3、经常与A/B测试一起使用,用于测试选择多种方案。

企业常见的代码部署方式插图(1)

滚动发布

滚动发布,一般是取出一个或者多个服务器停止服务,执行更新,并重新将其投入使用。周而复始,直到集群中所有的实例都更新成新版本,此方式可以防止同时升级,造成服务停止

A/B测试

A/B测试也是同时运行两个APP环境,但是和蓝绿部署完全是两码事,A/B 测试是用来测试应用功能表现的方法,例如可用性、受欢迎程度、可见性等等,蓝绿部署的目的是安全稳定地发布新版本应用,并在必要时回滚,即蓝绿部署是同一时间只有一套正式环境环境在线,而A/B测试是两套正式环境同时在线,一般用于多个产品竟争时使用

企业常见的代码部署方式插图(2)
企业常见的代码部署方式插图(3)

本文链接:http://www.yunweipai.com/35705.html

原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/52604.html

(0)
上一篇 2021年8月6日
下一篇 2021年8月6日

相关推荐

发表回复

登录后才能评论