蓝绿发布,灰度发布,滚动发布

2023-10-19 11:44
文章标签 发布 滚动 灰度 蓝绿

本文主要是介绍蓝绿发布,灰度发布,滚动发布,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写在前面

本文看下生产环境中有哪些常用的发布策略。

1:蓝绿发布

蓝绿发布要求将线上机器分成逻辑上的AB两(蓝绿就是两种颜色)组,升级时先将A组从负载均衡中摘除,由B组对外提供服务,如下图:
在这里插入图片描述

当A组升级完成后,将A组加入到负载均衡,将B从负载均衡中摘除,如下图:
在这里插入图片描述

B升级完毕后重新加入到负载均衡中,整个蓝绿发布的过程就结束了。这种发布方式的优点是实施简单,缺点是如果升级程序出现问题,将会影响到所有用户,影响范围过大,所以我认为这种升级策略最好不要使用,风险太大。

2:灰度发布

灰度发布也是将机器分成逻辑上的两组,但升级过程不同于蓝绿发布,其过程是,首先将一组从负载均衡中摘除,升级完毕后,加入到集群,但是只引流部分流量到升级完毕的机器,让部分用户来试错,如果有问题便于快速回滚,减少影响范围,如下图:
在这里插入图片描述

这种发布方式的优点是影响范围小,便于快速发现问题,回滚操作,缺点是自动化要求高(能通过技术手段解决的问题我认为都不是问题),这种部署方式本质上是解决了蓝绿发布程序升级后可能影响所有用户的问题,在实际生产环境中可以考虑使用这种部署方式。

灰度发布还有一个名字是金丝雀发布,该名称来源于欧美的矿井工作,因为矿井中可能有毒气,矿工为了辨别井下是否有毒气,在下井时会携带一个金丝雀,因为金丝雀canary [kəˈneəri]的抗毒能力比人类要弱,所以如果有毒气的话,会比人类先挂掉,这样矿工就可以赶快离开了,避免危险,所以这里金丝雀就相当于被导入到新机器的那部分流量,都是用来试错的,小成本避免大问题。

3:滚动发布

本文k8s的升级方式就是滚动发布,首先摘除一个节点,升级完毕后加入到集群,重复这个过程,直到所有的节点都升级完毕,如下图:
在这里插入图片描述
这种部署方式的优点是每次摘除的机器量少,不需要额外的机器来处理流量,缺点是升级过程比较复杂,对升级算法的要求较高。这种部署方式可以考虑在生产环境中用起来,当然如果是使用k8s,自然是要用起来了,因为k8s本身提供的升级方式就是这种。

写在后面

参考文章列表

k8s之平滑升级 。

为什么灰度发布又叫金丝雀发布? 。

一文搞懂蓝绿发布、灰度发布和滚动发布 。

这篇关于蓝绿发布,灰度发布,滚动发布的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/239547

相关文章

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository。如果采用原始直接打包放到lib目录的方式进行处理,便对项目的管理带来一些不必要的麻烦。例如版本升级后需要重新打包并,替换原有jar包等等一些额外的工作量和麻烦。为了避免这些不必要的麻烦,通常我们

禅道Docker安装包发布

禅道Docker安装包发布 大家好, 禅道Docker安装包发布。 一、下载地址 禅道开源版:   /dl/zentao/docker/docker_zentao.zip  备用下载地址:https://download.csdn.net/download/u013490585/16271485 数据库用户名: root,默认密码: 123456。运行时,可以设置 MYSQL_ROOT_P

C++编程:ZeroMQ进程间(订阅-发布)通信配置优化

文章目录 0. 概述1. 发布者同步发送(pub)与订阅者异步接收(sub)示例代码可能的副作用: 2. 适度增加缓存和队列示例代码副作用: 3. 动态的IPC通道管理示例代码副作用: 4. 接收消息的超时设置示例代码副作用: 5. 增加I/O线程数量示例代码副作用: 6. 异步消息发送(使用`dontwait`标志)示例代码副作用: 7. 其他可以考虑的优化项7.1 立即发送(ZMQ_IM

UniApp实现漂亮的音乐歌词滚动播放效果

在现代的音乐播放应用中,歌词的展示和滚动播放已经成为了一个非常常见的功能。今天,我们将通过UniApp来实现一个漂亮的歌词滚动播放功能。我们将使用UniApp提供的组件和API来完成这个任务。 页面结构 在页面的模板部分,我们需要创建一个音频播放器和歌词展示区域。使用<scroll-view>组件来实现歌词的滚动效果。 <template><view class="audio-co

风格控制水平创新高!南理工InstantX小红书发布CSGO:简单高效的端到端风格迁移框架

论文链接:https://arxiv.org/pdf/2408.16766 项目链接:https://csgo-gen.github.io/ 亮点直击 构建了一个专门用于风格迁移的数据集设计了一个简单但有效的端到端训练的风格迁移框架CSGO框架,以验证这个大规模数据集在风格迁移中的有益效果。引入了内容对齐评分(Content Alignment Score,简称CAS)来评估风格迁移

Eclipse发布Maven项目到tomcat,无法加载到lib文件夹下的jar包

BMS 解决方法: 当我们发布web项目到tomcat时,访问地址时会报一个classnotfound的错误,但是eclipse中的项目中都已经添加了相应的类,有一种比较容易犯的错误是,你没有把额外所需的jar包加到tomcat中的lib文件夹中,在这里介绍一种在项目中直接添加jar包到lib目录下:  右键已创建的web项目——properties属性——点击Deployment Assem

1-3 微信小程序协同工作和发布

协同工作和发布 🥟🥞以权限管理需求为例 一个项目组,一般有不同的岗位,不同角色的员工同时参与项目成员 流程 成员管理的两个方面 不同项目成员对应的权限 版本

发布和查看探店笔记:

我的博客大纲 我的后端学习大纲 1.1.发布探店笔记: 此功能未用到redis a.数据库表: 1.探店相关表: b.探店有关接口: 1.图片上传和发布是调用了两个接口: 注意:修改图片上传的地址,建议直接放到你的Ngixn下的imgs目录 1.2.查看探店笔记: 此功能未用到redis a.需求说明: 1.点击探店首页的笔记,