滚动更新、蓝绿部署与灰度发布:概念、原理及区别详解
创作时间:
作者:
@小白创作中心
滚动更新、蓝绿部署与灰度发布:概念、原理及区别详解
引用
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的用户使用新版本进行验证。
- 如果验证通过,再逐步发布到其他实例上。
解决的问题:
- 让部分用户参与验证,将生产事故的影响降到最低。
未解决的问题:
- 整个发布周期相对较长。
热门推荐
最新研究:3565万年前双小行星撞击形成地球第四、五大陨石坑
朝阳医院采用国产回力圈技术,成功治疗重度肺气肿
全面呵护肺健康:防护、预防与康复三大要点
朝阳医院完成首例国产肺减容回力圈手术,微创技术助力重度肺气肿治疗
《CS:GO》里的"老六"竟是高手?
佛教菩萨坐骑:青狮、白象与谛听的象征意义
翡翠九尾狐的寓意和象征:吉祥、智慧、长寿、爱情与平安
翡翠中的九尾狐图案:寓意、象征意义及文化背景详解
澳门十二生肖街道全攻略:从龙到兔的街头寻踪
十二生肖文化:从纪年符号到生活智慧
高钾低钠、富含膳食纤维,香蕉的多重营养价值
《琵琶行》中的酒文化:从离别到失意的情感寄托
白居易《琵琶行》的写作背景和内容赏析
意蕴深丰,功能多样——《琵琶行》中的"江"与"月"意象解析
从《满江红》到《小重山》:岳飞诗词里的忠愤与无奈
“莫须有”冤案:岳飞之死与南宋宫廷权力斗争
风波亭之变:岳飞之死与南宋政治博弈
黑豹、虎式、虎王、鼠式:纳粹德国的最后坦克盛宴
可靠性成致命弱点,“虎王”坦克两线首战全军覆没
黑豹、虎式、虎王、鼠式:纳粹德国二战坦克全览
宝宝喝奶全攻略:从新生儿到学龄儿童,一次说清!
爸妈矮,孩子注定矮吗?医生:两个生长时期的干预很重要
孩子身高发育的征兆与家长的早期干预
从环保到医药:高速旋转粉碎机的广泛应用
旋转加工刀具这样自制:三大步骤实现降本增效
刀式研磨仪:实验室样品粉碎的高效利器
冬日龙游:雪景中的历史与自然交融
龙游民居苑:最美自然景观打卡地
龙游必打卡:权威推荐五大景点
肺结节患者饮食调理:四类食物需避免,三餐食谱推荐