首页 > 编程知识 正文

蓝绿和绿蓝的区别,蓝绿系统

时间:2023-05-04 06:09:36 阅读:108629 作者:3557

欢迎来到关注阳光的蜻蜓博客”666“获得面试宝典”

在项目不断重复的过程中,不可避免地需要“在线”。 在线支持或重新部署; 配置对应于修改; 修正意味着风险。 现在有很多部署发布技术,这里总结一下常见的东西。

以上无论如何都很抽象,举一个案例,你是微博项目的负责人,现在新版本比原来的旧版本有了很大的变化。 它甚至设计了服务架构、前端UI等,在不影响被测试的功能的情况下,如何将用户切换到新版本呢?

很明显,最初发布的APP应用程序没有所谓的这个问题。 这种释放方法的想法只能出现在以后版本的重复中。

01、青绿释放青绿配置共有两个系统。 一个是正在提供服务的系统,显示为“绿色”。 另一个是计划发布的系统,显示为“蓝色”。 这两个系统都是完全正常运行的系统,但系统版本和对外服务情况不同。 对外服务的旧系统是绿色系统,新引进的系统是蓝色系统。

蓝色系统不对外服务,用来做什么?

用于发布前的测试。 如果在测试过程中发现任何问题,可以直接在蓝色系统上进行修复,而不会干扰用户使用的系统。

蓝色系统经过反复测试、修复、验证,确定达到在线标准后,直接将用户切换到蓝色系统。 在切换后的一段时间内,蓝色和绿色这两个系统仍然共存,但用户访问的已经是蓝色系统。 在此期间,观察蓝色系统(新系统)的运行状态,如有问题,直接切换到绿色系统。

当我们确信对外服务的蓝色系统正常运行,不再需要不对外服务的绿色系统时,蓝色系统将正式成为对外服务的系统,成为新的绿色系统。 可以放弃以前的绿色系统,释放资源,用于[下一个蓝色系统的部署]。

02、青绿释放的特点引入青绿的目的是减少释放时的中断时间,快速撤回释放。

如果两个系统没有耦合,100%保证不干扰

03、青绿发布注意事项引入青绿是[线上策略之一,并非应对所有情况的万能方案。 蓝绿部署能够方便快捷地实施的前提条件是目标系统非常密集,如果目标系统相当复杂,就需要仔细考虑如何切换、是否需要两个系统的数据、如何同步等

要将沉稳的唇膏切换到蓝色环境,需要妥善处理未完成的业务和新业务。 如果数据库后端无法处理,这将是一个麻烦问题

可能需要同时处理“微服务架构APP”和“传统架构APP”。 蓝绿[如果部署中的协调不顺利,仍然有可能停止服务。

必须提前考虑同时迁移/回滚数据库和APP应用程序部署的问题。

蓝色绿色部署需要基础设施支持。

在非隔离的基础架构(VM、Docker等)上执行蓝绿(部署会有破坏蓝环境和绿环境的风险。

在04,滚动发行通常取出一个或多个服务,停止服务,执行更新,并再次使用。 重复,直到集群中的所有实例都更新为新版本。

释放过程:

发布青绿色需要完整的机器,而滚动发布只需要一台机器。 这是为了理解,实际上可能有多台。 只需在这台机器上部署一些功能,并替换正在运行的机器。 如上图所示,只需将更新的功能部署到Server1,并替换在Server1上运行的Server即可。 被替换的物理计算机可以继续部署新版本的Server2,以替换正在工作的Server2。 这样,服务更新就完成了,直到替换了所有服务器。

05、滚动发行特点这种配置方式对于蓝绿配置,更节约资源——、两个集群,不需要运行实例数量的两倍。 我们可以部分部署,例如每次只取出20%的集群进行升级。

很难回滚

06、滚动发放注意事项滚动发放的运行环境尚不确定。 蓝绿[虽然使用部署可以清楚地看到旧版本是可能的,但使用滚动版本则不太可靠。

修改了现有的环境。

很难回滚。 例如,在某个版本中,需要更新100个实例。 每次更新10个实例,每次部署需要5分钟。 当滚动发布到第80个实例时,发现了问题,需要回滚。 这种回滚是一个痛苦而漫长的过程。

在某些情况下,还会动态地扩展/缩小系统。 如果系统在部署过程中自动缩放,则需要确定哪些节点使用了哪些代码。 虽然有一些自动化的运输工具,但仍然令人吃惊。

因为是阶段性的更新,所以我们在上线代码的时候,暂时会出现新老版本的不一致,在对在线有很高要求的场景下,需要考虑如何确保兼容性。

07、灰阶发表,又称灰阶发表、金丝雀发表。 是指能够在黑白之间顺利转移的释放方法。 AB test是一种灰度发布方式,部分用户继续使用a,部分用户开始使用b,如果用户对b没有反对意见,则逐步扩大范围,将所有用户转移到b之上。 灰度的发布可以保证整个系统的稳定,在初始灰度时发现并调整问题,保证其影响度。 我们平时说的假名[配置也就是灰度发表的一种方式。

具体地说,在实际操作中可以进行更多的控制,例如对最初更新的10台服务器设定较低的权重,控制发送到这10台服务器的请求数,逐渐提高权重,增加请求数等。 出于平稳过渡的考虑,该控制称为“流量分割”。

17世纪,英国矿山

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

过程:

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

将“金丝雀”服务器部署进服务器中, 测试。

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

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

对应用进行自动化测试。

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

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

08、A/B测试

A/B测试和蓝绿发布、滚动发布以及金丝雀发布,完全是两回事。

蓝绿发布、滚动发布和金丝雀是发布策略,目标是确保新上线的系统稳定,关注的是新系统的BUG、隐患。

A/B测试是效果测试,同一时间有多个版本的服务对外服务,这些服务都是经过足够测试,达到了[上线标准的服务,有差异但是没有新旧之分(它们[上线时可能采用了蓝绿部署的方式)。

A/B测试关注的是不同版本的服务的实际效果,譬如说转化率、订单情况等。

A/B测试时,线上同时运行多个版本的服务,这些服务通常会有一些体验上的差异,譬如说页面样式、颜色、操作流程不同。相关人员通过分析各个版本服务的实际效果,选出效果最好的版本。

来源 | https://www.cnblogs.com/Courage129/p/14498788.html

热门内容:

别再用 BeanUtils 了,这款 PO VO DTO 转换神器不香么?

抗住双11超高并发,今年排第一的调优方案,没有之一!

妙用Java 8中的 Function接口 消灭if...else(非常新颖的写法)

阿里二面:现针对一个请求量10000次/s的秒杀系统,说说你的优化思路

最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

明天见(。・ω・。)ノ♡

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。