由于业务需要,要做灰度发布测试,刚开始考虑通过IP来做判断,分发不同的后端,但是由于IP不好确定,有的客户端IP不固定,所以考虑用cookie来做逻辑很简单,如下图:       在nginx做这个很简单,两个方法,map或if首先看map怎么做为了模拟环境,我又不想多开服务器,所以起了个httpd,配置两个vhost,当作两个后端,如下:       我给这两个vhost,配置不同            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-07 13:12:44
                            
                                95阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            灰度发布,简单来说,就是根据各种条件,让一部分用户使用旧版本,另一部分用户使用新版本。nginx 的语法本身可以看作是一门小型的编程语言,通过简单的编程,可以轻松实现基于IP的灰度发布。需求:搭建准生产环境,供开发人员/运维在线上做最后的调整。如果OK,直接用rsync推送至生产环境。条件:办公室网络出口有固定IP解决办法:nginx 负载均衡器判断客户端IP地址,如果是办公室IP,则反向代理到准            
                
                    
                        
                                                            
                                                                        
                                                                推荐
                                                                                        原创
                                                                                    
                            2014-04-25 20:39:06
                            
                                10000+阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            灰度发布,简单来说,就是根据各种条件,让一部分用户使用旧版本,另一部分用户使用新版本。nginx 的语法本身可以看作是一门小型的编程语言,通过简单的编程,可以轻松实现基于IP的灰度发布。需求:搭建准生产环境,供开发人员/运维在线上做最后的调整。如果OK,直接用rsync推送至生产环境。条件:办公室网络出口有固定IP解决办法:nginx 负载均衡器判断客户端IP地址,如果是办公室IP,则反向代理到准            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                            精选
                                                        
                            2016-01-12 17:31:54
                            
                                811阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            灰度发布,简单来说,就是根据各种条件,让一部分用户使用旧版本,另一部分用户使用新版本。nginx 的语法本身可以看作是一门小型的编程语言,通过简单的编程,可以轻松实现基于IP的灰度发布。需求:搭建准生产环境,供开发人员/运维在线上做最后的调整。如果OK,直接用rsync推送至生产环境。条件:办公室网络出口有固定IP解决办法:nginx 负载均衡器判断客户端IP地址,如果是办公室IP,则反向代理到准            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2016-12-16 16:48:15
                            
                                1676阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            nginx 根据IP 进行灰度发布            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2018-03-23 14:37:52
                            
                                936阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            就是根据各种条件,让一部分用户使用旧版本,另一部分用户使用新版本。nginx 的语法本身可以看作是一门小型的编程语言,通过简单的编程,可以轻松实现基于IP的灰度发布。需求:搭建准生产环境,供开发人员/运维在线上做最后的调整。如果O            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-03 19:35:35
                            
                                261阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            概述上两篇文章,我们讲解了灰度组件的需求和设计的思路。不管之前讲的限流、幂等框架,还是现在讲的灰度组件,功能性需求都不复杂,相反,非功能性需求是开发的重点。本章,按照上篇文章的灰度组件的设计思路,讲解如何进行编码实现。不过,本章对实现的讲解,前前面两个实战项目有所不同。在前两个项目中,我们都是手把手从最基础的 MVP 代码将其。然后讲解如何 review 代码发现问题、重构代码解决问题,最终得到一            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-22 16:19:48
                            
                                153阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            概述在项目迭代的过程中,不可避免需要上线。上线对应着部署,或者重新部署;部署对应着修改;修改则意味着风险。灰即在黑与白之间,灰度发布就是指能够平滑过渡的一种发布方式。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度,而我们平常所说的AB测试、金丝雀发布等也就是灰度发布的不同方式。蓝绿发布蓝绿发布是指不停老版本,部署新版本然后进行测试,确认没有问题之后,将流量切到            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-28 18:12:33
                            
                                178阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            周6参加华东运维大会,听了人家淘宝用nginx的一些场景,其中AB的灰度测试可能适用场景会比较普遍,当然大会上,并没有详细讨论实现。 大概需求是: 网站类业务在更新new feature时,并不想让全量用户看到,可以针对地区性用户开放此feature   当然其中的new feature server和normal server不必要一定得是物理上的服务器,可以是任意逻辑上分开的服务和http            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-09 14:51:33
                            
                                30阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1.通过Ingress-nginx实现灰度发布场景一: 将新版本灰度给部分用户假设线上运行了一套对外提供 7 层服务的 Service A 服务,后来开发了个新版本 Service A’ 想 要上线,但又不想直接替换掉原来的 Service A,希望先灰度一小部分用户,等运行一段时间足够稳定 了再逐渐全量上线新版本,最后平滑下线旧版本。这个时候就可以利用 Nginx Ingress 基于 Head            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-19 11:12:59
                            
                                274阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            如果是内部IP,则反向代理到 pre_prd (预发布环境);如果不是则反向代理到 prd            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-11-16 19:48:08
                            
                                153阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前言       随着公司业务规模扩大,传统的架构已无法支撑业务量阶梯式的增长,应用发布也必须迎来调整。之前的发布方式,需要通过脚本切换nginx,然后通过ansible进行批量发布;由于业务的特殊性质,原有方案一旦上线代码出现bug或者人为出现操作失误,将导致大面积应用无法提供服务,为了避免故障发生造成毁灭性的后果,决定分布进行架构调整            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-04 06:12:06
                            
                                113阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            nginx.ingress.kubernetes.io/canary-by-header
