nginx+lua+redis实现灰度发布:灰度发布是指在黑白之间能够平滑过渡的一种方式AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面 来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。灰度发布可以保证应用系统的稳定,降低产品升级影响的用户范围;也可以按照
转载 2024-03-22 13:11:40
63阅读
 server {         listen       80;         server_name  i.shequba
原创 2017-06-12 16:46:49
1303阅读
今天是元宵,祝大家元宵节快乐!在日常的工作中,我们会经常对应用进行发版升级,在互联网公司尤为频繁,主要是为了满足快速的业务发展。我们经常用到的发布方式有滚动更新、蓝绿发布、灰度发布。滚动更新:依次进行新旧替换,直到旧的全部被替换为止。蓝绿发布:两套独立的系统,对外提供服务的称为绿系统,待上线的服务称为蓝系统,当蓝系统里面的应用测试完成后,用户流量接入蓝系统,蓝系统将称为绿系统,以前的绿系统就可以销
转载 2024-01-31 01:18:35
72阅读
1.通过Ingress-nginx实现灰度发布场景一: 将新版本灰度给部分用户假设线上运行了一套对外提供 7 层服务的 Service A 服务,后来开发了个新版本 Service A’ 想 要上线,但又不想直接替换掉原来的 Service A,希望先灰度一小部分用户,等运行一段时间足够稳定 了再逐渐全量上线新版本,最后平滑下线旧版本。这个时候就可以利用 Nginx Ingress 基于 Head
转载 2024-02-19 11:12:59
274阅读
由于业务需要,要做灰度发布测试,刚开始考虑通过IP来做判断,分发不同的后端,但是由于IP不好确定,有的客户端IP不固定,所以考虑用cookie来做逻辑很简单,如下图: 在nginx做这个很简单,两个方法,map或if首先看map怎么做为了模拟环境,我又不想多开服务器,所以起了个httpd,配置两个vhost,当作两个后端,如下: 我给这两个vhost,配置不同
nginx.ingress.kubernetes.io/canary-by-header 基1于Header的流量切分,适用于灰度发布。如果请求头中包含指定的header名称,并且值为“always”,就将该请求转发给Canary Ingress定义的对应后端服务。如果值为“never”则不转发,可用于回滚到旧版本。如果为其他值则忽略该annotation,并通过优先级将请求流量分配到其他规则。
转载 2024-04-01 05:36:44
42阅读
# 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阅读
目录前言灰度配置共享配置场景测试加载顺序总结前言 前几篇介绍了Nacos的配置中心的特性,今天介绍一下Nacos的高级特性,也是比较实用的特性,共享配置灰度配置灰度配置 灰度配置指的是指定部分客户端IP进行新配置的下发,其余客户端配置保持不变,用以验证新配置对客户端的影响,保证配置的平稳发布。灰度配置是生产环境中一个比较重要的功能,对于保证生产环境的稳定性非常重要。在1.1.0中,Nacos
目录一、什么叫灰度发布?二、配置文件以及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 的流量切分
最近参与了开发了几个新项目,其实每次上新项目的时候,都会发出感慨:搞新项目中最难的其实都不是写代码,而是部署环境,因为每次部署环境都会遇到各种各样的环境问题,比如代码更上去后不生效、请求打不到机器上、调用数据库连接、内网接口等访问不通、灰度配置不生效等问题,所以每次都要和运维老哥一起掰扯好几天。好了,言归正传,今天就跟大家聊下我司新服务的灰度配置规则和原理。1、灰度概念和访问灰度流程:首先先讲解下
转载 2023-06-17 13:35:29
366阅读
1. 前言  互联网产品有一个特点,就是不停的升级,升级,再升级。一般采用敏捷开发的团队,基本上保持每周一次的发布频率,系统升级总是伴随着风险,新旧版本兼容的风险,用户使用习惯突然改变而造成用户流失的风险,系统down机的风险.....为了避免这些风险,很多产品都采用了灰度发布的策略,其主要思想就是把影响集中到一个点,然后再发散到一个面,出现意外情况后很容易就回退。很长时间,我们都一直在
一、灰度发布原理说明灰度发布在百度百科中解释:灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面 来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。 这里的用于WEB系统新代码的测试发布,让一部分
转载 2024-04-13 17:15:43
107阅读
背景测试环境并行测试:一个服务有多个需求同时进行测试,需要nginx根据特定信息将流量转发到指定测试机。全链路压测:流量无区分,影响线上用户,只能在业务低峰进行压测,需要值守,成本较高,需要能够流量隔离,随时可以进行压测。灰度发布:需要nginx根据指定信息将流量转发到指定的灰度机器上。ngx_lua模块ngx_lua是Nginx的一个模块,将Lua嵌入到Nginx中,从而可以使用Lua来编写脚本
由于项目中用到了nginx+FastCGI相关内容,所以这段时间学习了一下,顺便记下相关内容。我是在远程工作机上实验的,有个缺点就是没有root权限,所以有些步骤我就没做了,比如make install(nginx)、添加到服务管理列表等等,仅在make之后二进制所在目录上进行执行,使用上完全没问题。还有个优点就是有些库已经全部安装好了,比如openssl、zlib等等,少了一些步骤。一.ngin
目标灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B 上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。1.2架构图1.3方案对比1、在代码中做。一套线上环境,代码中
LED显示屏行业内所称的灰度也可以称之为LED亮度。灰度等级也称中间色调,主要用于传送图像、图片、视频、分别有16级、32级、64级三种方式,它采用矩阵处理方式将文件的像素处理成16、32、64级层次,使传送的图片更清晰。无论是全彩屏,还是双色屏,要显示图像或动画都需要对构成象素的每个LED发光灰度进行调节,其调节的精细程度就是我们通常所说的灰度等级。主控箱从计算机的显示卡中获取一屏象素的各色亮度
周6参加华东运维大会,听了人家淘宝用nginx的一些场景,其中AB的灰度测试可能适用场景会比较普遍,当然大会上,并没有详细讨论实现。 大概需求是: 网站类业务在更新new feature时,并不想让全量用户看到,可以针对地区性用户开放此feature 当然其中的new feature server和normal server不必要一定得是物理上的服务器,可以是任意逻辑上分开的服务和http
  • 1
  • 2
  • 3
  • 4
  • 5