前端灰度发布(定义 优点 原理 方式)

news2024/10/5 18:36:50

1. 什么是灰度发布?

灰度发布,又被称之为金丝雀发布,是指某次新发布功能特性和旧功能特性之间能够以平滑过渡的方式呈现给用户,就像金丝雀的羽毛一样多种颜色平滑渐变。

举个例子,某个已上线处于运行中的系统需要一次新的功能迭代,但是由于功能变动较大,所以发布需要考虑用户的使用反馈以及代码可能存在一些未知的异常,这时候则需要将新的功能逐步地一批一批的推送给用户。

在这个逐步放量的过程中,可以根据用户接受度(用户投诉多不多)和观察本次功能是否存在上线前未发现的异常,来决定是否继续发布推送新功能,如果新功能反馈较差或者存在功能异常问题,则停止放量或者回滚到之前稳定的版本,及时修改问题。

这样便避免一次推送情况下,如果出现问题则造成线上问题突然上升造成阻塞用户使用的问题。

2. 灰度发布的优点

  • 提前收集用户使用意见,及时完善产品功能
  • 控制未知异常只出现在小范围内,不影响大多数用户
  • 发现产品是否存在外在问题(如合规),可及时回滚至已旧版本

3.实现原理

在这里插入图片描述
其中最关键的一步就是判断灰度用户这一步。

4. 灰度发布的几种方式

4.1 服务端渲染应用

在返回客户端之前将将静态模板渲染好,前端灰度实在用户的请求返回之前就完成,客户端不做任何处理灰度相关的操作。原理如下图:
在这里插入图片描述
用户首先发起请求后,服务器并不会直接组装静态资源,而是先去灰度规则里获取名单,然后将灰度名单拿到进行判断处理来决定渲染那一套模板资源给到客户端,最终给处于灰度名单里的用户展示新版本页面,而非名单内的用户继续使用旧版本的页面内容,如需要放量时,直接在灰度规则里进行修改即可。

4.2 前后端半分离的应用

前后端半分离的应用是指在有一部分前端应用的html文件依旧在服务端上,但是实际上却在客户端渲染的。

4.3 客户端渲染的前端应用

目前来说最常见的一种部署类型,前端开发完成后,直接打包至CDN上,然后利用nginx来请求到静态资源,这时候CDN服务器并不会去做灰度判断相关的操作,即这时候不能让后端通过一段获取灰度逻辑来控制版本,而此时前端数据请求都是异步ajax的方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/185744.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

播放视频报403 forbidden的原因及解决方案

一、原因 1、原因:我们知道,在页面引入图片、JS 等资源,或者从一个页面跳到另一个页面,都会产生新的 HTTP 请求,浏览器一般都会给这些请求头加上表示来源的 Referrer 字段。图片服务器通过检测 Referrer 是否来自规定…

Cisco RV340命令执行漏洞(CVE-2022-20707)及关联历史漏洞分析

一、引言 本篇文章主要是对Cisco RV340命令执行漏洞(CVE-2022-20707)进行的研究分析,尽管利用此漏洞需要身份验证,但可以通过CVE-2022-20705绕过现有的身份验证机制实现无条件的命令执行。历史相关的漏洞还包括:CVE-2020-3451、CVE-2021-147…

客户案例 | 低代码上的西门子,工欲善其事必先利其器

关键发现 用户痛点:项目管理过程涉及的系统繁多,系统间状态不透明,数据查询困难;人工流程虽属个别,但易拉低总体效率并有可能出错;数据报告自动化程度低。 解决方案:利用西门子低代码开发平台开…

玩转电脑|WIN10如何添加打印机扫描到电脑

win10和win7 添加打印机扫描到电脑操作不一样,换了win10电脑后还是按照win7的方法进行添加,会发现win10系统添加京瓷6525FMP打印机的扫描地址时会出现链接错误,无法添加。是因为win10需要设置SMB权限之后,即可添加地址簿。一、配置…

OAuth2.0-授权码模式

解决问题 OAuth2.0授权码模式主要解决了信任问题:一个第三方网站需要访问我们Github上的数据(例如用户头像),那Github为什么要信任该网站?该对网站信任到什么程度? 如果彻底信任该网站,那么将…

LeetCode链表相关解法

