理解 什么是 滚动更新,蓝绿部署,灰度发布 以及它们的区别

滚动更新,蓝绿部署,灰度发布

这3种 现代化的 发布模式相信很多人都听过, 但是并不是都能正确理解他们的作用和区别




滚动更新 Rolling Update

所谓滚动更新是for 那些多实例的service的。

假如1个 service 有n 个instance, 更新时并不是n 个 instance 同时更新, 而是有先后顺序。

rolling update 是k8s 提供的一个招牌特性

解决的问题:
这样的话在整个更新区间, 都保证至少1个instance 是在线的, 这样对用户来讲更新是无感知的, 实现所谓的高可用和0 downtime

未解决的问题:
假如新版本是有问题的, 有严重的bug, 在滚动更新区间是没有验证的, 所以当整个更新完成后还是有很大由于bug导致风险

原理如图:
在这里插入图片描述



蓝绿部署 Blue-Green Deployment

蓝绿部署 通常发生在传统的on-prem的service上
但它不一定是for 多instance 的 service的

定义
它是一种在生产环境中同时部署并运行两个完全独立的应用程序版本的策略。在蓝绿部署中,蓝色环境代表当前的稳定版本,而绿色环境代表新版本。新版本的应用程序在绿色环境中进行测试和验证,然后通过切换路由或负载均衡器将流量从蓝色环境切换到绿色环境。一旦验证通过,可以将流量完全切换到绿色环境,并最终关闭蓝色环境。

也就是讲, 蓝绿部署的前提是 一套与当前正在运行的生产环境 同样规格的备用servers

当要部署时

首先把新版本的service部署到 备用服务器上。(绿色)
然后在备用服务器上做一些必要的验证

一旦验证通过
就把正在运行的 gateway/lb 切换到备用服务器, 备用变成正式生产(绿色)
然后关闭旧生产的实例(蓝色)

解决的问题:
添加了验证步骤,规避了一些操作风险。 对大部分用户来讲也是无感知的。

未解决的问题:
在有限时间情况下, it人员的验证范围有限
额外一套 infra, 成本昂贵

原理如图:
在这里插入图片描述




灰度发布 - Gray Release - Canary Release

灰度发布也叫 金丝雀发布 Canary Release

定义
灰度发布是一种逐步将新版本应用程序引入生产环境的策略。在灰度发布中,新版本的应用程序会逐渐在一小部分用户或流量中进行测试和验证,然后逐步扩大范围,直到完全替换旧版本。它允许在生产环境中逐步验证新版本,并及时回滚以避免大规模影响。

简单来讲
假如我某个service 生产上运行着4个instance

在第一阶段我先发布新版本到某1个instance 上, 这时其他3个instance 还是旧版本

而且我会在这个阶段停留一段时间, 这时在生产上有3/4 用户还是用着旧版本, 没有受影响, 只有1/4用户用了新版本, 他们参与了验证

如果验证通过
在逐步发布到其他instance上

其实原理和滚动更新有点类似, 只不过大大减缓了整个发布的时间, 让部分用户参与验证,避免了大规模的生产事故

解决了的问题:
让部分用户参与验证, 让生产事故的影响减到最少

未解决的问题:
整个发布周期更长

在这里插入图片描述

  • 25
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
全量发布: 全量发布是指将新版本的应用程序一次性全部部署到生产环境中,替换旧版本的应用程序。全量发布的优点是部署速度快,缺点是风险大,如果新版本出现问题,整个系统都会受到影响。 蓝绿部署蓝绿部署是指在生产环境中同时部署两个版本的应用程序,其中一个版本对外提供服务,称为蓝色版本,另一个版本不对外提供服务,称为绿色版本。当新版本的应用程序部署完成后,将流量从蓝色版本切换到绿色版本,这样就可以实现零停机部署蓝绿部署的优点是可以快速回滚,缺点是需要占用双倍的资源。 滚动发布: 滚动发布是指将新版本的应用程序分批次部署到生产环境中,每次只部署一小部分,等待一段时间后再部署下一批。滚动发布的优点是可以逐步验证新版本的应用程序是否稳定,缺点是部署时间长。 灰度发布灰度发布是指将新版本的应用程序逐步部署到生产环境中,只对部分用户提供服务,称为灰度用户。通过监控灰度用户的使用情况,来验证新版本的应用程序是否稳定。如果出现问题,只会影响部分用户,不会对整个系统造成影响。灰度发布的优点是风险小,缺点是部署时间长。 监控告警: 监控告警是指通过监控系统对生产环境进行实时监控,当出现异常情况时,及时发出告警信息,通知相关人员进行处理。监控告警的优点是可以及时发现问题,缺点是需要投入大量的人力和物力进行维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nvd11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值