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

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

相关文章

html 滚动条滚动过快会留下边框线的解决方案

《html滚动条滚动过快会留下边框线的解决方案》:本文主要介绍了html滚动条滚动过快会留下边框线的解决方案,解决方法很简单,详细内容请阅读本文,希望能对你有所帮助... 滚动条滚动过快时,会留下边框线但其实大部分时候是这样的,没有多出边框线的滚动条滚动过快时留下边框线的问题通常与滚动条样式和滚动行

uniapp小程序中实现无缝衔接滚动效果代码示例

《uniapp小程序中实现无缝衔接滚动效果代码示例》:本文主要介绍uniapp小程序中实现无缝衔接滚动效果的相关资料,该方法可以实现滚动内容中字的不同的颜色更改,并且可以根据需要进行艺术化更改和自... 组件滚动通知只能实现简单的滚动效果,不能实现滚动内容中的字进行不同颜色的更改,下面实现一个无缝衔接的滚动

macOS Sequoia 15.5 发布: 改进邮件和屏幕使用时间功能

《macOSSequoia15.5发布:改进邮件和屏幕使用时间功能》经过常规Beta测试后,新的macOSSequoia15.5现已公开发布,但重要的新功能将被保留到WWDC和... MACOS Sequoia 15.5 正式发布!本次更新为 Mac 用户带来了一系列功能强化、错误修复和安全性提升,进一步增

Maven 依赖发布与仓库治理的过程解析

《Maven依赖发布与仓库治理的过程解析》:本文主要介绍Maven依赖发布与仓库治理的过程解析,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下... 目录Maven 依赖发布与仓库治理引言第一章:distributionManagement配置的工程化实践1

使用Python构建一个Hexo博客发布工具

《使用Python构建一个Hexo博客发布工具》虽然Hexo的命令行工具非常强大,但对于日常的博客撰写和发布过程,我总觉得缺少一个直观的图形界面来简化操作,下面我们就来看看如何使用Python构建一个... 目录引言Hexo博客系统简介设计需求技术选择代码实现主框架界面设计核心功能实现1. 发布文章2. 加

售价599元起! 华为路由器X1/Pro发布 配置与区别一览

《售价599元起!华为路由器X1/Pro发布配置与区别一览》华为路由器X1/Pro发布,有朋友留言问华为路由X1和X1Pro怎么选择,关于这个问题,本期图文将对这二款路由器做了期参数对比,大家看... 华为路由 X1 系列已经正式发布并开启预售,将在 4 月 25 日 10:08 正式开售,两款产品分别为华

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc