滚动更新、蓝绿部署与灰度发布:概念、原理及区别详解
创作时间:
作者:
@小白创作中心
滚动更新、蓝绿部署与灰度发布:概念、原理及区别详解
引用
CSDN
1.
https://blog.csdn.net/nvd11/article/details/139889966
在现代软件开发和运维中,滚动更新、蓝绿部署和灰度发布是三种常见的应用发布策略。它们各有特点和适用场景,正确理解这些策略的区别对于实现高效、可靠的软件发布至关重要。
滚动更新(Rolling Update)
滚动更新主要用于多实例的服务。当一个服务有多个实例时,更新并不是一次性完成所有实例,而是按照一定的顺序逐步进行。这是Kubernetes(k8s)提供的一项重要特性。
解决的问题:
- 在整个更新过程中,始终保持至少一个实例在线,确保用户无感知,实现高可用和零停机时间。
未解决的问题:
- 如果新版本存在严重bug,在滚动更新期间没有充分验证,可能导致整个更新完成后出现风险。
蓝绿部署(Blue-Green Deployment)
蓝绿部署通常应用于传统的本地部署服务,但不一定局限于多实例服务。
定义:
这是一种在生产环境中同时部署并运行两个完全独立的应用程序版本的策略。在蓝绿部署中,蓝色环境代表当前的稳定版本,而绿色环境代表新版本。新版本的应用程序在绿色环境中进行测试和验证,然后通过切换路由或负载均衡器将流量从蓝色环境切换到绿色环境。一旦验证通过,可以将流量完全切换到绿色环境,并最终关闭蓝色环境。
部署流程:
- 首先将新版本的服务部署到备用服务器(绿色环境)。
- 在备用服务器上进行必要的验证。
- 一旦验证通过,将正在运行的网关/负载均衡器切换到备用服务器,此时备用服务器成为正式生产环境(绿色环境)。
- 最后关闭旧生产环境的实例(蓝色环境)。
解决的问题:
- 添加了验证步骤,规避了一些操作风险。对大部分用户来说更新是无感知的。
未解决的问题:
- 在有限时间内,IT人员的验证范围有限。
- 需要额外一套基础设施,成本较高。
灰度发布(Gray Release)/金丝雀发布(Canary Release)
灰度发布也被称为金丝雀发布,是一种逐步将新版本应用程序引入生产环境的策略。
定义:
在灰度发布中,新版本的应用程序会逐渐在一小部分用户或流量中进行测试和验证,然后逐步扩大范围,直到完全替换旧版本。它允许在生产环境中逐步验证新版本,并及时回滚以避免大规模影响。
部署流程:
假设某个服务在生产环境中运行着4个实例:
- 首先将新版本发布到某1个实例上,这时其他3个实例还是旧版本。
- 在这个阶段停留一段时间,此时在生产上有3/4的用户还是用着旧版本,没有受到影响,只有1/4的用户使用新版本进行验证。
- 如果验证通过,再逐步发布到其他实例上。
解决的问题:
- 让部分用户参与验证,将生产事故的影响降到最低。
未解决的问题:
- 整个发布周期相对较长。
热门推荐
延迟退休落地前,普通人如何提前规划财务?做好这5点很重要
办公台式机如何配置
安桥功放不能开机怎么办?详细故障排查与解决方案
女人戴珠砂跟玉镯哪个好一点?选择饰品需考虑风格与场合
安徽天柱山旅游攻略:从交通住宿到景点游览全解析
智能化安防系统:科技赋能,守护安全边界
如何进行女性个人理财规划
邢台出发探秘新疆赛里木湖:个性化独行游玩攻略
如何知道自己可能患了冠心病?注意这些典型症状!出现及时就医
财富观的启蒙:如何从小教孩子正确看待金钱?
注册科技公司的经营范围的填写是怎样的
节妇吟原文及赏析
多项补贴政策发布 天津跨境电商出口迎利好
优化色谱分离:高效液相色谱柱的选择与维护策略
油敏皮护肤指南:从洁面到防晒的全方位护理方案
无人机界“中国华为”,翼龙进军欧洲凸显中国制造国际地位的提升
网易再诉迷你世界侵权,这场持续多年的版权之争或将迎来终局
600x1200的墙砖最佳铺贴法有哪些
杞菊地黄丸的5个临床应用,一文总结
鸿蒙智行法务:某公司操纵上万个账号恶意造谣、抹黑,多人被警方缉拿
到乡翻似烂柯人的意思 出处是哪里
光影精灵优化教程:提升游戏画质,享受细腻的游戏体验
案例库:如何判断给付应为彩礼?何种情况可主张返还?何种不能?
黄历中的“安门”是什么意思?
数据分享|人口空间分布
圆觉单核玩法攻略:一人成型,输出与续航兼备
教育改革风云再起:如何打破传统教育模式的新旧之争?
马尾神经损伤治疗的目的是什么?
团队工作如何使用心流
拒缴物业费被起诉,该如何应对?