Nginx灰度升级实现说明

数通畅联主打SOA综合应用集成、数据治理分析产品和解决方案,公司以前不管是集成开发项目、还是开发集成项目,项目中的升级产品都是人工手动升级,没有一个渐进的过程都是直接切换。这种方式没有灰度处理,如果代码存在问题影响面就会很大,在云平台模式引入后,后续项目中的产品升级都将支持灰度升级方式,做到更优雅更平衡的升级。本文档将介绍如何配置灰度升级。

 1基础介绍

 下文分别从名词解释,灰度升级的作用,灰度升级方案3个方面展开介绍:

1.1名词解释 

灰度升级:灰度升级是一种升级时候的平滑切换,当有些服务器的客户端要进行升级,可以只对其中一个客户端升级并测试,确保程序无误后再全局升级。也就是说所有服务器可以不同步更新升级,首次只是对一个地区的服务器进行更新升级,待升级完成确保无误后,再对其他地区的服务器进行统一的更新升级。

灰度期:灰度发布从开始到结束的这一段时间,被称为灰度期。

Nginx:Nginx不仅是一个十分轻量级的HTTP服务器,也是一个高性能的HTTP和反向代理服务器,同时还是一个IMAP/POP3/SMTP代理服务器。目前很多国内网站采用Nginx作为Web服务器,如国内知名的新浪、163、腾讯、Discuz、豆瓣等。本次灰度升级就是通过调整Nginx配置文件的方式实现。

1.2灰度作用

1.及早获得用户的意见反馈,完善产品功能,提升产品质量;

2.让用户参与产品测试,加强与用户的互动;

3.降低产品升级所影响的用户范围,降低升级风险,避免升级事故。

1.3升级方案

实现思路方向可分为两种,一种是在代码中实现,一种是在接入层中实现。灵活的灰度方案一般需要在接入层实现,也就是自定义负载均衡策略实现。本篇文档介绍的就是这种在接入层实现,使用Nginx实现负载均衡的策略。

1.3.1实现思路

1.3.1.1在代码中

一套线上环境,在代码中做开关,对于不同的用户走不同的逻辑。

优点:灵活,粒度细;一套代码(环境)运维成本低;

缺点:灰度逻辑侵入代码。

 1.3.1.2在接入层

多套(隔离的)线上环境,接入层针对不同用户转发到不同的环境中。

你可能感兴趣的:(技术文档,Nginx灰度升级,云平台)