基1于Header的流量切分,适用于灰度发布。如果请求头中包含指定的header名称,并且值为“always”,就将该请求转发给Canary Ingress定义的对应后端服务。如果值为“never”则不转发,可用于回滚到旧版本。如果为其他值则忽略该annotation,并通过优先级将请求流量分配到其他规则。            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-01 05:36:44
                            
                                42阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            今天是元宵,祝大家元宵节快乐!在日常的工作中,我们会经常对应用进行发版升级,在互联网公司尤为频繁,主要是为了满足快速的业务发展。我们经常用到的发布方式有滚动更新、蓝绿发布、灰度发布。滚动更新:依次进行新旧替换,直到旧的全部被替换为止。蓝绿发布:两套独立的系统,对外提供服务的称为绿系统,待上线的服务称为蓝系统,当蓝系统里面的应用测试完成后,用户流量接入蓝系统,蓝系统将称为绿系统,以前的绿系统就可以销            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-31 01:18:35
                            
                                72阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            由于项目中用到了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、在代码中做。一套线上环境,代码中            
                
         
            
            
            
            灰度发布使用背景 最近公司一直在推进DevOps,主要目标是减少对个人的依赖,降低团队之间的损耗,在保证质量的前提下,快速交付价值。在实际执行过程中表现出来的就是服务拆分粒度尽可能细,服务每次上线功能尽可能少,发布节奏尽可能快; 服务必须做到可灰度、可监控、可回滚。至于监控先暂且不聊,如何做到灰度发布升级以及回滚呢?整个PaaS平台是基于Kubernetes进行建设,Kubernetes资源对象D            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-22 23:49:32
                            
                                188阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            # 什么是灰度发布,以及灰度发布A/B测试在一般情况下,升级服务器端应用,需要将应用源码或程序包上传到服务器,然后停止掉老版本服务,再启动新版本。但是这种简单的发布方式存在两个问题,一方面,在新版本升级过程中,服务是暂时中断的,另一方面,如果新版本有BUG,升级失败,回滚起来也非常麻烦,容易造成更长时间的服务不可用。为了解决这些问题,人们研究出了多种发布策略,下面我们一一介绍。## 蓝绿部署所谓蓝            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-15 00:07:54
                            
                                90阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、灰度发布原理说明灰度发布在百度百科中解释:灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面 来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。 这里的用于WEB系统新代码的测试发布,让一部分            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-13 17:15:43
                            
                                107阅读
                            
                                                                             
                 
                
                                
                    