不容闪失的灰度发布简介

article/2025/11/5 8:03:35

目录

  • 1 线上项目灰度发布的重大意义
  • 2 项目发布问题剖析
  • 3 解决方案
    • 3.1 蓝绿部署
    • 3.2 滚动发布
    • 3.3 灰度发布
    • 3.4 灰度发布方法


1 线上项目灰度发布的重大意义

在这里插入图片描述

上面这个软件相信大家一定不陌生,很多人和我一样一定还欠他钱!支付宝经历了十多年,从未停止更新过,app从最初简单设计到现在的扁平化设计,一直在更新,但奇怪的是它从未停过服务,而且越用越顺畅。不停服务就实现软件更新,这是怎么做到的呢?这个问题也是线上项目需要迫切解决的问题。除了支付宝,还有QQ、微信、抖音、头条等各大app,都是不停服务更新软件,他们用的都是什么黑科技呢?学习了灰度发布,也能让你的软件一样不停机优雅的更新。

2 项目发布问题剖析

项目发布的时候,普通程序员理解,大概是安装个Tomcat发布一下,域名解析一下保障项目能正常提供服务就可以了。但这种操作在真正打大型互联网公司中是一个都不值得拿出来说的基本过程,真正大型互联网公司发布一个稳定项目有很多因素考虑。

对于运维工程司而言,每次项目发布都是有风险,比如发布步骤遗漏、发布流程不规范、一些隐藏的BUG等都有可能导致线上的服务不稳定,如果项目对应库版本升级了,很有可能造成项目无法运行的后果。

对于产品经理而言, 在产品设计上他们都有各自不同的观点,都有各自的设计方案(A方案、B方案),如果每个方案都很优秀,该如何抉择?谁官大发布谁的?谁拍桌子拍的狠听谁的?都不是,应该由用户选择,针对不同用户进行试点使用,让部分特定用户使用A方案,部分用户使用B方案,其他用户仍然使用之前稳定的方案,最终哪套方案受欢迎就发布指定版本。

3 解决方案

3.1 蓝绿部署

在这里插入图片描述
所谓蓝绿部署,是指同时运行两个版本的应用,如上图所示,蓝绿部署的时候,并不停止掉老版本,而是直接部署一套新版本,等新版本运行起来后,再将流量切换到新版本上。但是蓝绿部署要求在升级过程中,同时运行两套程序,对硬件的要求就是日常所需的二倍,比如日常运行时,需要10台服务器支撑业务,那么使用蓝绿部署,你就需要购置二十台服务器。

3.2 滚动发布

在这里插入图片描述
所谓滚动升级,就是在升级过程中,并不一下子启动所有新版本,是先启动一台新版本,再停止一台老版本,然后再启动一台新版本,再停止一台老版本,直到升级完成,这样的话,如果日常需要10台服务器,那么升级过程中也就只需要11台就行了。
但是滚动升级有一个问题,在开始滚动升级后,流量会直接流向已经启动起来的新版本,但是这个时候,新版本是不一定可用的,比如需要进一步的测试才能确认。那么在滚动升级期间,整个系统就处于非常不稳定的状态,如果发现了问题,也比较难以确定是新版本还是老版本造成的问题。为了解决这个问题,我们需要为滚动升级实现流量控制能力。

3.3 灰度发布

在这里插入图片描述
灰度发布也叫金丝雀发布,起源是,矿井工人发现,金丝雀对瓦斯气体很敏感,矿工会在下井之前,先放一只金丝雀到井中,如果金丝雀不叫了,就代表瓦斯浓度高。在灰度发布开始后,先启动一个新版本应用,但是并不直接将流量切过来,而是测试人员对新版本进行线上测试,启动的这个新版本应用,就是我们的金丝雀。如果没有问题,那么可以将少量的用户流量导入到新版本上,然后再对新版本做运行状态观察,收集各种运行时数据,如果此时对新旧版本做各种数据对比,就是所谓的A/B测试。

当确认新版本运行良好后,再逐步将更多的流量导入到新版本上,在此期间,还可以不断地调整新旧两个版本的运行的服务器副本数量,以使得新版本能够承受越来越大的流量压力。直到将100%的流量都切换到新版本上,最后关闭剩下的老版本服务,完成灰度发布。如果在灰度发布过程中(灰度期)发现了新版本有问题,就应该立即将流量切回老版本上,这样,就会将负面影响控制在最小范围内。

3.4 灰度发布方法

灰度发布用户群体通知的方法比较多,可以有这些方式:
产品Q群、产品微信群:向固定群体发送产品更新链接,指定群体能使用新版本。
内部用户:通知公司内部用户测试试用。
app自升级:可以根据时间段,用户版本,升级请求数量,实际升级。
灰度发布分类:
1)web页面灰度:按照ip或者用户id切流啊。具有随机性,可以控制比例。
2)服务端灰度:考验主系分能力了,可以做逻辑切换开关,按照义务相关属性逐渐切流。
3)客户端灰度:一般按照用户逐渐推送包,主要是PC端(WIN,MAC)、移动端(安卓,OS)内部大规模内测。


http://chatgpt.dhexx.cn/article/BOT4P4Kx.shtml

相关文章

不停服更新应用的方案:蓝绿发布、滚动发布、灰度发布

原文网址:不停服更新应用的方案:蓝绿发布、滚动发布、灰度发布_IT利刃出鞘的博客-CSDN博客 简介 本文介绍不停服更新应用的方案:蓝绿发布、滚动发布、灰度发布。 升级服务器的应用时,要停止掉老版本服务,将程序上传…

互联网产品的灰度发布

