由于业务需要,要做灰度发布测试,刚开始考虑通过IP来做判断,分发不同的后端,但是由于IP不好确定,有的客户端IP不固定,所以考虑用cookie来做逻辑很简单,如下图: 在nginx做这个很简单,两个方法,map或if首先看map怎么做为了模拟环境,我又不想多开服务器,所以起了个httpd,配置两个vhost,当作两个后端,如下: 我给这两个vhost,配置不同
1.通过Ingress-nginx实现灰度发布场景一: 将新版本灰度给部分用户假设线上运行了一套对外提供 7 层服务的 Service A 服务,后来开发了个新版本 Service A’ 想 要上线,但又不想直接替换掉原来的 Service A,希望先灰度一小部分用户,等运行一段时间足够稳定 了再逐渐全量上线新版本,最后平滑下线旧版本。这个时候就可以利用 Nginx Ingress 基于 Head
转载 2024-02-19 11:12:59
274阅读
今天是元宵,祝大家元宵节快乐!在日常的工作中,我们会经常对应用进行发版升级,在互联网公司尤为频繁,主要是为了满足快速的业务发展。我们经常用到的发布方式有滚动更新、蓝绿发布、灰度发布。滚动更新:依次进行新旧替换,直到旧的全部被替换为止。蓝绿发布:两套独立的系统,对外提供服务的称为绿系统,待上线的服务称为蓝系统,当蓝系统里面的应用测试完成后,用户流量接入蓝系统,蓝系统将称为绿系统,以前的绿系统就可以销
转载 2024-01-31 01:18:35
72阅读
nginx.ingress.kubernetes.io/canary-by-header 基1于Header的流量切分,适用于灰度发布。如果请求头中包含指定的header名称,并且值为“always”,就将该请求转发给Canary Ingress定义的对应后端服务。如果值为“never”则不转发,可用于回滚到旧版本。如果为其他值则忽略该annotation,并通过优先级将请求流量分配到其他规则。
转载 2024-04-01 05:36:44
42阅读
nginx+lua+redis实现灰度发布:灰度发布是指在黑白之间能够平滑过渡的一种方式AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面 来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。灰度发布可以保证应用系统的稳定,降低产品升级影响的用户范围;也可以按照
转载 2024-03-22 13:11:40
63阅读
# Nginx与Redis灰度发布 在软件开发过程中,灰度发布是一种常用的上线方式,通过渐进式地将新版本的功能发布给一部分用户,以降低风险并收集反馈。本文将介绍如何结合Nginx和Redis实现灰度发布的方式。 ## Nginx Nginx是一个高性能的Web服务器,也可以作为反向代理服务器使用。在灰度发布中,我们可以利用Nginx的反向代理功能,将请求分发给不同的后端服务。 下面是一个简
原创 2024-06-05 06:06:01
46阅读
通过nginx GeoIP模块来限制某些国家或者具体地区访问网站,在国内一般用于外贸站,因为很多外贸公司走货的价格关系,是不希望国内用户看见的。除了某些CDN或者付费接口之外,也可以通过本身的服务器来操作,或者浏览器判断等。我之前就是用浏览器来判断的,如果浏览器的语言是中文ZH,那么网站就跳转到不能访问的地址,这算是一个很粗暴的方法,但是有时候可能又需要用户稍微变通一下,让国内用户可以看见。那么这
转载 2024-09-23 10:31:13
52阅读
目录一、什么叫灰度发布?二、配置文件以及lua脚本编写1、nginx.conf 添加两个灰度发布的环境  #client2 灰度环境地址   #client1生产环境地址2、gray.lua一、什么叫灰度发布?灰度发布,简单来说,就是根据各种条件,让一部分用户使用旧版本,另一部分用户使用新版本。 一般是产品上线一个功能,希望在线上可以进行A/B testin
前言       随着公司业务规模扩大,传统的架构已无法支撑业务量阶梯式的增长,应用发布也必须迎来调整。之前的发布方式,需要通过脚本切换nginx,然后通过ansible进行批量发布;由于业务的特殊性质,原有方案一旦上线代码出现bug或者人为出现操作失误,将导致大面积应用无法提供服务,为了避免故障发生造成毁灭性的后果,决定分布进行架构调整
转载 2024-01-04 06:12:06
113阅读
简介Nginx-ingress 是一个以 Nginx 为核心组件的 K8S 负载均衡工具,支持通过配置 Ingress 规则的 Annotations 来实现不同场景下的灰度发布和测试。Ingress Annotations 支持以下 4 种 Canary 规则:nginx.ingress.kubernetes.io/canary-by-header:基于 Request Header 的流量切分
一、灰度发布原理说明灰度发布在百度百科中解释:灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面 来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。 这里的用于WEB系统新代码的测试发布,让一部分
转载 2024-04-13 17:15:43
107阅读
由于项目中用到了nginx+FastCGI相关内容,所以这段时间学习了一下,顺便记下相关内容。我是在远程工作机上实验的,有个缺点就是没有root权限,所以有些步骤我就没做了,比如make install(nginx)、添加到服务管理列表等等,仅在make之后二进制所在目录上进行执行,使用上完全没问题。还有个优点就是有些库已经全部安装好了,比如openssl、zlib等等,少了一些步骤。一.ngin
背景测试环境并行测试:一个服务有多个需求同时进行测试,需要nginx根据特定信息将流量转发到指定测试机。全链路压测:流量无区分,影响线上用户,只能在业务低峰进行压测,需要值守,成本较高,需要能够流量隔离,随时可以进行压测。灰度发布:需要nginx根据指定信息将流量转发到指定的灰度机器上。ngx_lua模块ngx_lua是Nginx的一个模块,将Lua嵌入到Nginx中,从而可以使用Lua来编写脚本
目标灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B 上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。1.2架构图1.3方案对比1、在代码中做。一套线上环境,代码中
1. 前言  互联网产品有一个特点,就是不停的升级,升级,再升级。一般采用敏捷开发的团队,基本上保持每周一次的发布频率,系统升级总是伴随着风险,新旧版本兼容的风险,用户使用习惯突然改变而造成用户流失的风险,系统down机的风险.....为了避免这些风险,很多产品都采用了灰度发布的策略,其主要思想就是把影响集中到一个点,然后再发散到一个面,出现意外情况后很容易就回退。很长时间,我们都一直在
周6参加华东运维大会,听了人家淘宝用nginx的一些场景,其中AB的灰度测试可能适用场景会比较普遍,当然大会上,并没有详细讨论实现。 大概需求是: 网站类业务在更新new feature时,并不想让全量用户看到,可以针对地区性用户开放此feature 当然其中的new feature server和normal server不必要一定得是物理上的服务器,可以是任意逻辑上分开的服务和http
一、nginx安装1、在官网下载相应版本的nginx的tar包2、上传到/app/tools目录下3、进入目录/app/tools/nginx-1.18.0./configure make make install whereis nginx -- /usr/local/nginx4、启动nginxcd /usr/local/nginx/sbin ./nginx # 启动 ./nginx
转载 2023-08-30 13:57:38
88阅读
灰度发布使用背景 最近公司一直在推进DevOps,主要目标是减少对个人的依赖,降低团队之间的损耗,在保证质量的前提下,快速交付价值。在实际执行过程中表现出来的就是服务拆分粒度尽可能细,服务每次上线功能尽可能少,发布节奏尽可能快; 服务必须做到可灰度、可监控、可回滚。至于监控先暂且不聊,如何做到灰度发布升级以及回滚呢?整个PaaS平台是基于Kubernetes进行建设,Kubernetes资源对象D
ingress-nignx基于request实现灰度
原创 2022-08-17 15:34:28
192阅读
灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。 灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。 灰 ...
转载 2021-07-17 16:28:00
257阅读
2评论
  • 1
  • 2
  • 3
  • 4
  • 5