LeetCode链表相关解法1.移除链表元素[203. 移除链表元素](https://leetcode.cn/problems/remove-linked-list-elements/)不设置头节点设置虚拟头节点2.设计链表[707. 设计链表](https://leetcode.cn/problems/design-linked-list/)3.反转链表[206. 反转链表](https://leetcode.…

使用Java8改造模板方法模式

目录 前言 以前的模板方法 Java 8 的函数式编程 Java 8以后的模板方法 总结 前言 我们在日常开发中,经常会遇到类似的场景:当要做一件事儿的时候,这件事儿的步骤是固定好的,但是每一个步骤的具体实现方式是不一定的。 通…

Hudi(14):Hudi集成Flink之核心参数设置

目录 0. 相关文章链接 1. 去重参数 2. 并发参数 2.1. 参数说明 2.2. 案例演示 3. 压缩参数 3.1. 参数说明 3.2. 案例演示 4. 文件大小 4.1. 参数说明 4.2. 案例演示 5. Hadoop 参数 Flink可配参数官网地址:All Configurations | Apache Hudi 0. 相关文…

Ubuntu 18.04 安装 nvidia 显卡驱动 离线安装 禁用 nouveau

Ubuntu 18.04 安装 nvidia 显卡驱动 离线安装1 系统2 查看显卡2.1 更新 pci.ids 文件3 安装显卡驱动 510.543.1 安装 nvtop4 禁用 nouveau5 安装 cuda 11.6.15.1 设置环境变量1 系统 # lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubu…

bpflock:基于eBPF实现的Linux设备安全审计工具

关于bpflock bpflock是一款基于 eBPF驱动的Linux设备安全审计工具,该工具使用了eBPF来帮助广大研究人员增强Linux设备的安全性。通过限制对各种Linux功能的访问,bpflock能够减少攻击面并阻止一些众所周知的攻击技术。 bpflock只允许类似容器管理器、sy…

区间一维dp史上最细总结(听了绝对会了,还不会的一定要进来)

目录 那年初夏(三) 引入 1.动态规划是什么? 2.什么是区间动态规划问题? 定义 性质 3.为何总是要问这种问题? 区间动态规划基本 思考 步骤(划重点) 例题精讲 1.最长上升子序列 题目描…

8个 数据库性能优化方案,你知道几个?(建议收藏)

毫不夸张的说咱们后端工程师,无论在哪家公司,呆在哪个团队,做哪个系统,遇到的第一个让人头疼的问题绝对是数据库性能问题。如果我们有一套成熟的方法论,能让大家快速、准确的去选择出合适的优化方案,我相信…

IB数学AA/AI应该如何选择?

IB数学怎么选课?AA,AI,SL,HL适合哪些学生?如何学习?IB数学:AA与AI,到底应该怎么选?IB数学AA有多难?要不要学数学AA HL?适合学生 IB数学AA AA HL偏…

【SpringCloud复习巩固】Feign

目录 一.HTTP客户端Feign 1.1RestTemplate方式调用存在的问题 1.2Feign的介绍 1.3Feign的使用 1.4自定义Feign的配置 1.4.1配置Feign日志的两种方式 1.5Feign性能优化 1.5.1Feign的性能优化-连接池配置 1.6Feign的最佳实践 一.HTTP客户端Feign 1.1RestTemplate方式调用…

自学软件测试,现在年薪30w,我骄傲了吗?

从小老一辈的人就经常说,小时候不好好读书,长大了只能去工地搬砖。我是从小都不爱读书的人,但在上学时期我一直有一种优越感,认为自己读书很有天赋,读书就是比别人厉害,但事实证明也确实如此,高…

[Android Studio]Android Studio Logcat日志样式设置

🟧🟨🟩🟦🟪 Android Debug🟧🟨🟩🟦🟪 Topic 发布安卓学习过程中遇到问题解决过程,希望我的解决方案可以对小伙伴们有帮助。 📋笔记目…

c++IO流!!!开工了!!!

1.什么是IO流 流是若干个字节组成的字节序列,简单来说指的是就是数据从一端到另一端 键盘到程序——>标准输入流程序到屏幕——>标准输出流程序到文件——>文件流 流类体系:一些体系管理输入和输出的流的操作 输入流输出流文件流 ios类 istream…

【DockerCE】使用docker配置和运行HertzBeat

HertzBeat是一款免Agent的监控平台,拥有强大自定义监控能力,可以对应用服务、中间件、数据库、操作系统、云原生等进行监控,配置监控告警阈值,以及告警通知(邮件、微信、钉钉、飞书)。关于这个软件的介绍,我这里就不做…

困扰多年的Docker和iptables的恩怨,今天解决了

先介绍下我的使用环境: 操作系统:CentOS7.9 Docker版本:20.10.21 事情是这样的,安装完Docker的时候,容器镜像都跑起来了,端口也放行了,就是无法控制系统防火墙friewalld,查看firewalld状态报错 …

【微信小游戏开发笔记】第一节:微信小游戏Cocos开发环境配置

微信小游戏开发环境配置 微信小游戏开发前,首先要做一些准备: 注册 微信公众平台 账号,获取小游戏AppID(小程序ID)。安装 微信开发者工具,用于编译小游戏。安装 Visual Studio Code,用于编写游戏逻辑代码。安装并配置…