1. 前言  互联网产品有一个特点,就是不停升级,升级,再升级。一般采用敏捷开发团队,基本上保持每周一次发布频率,系统升级总是伴随着风险,新旧版本兼容风险,用户使用习惯突然改变而造成用户流失风险,系统down机风险.....为了避免这些风险,很多产品都采用了灰度发布策略,其主要思想就是把影响集中到一个点,然后再发散到一个面,出现意外情况后很容易就回退。很长时间,我们都一直在
今天是元宵,祝大家元宵节快乐!在日常工作中,我们会经常对应用进行发版升级,在互联网公司尤为频繁,主要是为了满足快速业务发展。我们经常用到发布方式有滚动更新、蓝绿发布、灰度发布。滚动更新:依次进行新旧替换,直到旧全部被替换为止。蓝绿发布:两套独立系统,对外提供服务称为绿系统,待上线服务称为蓝系统,当蓝系统里面的应用测试完成后,用户流量接入蓝系统,蓝系统将称为绿系统,以前绿系统就可以销
转载 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+lua+redis实现灰度发布:灰度发布是指在黑白之间能够平滑过渡一种方式AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面 来。灰度发布可以保证整体系统稳定,在初始灰度时候就可以发现、调整问题,以保证其影响度。灰度发布可以保证应用系统稳定,降低产品升级影响用户范围;也可以按照
转载 2024-03-22 13:11:40
63阅读
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阅读
目录一、什么叫灰度发布?二、配置文件以及lua脚本编写1、nginx.conf 添加两个灰度发布环境  #client2 灰度环境地址   #client1生产环境地址2、gray.lua一、什么叫灰度发布?灰度发布,简单来说,就是根据各种条件,让一部分用户使用旧版本,另一部分用户使用新版本。 一般是产品上线一个功能,希望在线上可以进行A/B testin
前言       随着公司业务规模扩大,传统架构已无法支撑业务量阶梯式增长,应用发布也必须迎来调整。之前发布方式,需要通过脚本切换nginx,然后通过ansible进行批量发布;由于业务特殊性质,原有方案一旦上线代码出现bug或者人为出现操作失误,将导致大面积应用无法提供服务,为了避免故障发生造成毁灭性后果,决定分布进行架构调整
转载 2024-01-04 06:12:06
113阅读
灰度发布使用背景 最近公司一直在推进DevOps,主要目标是减少对个人依赖,降低团队之间损耗,在保证质量前提下,快速交付价值。在实际执行过程中表现出来就是服务拆分粒度尽可能细,服务每次上线功能尽可能少,发布节奏尽可能快; 服务必须做到可灰度、可监控、可回滚。至于监控先暂且不聊,如何做到灰度发布升级以及回滚呢?整个PaaS平台是基于Kubernetes进行建设,Kubernetes资源对象D
  看电视追求是极致观影体验,但是观影体验绝对不仅仅决定于电视画质,还有一些参数需要用户来微调才能取得最好效果。  调节图像对比度  对比度太强会使图像层次减少,显得生硬,丢失许多图像细节,而且还会发生伴音干扰图像现象。对比度调得过低,也会使图像层次减少,看起来很费力,因此需要正确地使用对比度旋钮,调出能明显分辨六个灰度等级,使最左一级刚好不亮,而最后一级亮度适当。当关掉彩色饱和度钮时
转载 2024-01-30 07:47:50
80阅读
简介Nginx-ingress 是一个以 Nginx 为核心组件 K8S 负载均衡工具,支持通过配置 Ingress 规则 Annotations 来实现不同场景下灰度发布和测试。Ingress Annotations 支持以下 4 种 Canary 规则:nginx.ingress.kubernetes.io/canary-by-header:基于 Request Header 流量切分
在现代软件开发中,**Java灰度控制设计**成为了一种重要策略。灰度发布允许你在不影响所有用户情况下,逐步推出新功能与更新。这不仅提升了用户体验,还帮助开发团队快速迭代和修正问题。接下来,我将详细说明如何实现Java灰度控制设计,包括环境配置、编译过程、参数调优、定制开发、调试技巧以及性能对比等几个方面。 ## 环境配置 首先,我们需要配置开发环境。以下是所需工具及其版本: | 工具
原创 5月前
4阅读
# Java 灰度控制测试 在现代软件开发中,灰度发布是一种重要技术,在不影响所有用户情况下测试新版本特性。通过灰度控制,可以逐渐将新功能推向部分用户,从而在真实环境中进行测试。本文将介绍什么是灰度控制,如何在 Java 中实现灰度控制,并附带相应代码示例。 ## 一、什么是灰度控制灰度控制,又称为灰度发布,是一种将新版本功能逐步推向用户方法。通过这种方法,开发者可以在较小用户
原创 10月前
118阅读
1. 对URL进行单独过滤发布upstream A { ip_hash; server 10.0.XX.XX:9000; server 10.0.XX.XX:9010; ...
转载 2019-12-05 09:05:00
190阅读
2评论
1. 对URL进行单独过滤发布upstream A { ip_hash; server 10.0.XX.XX:9000; server 10.0.XX.XX:9010; }upstream B { #server 10.0.5.76:9000; server 10.0.5.76:9010;}serve...
一、灰度发布原理说明灰度发布在百度百科中解释:灰度发布是指在黑与白之间,能够平滑过渡一种发布方式。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
  • 1
  • 2
  • 3
  • 4
  • 5