14.每日一读-到底什么是蓝绿、红黑、灰度发布

1.科学部署的意义

尽可能减少服务停机时间
控制新版本带来的质量风险

2.全量发布与增量发布

在这里插入图片描述

3.蓝绿发布

1.我有两个应用集群,应用集群A与应用集群B,这两个集群的版本都是v1.0,现在使用蓝绿部署的方法进行升级上线
在这里插入图片描述
2.在网关中设置,先断开应用集群A的连接
在这里插入图片描述
3.将应用集群A升级到V1.1
在这里插入图片描述
4.设置网关对应用集群A的连接
在这里插入图片描述
5.设置网关断开应用集群B的连接
在这里插入图片描述
6.升级应用集群B到v1.1
在这里插入图片描述
7.设置网关连接应用集群B
在这里插入图片描述

3.红黑发布

红黑发布针对的是一个集群
1.有一个应用集群Av1.0需要对其升级
在这里插入图片描述
2.搭建一个全新的应用集群B v1.1
在这里插入图片描述
3.设置网关连接应用集群B,再断开应用集群A,并释放应用集群A
在这里插入图片描述
在这里插入图片描述

5.蓝绿部署与红黑部署的对比

与蓝绿部署相比,红黑部署可以充分利用了云计算的弹性伸缩优势,从而获得了两个收益:
1.简化了流程;
2.避免了在升级的过程中,
注意:由于只有一半的服务器提供服务,而可能导致的系统过载问题。

6.灰度发布

灰度发布,也被叫作金丝雀发布。与蓝绿部署、红黑部署不同的是,灰度发布属于增量发布方法。也就是说,服务升级的过程中,新旧版本会同时为用户提供服务。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.1 灰度发布遇到的挑战

1.考虑数据库变更对旧版本的兼容性影响

例如:某数据表有ab两个字段
程序猿小甲的SQL是: insert into t values(‘a’,’b’);
但v1.1版本中在数据表增加了c字段,就版本运行就会报错
因此在考虑未来灰度发布的情况,要求团队成员写SQL必须明确字段
insert into t(a,b) values(‘a’,’b’);
TIPS:任何删除、更新字段信息的操作都要格外谨慎

  1. 对于新旧版本无法协同作业的情况
    方案一:
    放弃灰度,采用红黑方式全量发布
    对于新旧版本无法协同作业的情况
    方案二(了解一下即可,项目几乎不会考虑)
    可以考虑独立部署数据源进行迁移
    为新旧版本分配独立的数据源
    但新旧数据源之间数据同步会更考验架构师与DBA的智慧

3.灰度发布用户群的选择
不能直接采用类似于Nginx的权重Weight
会导致一个用户不同请求在新旧版本间反复横跳,出现无法预期的Bug
解决方法:利用Nginx + Lua脚本化
基于IP或者UA等用户稳定特性然后Hash取模来决定访问新旧版本
Hash(192.168.31.102) % 10 = 7 #送给旧版本
Hash(192.168.31.108) % 10 = 9 #送给新版本

4.什么时候才可以提升分配比例
在发布过程中,我们应该注意监测用户请求失败率、用户请求处理时长和异常出现数量这几个信息,以保证快速发现问题并及时回滚。
在灰度发布的时候,可以部署相对较小的集群,让集群保持在高压力确认新版应用的性能情况,之后再酌情进行扩容。
TIPS:推荐了解下SkyWalking,国产开源监控系统,简单粗暴

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
蓝绿发布灰度发布和镜像发布是常见的应用发布模式,它们都有不同的特点和用途。 1. 蓝绿发布(Blue-Green Deployment)是一种将新版本应用与旧版本应用并行部署的方式。在蓝绿发布中,两个环境同时存在,一个环境(蓝色环境)运行旧版本应用,另一个环境(绿色环境)运行新版本应用。当新版本应用经过测试并且稳定后,可以将流量切换到绿色环境,实现无缝的应用升级。蓝绿发布的优点是可以快速回滚到旧版本应用,降低了发布风险。 2. 灰度发布(Canary Release)是一种逐步将新版本应用引入生产环境的方式。在灰度发布中,新版本应用会逐渐接收一部分流量,而旧版本应用仍然接收剩余的流量。通过逐步增加新版本应用的流量比例,可以在不影响整体系统稳定性的情况下进行测试和验证。如果新版本应用出现问题,可以快速回滚到旧版本应用。灰度发布的优点是可以在生产环境中进行实时监控和测试,减少了发布风险。 3. 镜像发布(Image Deployment)是一种通过创建和部署镜像来实现应用发布的方式。在镜像发布中,应用的每个版本都会打包成镜像,并通过容器技术(如Docker)进行部署。通过使用镜像,可以快速、可靠地部署应用,并且可以在不同的环境中进行复制和迁移。镜像发布的优点是可以实现快速部署和扩展,提高了应用的可移植性和可伸缩性。 总结: - 蓝绿发布是一种并行部署新旧版本应用的方式,可以快速回滚到旧版本应用。 - 灰度发布是一种逐步引入新版本应用的方式,可以在生产环境中进行实时监控和测试。 - 镜像发布是一种通过创建和部署镜像来实现应用发布的方式,可以实现快速部署和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值