蓝绿发布、滚动发布、灰度发布,有什么区别?
架构之美
共 2903字,需浏览 6分钟
·
2021-12-12 23:15
- 前言 -
- 蓝绿发布 -
- 蓝绿发布特点 -
蓝绿部署的目的是减少发布时的中断时间、能够快速撤回发布。 两套系统没有耦合的时候才能百分百保证不干扰
- 蓝绿发布注意事项 -
可能会出现需要同时处理“微服务架构应用”和“传统架构应用”的情况,如果在蓝绿[部署中协调不好这两者,还是有可能会导致服务停止。 需要提前考虑数据库与应用部署同步迁移 /回滚的问题。 蓝绿部署需要有基础设施支持。 在非隔离基础架构( VM 、 Docker 等)上执行蓝绿[部署,蓝色环境和绿色环境有被摧毁的风险。
- 滚动发布 -
- 滚动发布特点 -
这种部署方式相对于蓝绿部署,更加节约资源——它不需要运行两个集群、两倍的实例数。我们可以部分部署,例如每次只取出集群的20%进行升级。 回滚困难
- 滚动发布注意事项 -
滚动发布没有一个确定可行的环境。使用蓝绿[部署,我们能够清晰地知道老版本是可行的,而使用滚动发布,我们无法确定。 修改了现有的环境。 回滚困难。举个例子,在某一次发布中,我们需要更新100个实例,每次更新10个实例,每次部署需要5分钟。当滚动发布到第80个实例时,发现了问题,需要回滚,这个回滚却是一个痛苦,并且漫长的过程。 有的时候,我们还可能对系统进行动态伸缩,如果部署期间,系统自动扩容/缩容了,我们还需判断到底哪个节点使用的是哪个代码。尽管有一些自动化的运维工具,但是依然令人心惊胆战。 因为是逐步更新,那么我们在上线代码的时候,就会短暂出现新老版本不一致的情况,如果对上线要求较高的场景,那么就需要考虑如何做好兼容的问题。
- 灰度发布 -
17世纪,英国矿井工人发现,金丝雀对瓦斯这种气体十分敏感。空气中哪怕有极其微量的瓦斯,金丝雀也会停止歌唱;而当瓦斯含量超过一定限度时,虽然鲁钝的人类毫无察觉,金丝雀却早已毒发身亡。当时在采矿设备相对简陋的条件下,工人们每次下井都会带上一只金丝雀作为“瓦斯检测指标”,以便在危险状况下紧急撤离。
准备好部署各个阶段的工件,包括:构建工件,测试脚本,配置文件和部署清单文件。 将“金丝雀”服务器部署进服务器中, 测试。 从负载均衡列表中移除掉“金丝雀”服务器。 升级“金丝雀”应用(排掉原有流量并进行[部署)。 对应用进行自动化测试。 将“金丝雀”服务器重新添加到负载均衡列表中(连通性和健康检查)。 如果“金丝雀”在线使用测试成功,升级剩余的其他服务器。(否则就回滚)
- A/B 测试 -
作者:等不到的口琴
来源:
https://www.cnblogs.com/Courage129/p/14498788.html
评论