前后端分离后灰度发布实现方式

简介: 前后端分离后灰度发布实现方式

1、什么是灰度发布
灰度发布, 也叫金丝雀发布。是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度,而我们平常所说的金丝雀部署也就是灰度发布的一种方式。

2、常见灰度发布策略
策略一:基于客户端公网ip判断是否需要走灰度环境。

策略二:基于用户判断是否走灰度环境。

3、常见实现方式
对于前后端分离的项目,一般通过nginx 转发解决跨域问题。

3.1 只有服务需要灰度环境
当前端没有修改或者修改不影响逻辑的时候,基本只要控制服务端有灰度环境,这种情况实现如下:

1、通过nginx+lua+redis,判断是否走灰度环境,其中redis用户存储走灰度环境用,lua在nginx 里面读取用户id,并且获取客户端请求用户id(一般通过请求头获取),通过比较判断,将在reids存储的用户转发到灰度环境网关或者服务端。(注意灰度环境的服务和正式服务注册中心不是同一个或者网络不是同一个)

2、通过服务网关辨别是否转发到灰度服务端。以SpringCloudGateway作为网关框架,nacos作为注册中、为例,具体实现方式:

定义一个灰度标记Holder

相关文章
|
前端开发
前端接受后端文件流并下载到本地的方法
前端接受后端文件流并下载到本地的方法
3238 0
|
5月前
|
人工智能 API 人机交互
AI Agent 职业路线全解析:从入门到专家的能力构建与进阶指南
本文系统解析AI Agent开发者成长路径:从“模型中心”转向“系统中心”,涵盖认知架构、记忆管理、工具集成与多Agent协作四大核心技术;提出“应用落地→架构设计→领域专家”三阶进阶路线;揭示其在人机交互变革、工程溢价与技术边界拓展中的长期价值。(239字)
706 1
|
10月前
|
存储 人工智能 自然语言处理
深度解析智能体工作流(Agentic Workflows):核心概念、模式与应用
本文系统解析智能体工作流(Agentic Workflow),结合AI智能体的推理、工具与记忆能力,实现复杂任务的动态执行。内容涵盖核心概念、关键模式及实际应用,帮助读者全面理解其价值与挑战。
7567 1
|
11月前
|
Java 测试技术 API
从一起知名线上故障,谈配置灰度发布的重要性
一起知名线上故障:一个新功能在没有经过充分测试和灰度发布的情况下被直接部署到生产环境,并且处理推送关键配置没有灰度过程。导致全球大规模服务中断约7小时。故障由空指针异常引发,暴露了错误处理不足和灰度机制缺失等问题。配置灰度发布,如Nacos支持的IP或标签灰度,可有效降低风险,提升系统稳定性。
|
Kubernetes 测试技术 数据库
详解微服务应用灰度发布最佳实践
相对于传统软件研发,微服务架构下典型的需求交付最大的区别在于有了能够小范围真实验证的机制,且交付单位较小,风险可控,灰度发布可以弥补线下测试的不足。本文从 DevOps 视角概述灰度发布实践,介绍如何将灰度发布与 DevOps 工作融合,快来了解吧~
34035 19
|
监控 前端开发 JavaScript
Sentry 监控部署与使用(详细流程)
Sentry 监控部署与使用(详细流程)
3444 0
|
Kubernetes 监控 测试技术
k8s学习--基于Ingress-nginx实现灰度发布系统
k8s学习--基于Ingress-nginx实现灰度发布系统
918 2
k8s学习--基于Ingress-nginx实现灰度发布系统
|
Kubernetes 测试技术 应用服务中间件
基于 Nginx Ingress + 云效 AppStack 实现灰度发布
本文将演示结合云效 AppStack,来看下如何在阿里云 ACK 集群上进行应用的 Ingress 灰度发布。
65573 25
|
Web App开发 开发者
|
运维 监控 前端开发
微服务灰度发布的底层原理是什么?
微服务灰度发布的底层原理是什么?
332 2