互联网产品的灰度发布 在传统软件产品发布过程中(例如微软的Windows 7的发布过程中),一般都会经历Pre-Alpha、Alpha、Beta、Release candidate(RC)、RTM、General availability or General Acceptance (GA)等几个阶段(参考Softwa…

【产品】什么是灰度发布

灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式,一级一级的发布逐渐的扩大发布范围,最后达到系统的完全上线。  在其上可以进行A/B testing,即让一部分用户继续用产品特性 A,一部分用户开始用产品特性 B,如果用户对 B 没有什么反对意见,那么逐步扩大范围,把所…

灰度发布 java_当我们说做灰度发布的时候我们在做什么

现在对于稳定性的要求越来越高,同时在维护的应用中有一个正在进行迁移,需要采取一些措施来实现平稳升级和迁移。采用灰度发布是一个可行的方案。 什么是灰度发布 百度百科上的解释是这样的 灰度发布是指在黑与白之间,能够平滑过渡的一种发布方…

版本升级之灰度发布

在项目迭代的过程中,不可避免需要“上线”。上线对应着部署,或者重新部署;部署对应着修改,修改则意味着风险。应用程序升级面临最大挑战是新旧业务切换,将软件从测试的最后阶段带到生产环境,同时要保证系统…

产品灰度发布

一、什么是灰度发布(灰度测试) 如果软件要在不久的将来推出一个全新的功能,或者做一次比较重大的改版的话,要先进行一个小范围的尝试工作,然后再慢慢放量,直到这个全新的功能覆盖到所有的系统用户&…

灰度发布

1、什么是灰度发布,有哪些好处? 答:灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。 在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用…

灰度发布究竟是啥

概述 目前产品优化迭代的方式,通常是直接将某版本上线发布给全部用户,一旦遇到线上事故(或BUG),对用户的影响极大,解决问题周期较长,甚至有时不得不回滚到前一版本,严重影响了用户体…

项目灰度发布功能设计

平台项目迭代发布过程中,有一些功能发布时会产生较大的影响,一旦出现问题,会影响用户使用体验,降低产品信誉。为了解决这一问题,在重要功能发布时需要引入灰度发布功能,借助一小部分用户在生产环境进行功能…

【华为云技术分享】从零搭建一个灰度发布环境

DevUI是一支兼具设计视角和工程视角的团队,服务于华为云DevCloud平台和华为内部数个中后台系统,服务于设计师和前端工程师。 官方网站:devui.design Ng组件库:ng-devui(欢迎Star) 引言 灰度发布&#x…

什么是灰度发布

灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面 来。…

准确率(accuracy),精确率(Precision),召回率(Recall)和综合评价指标(F1-Measure )

自然语言处理(ML),机器学习(NLP),信息检索(IR)等领域,评估(evaluation)是一个必要的工作,而其评价指标往往有如下几点:准确率(accuracy),精确率(Precision),召回率(Recall)和F1-Measure。 本文将简单介绍其中几个概念。中文中这几个评价指标翻译各有不同,所以一般情…

多分类评价指标:准确率、精确率、召回率、F1值

准确率、精确率、召回率、F1值 定义: 准确率(Accuracy):正确分类的样本个数占总样本个数, A (TP TN) / N 精确率(Precision)(查准率):预测正确的正例数据占预测为正例数据的比…

准确率(Accuracy) VS 精确率(Precision) VS 召回率(Recall)

准确率(Accuracy) VS 精确率(Precision) VS 召回率(Recall) 在信息检索中, 准确率通常用于评价结果的质量, 而召回率用来评价结果的完整性。 我们的目标是训练一个模型,它可以将这个二维空间中的新数据点分成红色和蓝色两类。 数据有两种状态:测试集数据和预测结…

真正率、假正率、真负率

True Positive (真正, TP)被模型预测为正的正样本; True Negative(真负 , TN)被模型预测为负的负样本 ; False Positive (假正, FP)被模型预测为正的负样本; False Negat…

关于召回率和准确率的理解

最近一直在做相关推荐方面的研究与应用工作,召回率与准确率这两个概念偶尔会遇到, 知道意思,但是有时候要很清晰地向同学介绍则有点转不过弯来。 召回率和准确率是数据挖掘中预测、互联网中的搜索引擎等经常涉及的两个概念和指标。 召回率&am…

分类器性能指标错误率、正确率、召回率

前言 在使用机器学习的方法解决分类问题时,我们通常需要一个指标来衡量模型的性能,以下介绍一些常用的性能指标,在实际应用中可以依照应用需求采用相应的指标。 错误率 错误率是使用最普遍、最简单同时又是最粗糙的分类指标。其计算方法为…

分类模型的评估标准(精确率召回率准确率)

对模型进行评估时,可以选择很多种指标,但不同的指标可能得到不同的结果,如何选择合适的指标,需要取决于任务需求。 针对二元分类结果,常用的评估指标有如下三个:查准率(Precision)、…

准确率、精确率、召回率、F1-measure

文章目录 准确率(Accuracy)精确率(precision)召回率(recall)F1-measure值学习理解网站 -p’(Predicted)n’(Predicted)p(Actual)True PositiveFalse Negtiven(Actual)False PositiveTrue Negtive 准确率(Accuracy) A No.Samples Predicted Correctly Total No.of Samples T …

评价指标(一)精确率,召回率,F1-score

1. 精确率-Precision、召回率Recall 先来讲一下精确率(Precision)和准确率(Recall),首先要明确一点,精确率不等于准确率(Accuracy),两者是不同的,后面也会讲到准确率。在信息检索里,精确率和召…