首页 > 其他分享 >几种灰度发布方案

几种灰度发布方案

时间:2023-04-04 18:37:45浏览次数:20  
标签:方案 逻辑 上线 分发 环境 流量 几种 灰度

方案一
业务层通过参数进行逻辑业务选择,将指定参数分发到新逻辑,另一部分依旧使用旧逻辑,动态调整算法逻辑参数来实现灰度比例。如:对userId取模(即L=userId%10),L<N(N=1)的流量走新逻辑(即10%流量),动态配置+缓存实现,逐步调大N的值。

缺点:
1.业务逻辑耦合较高,代码侵入较大,开发和验证成本都较高,上线后版本要去删除该逻辑代码;
2.这种模式下

2.1 如果一次性全量服务上线,再进行参数计算流量控制,可能上线服务存在其他隐藏BUG;
2.2 如果仅上线替换一部分服务,分布式微服务集群中可能对业务的灰度连贯性不友好。如:期望同一用户请求始终在灰度(->A3->B3->C3->..)环境,实际可能变成->A3-B1->C2。

方案二
引入接口版本号,新老版本接口并存,比如 /v1/api 和 /v2/api。前端使用/v2/api版本,当过去一段稳定期后(可以是登录态时间失效后),就可下掉/v1/api版本。

优点:
1.不存在兼容性问题,风险较低
缺点:
1.业务逻辑耦合较高,代码侵入较大,开发和验证成本都较高,上线后版本要去删除该逻辑代码;
2.如果一次性全量服务上线,可能上线服务存在其他隐藏BUG(如:误修改到老逻辑等);

方案三

微服务场景下,通过命名空间等措施将生产环境隔离成相互独立但运行逻辑相同的两套环境。
前后变更不兼容或数据连贯性要求高的场景:
通过Nginx+Lua进行参数、IP或PATH等路由分发,将指定参数(如:userId)、IP或PATH流量分发到A3/B3(灰度)环境进行灰度验证,旨在将同一客户端流量始终分发到同一环境,通过控制Nginx内分发策略来调整比重。
前后变更兼容且数据连贯性要求不高的场景:
可以纯粹通过权重随机分发流量到灰度环境验证。

优点:
1.对业务代码和前端无侵入
2.策略更新上相对较快
缺点:
1.Nginx配置逻辑控制和工作量偏重
2.需要运维参与
3.灰度独立环境时,如果灰度环境资源不够情况下,可能不适合流量比重逐步放大到100%

方案四

微服务场景下,通过命名空间等措施将生产环境隔离成相互独立但运行逻辑相同的两套环境。
通过前后端定制策略,也可以结合CDN资源策略数据,统一进行前端域名前缀控制,通过nginx根据域名不同进行路由,将grey-bus.xx.com请求路由到灰度环境。

优点:
1.方式简单,降低nginx控制复杂度和后端业务代码基础信息保持的消耗
2.可以作为备用域名使用,当主域名受到攻击时可以进行相对快速切换
缺点:
1.路由策略相对固定,策略更新调整成本和灵活度相对较低,需要更新前端
2.灰度独立环境时,如果灰度环境资源不够情况下,可能不适合流量比重逐步放大到100%
3.多客户端时带来控制逻辑分散,维护成本上升问题

方案五

微服务场景下,通过命名空间等措施将生产环境隔离成相互独立但运行逻辑相同的两套环境。
引入网关层,可以结合配置中心,在网关层进行策略选择,将欲分发的流量控制分发到灰度环境即可。

优点:
1.对业务层代码和前端无侵入
2.策略更新上相对较快,灵活性上有一定限制
缺点:
1.Nginx配置逻辑控制和工作量偏重
2.灰度独立环境时,如果灰度环境资源不够情况下,可能不适合流量比重逐步放大到100%

标签:方案,逻辑,上线,分发,环境,流量,几种,灰度
From: https://www.cnblogs.com/gaoyanbing/p/17287327.html

相关文章

  • 一张图看懂神策数据汽车行业解决方案
    ......
  • 查看hbase表没有,但是新建却显示存在这个表的问题解决方案
    转:https://blog.csdn.net/leng91060404/article/details/106956315zookeeper数据存储及查看hbase信息1.zookeeper数据存储:1.1内存数据存储、磁盘数据存储.    内存数据存储:    数据模型是一棵树。包括所有节点路径,节点信息,ACL等。    DataTree:所有节点信息  ......
  • 智能物料柜方案——基于物联网的智能仓储管理系统
    智能物料柜方案是一种基于物联网技术的智能仓储管理系统,它可以实现对物料的自动化管理、监控和控制。智能物料柜方案包括硬件设备、软件平台和网络连接,可以满足各种规模和需求的企业和组织。硬件设备包括智能柜、传感器、控制器等,它们可以实现对物料的存储、取出、归还等操作,并且可......
  • 【GiraKoo】重置Android Studio环境的几个方案
    【GiraKoo】重置AndroidStudio环境的几个方案AndroidStudio经常在编译时,发现一些奇奇怪怪的编译/运行问题。明明是很小的改动,但是出现了一些不相关的错误。搞不清楚究竟是什么原因导致的。这时候,就需要考虑重置AndroidStudio环境的几个方案。InvalidateCaches在"File"菜......
  • Kubernetes——问题与解决方案一、k8s重启报错 :The connection to the server 192.168
    摘要Kubernetes运行过程中出现的各种问题,因此本人整理出本人遇到的有关于的k8s的相关问题和解决方案一、k8s重启报错:Theconnectiontotheserver192.168.102.149:6443wasrefused1.1现象k8s重启报错#kubectlgetpodsTheconnectiontotheserverxxx:6443wasrefused......
  • 浅谈移动端过长文本溢出显示省略号的实现方案
    vivo互联网技术微信公众号 作者:何彦军目前在移动端开发的展示界面中,如果一段文本的数量过长,受限于屏幕的宽高等因素,有可能不能完全显示,这个时候就会把溢出的文本显示成省略号。最近就亲身经历了一系列类似的需求,于是这里做个总结和记录。首先一个最基本的需求就是当文本超过一行......
  • 高并发系统设计——“三高”解决方案
    摘要提到互联网系统设计,你可能听到最多的词儿就是“三高”,也就是“高并发”“高性能”“高可用”,它们是互联网系统架构设计永恒的主题。在前两节课中,我带你了解了高并发系统设计的含义,意义以及分层设计原则,接下来,我想带你整体了解一下高并发系统设计的目标,然后在此基础上,进入我们今......
  • SpringBoot 跨域 解决方案
    SpringBoot跨域看大部分文章都是通过WebMvcConfigurer来处理的,这样的话会导致其他配置紊乱发一下我常用的配置importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.cors.C......
  • win11中本地组策略编辑器(gpedit.msc)打不开解决方案
    1,有内容需要用到本地组策略编辑器,结果发现竟然打不开了。后来百度了一下组策略的位置,去找了下果然没有。(下图是解决了问题的截图,没有选中那个文件)  2,新建一个TXT,复制以下内容@echooffpushd"%~dp0"dir/bC:\Windows\servicing\Packages\Microsoft-Windows-GroupPolicy-Cl......
  • 【AutoHotkey】笔记本键盘没有Home键和End键的解决方案
    problem笔记本键盘没有小键盘,所以少了Home键,End键等一系列键。编辑文本的时候就十分不方便solution可以创建键盘快捷键(键盘映射)(找一组平时用不到的热键)把ctrl+[映射为Home把ctrl+]映射为Endcodes软件可以用Autohotkey,配置code.ahk如下(拖入下载的软件即可运行)^[::Home^]::End#......