使用nginx实现的灰度发布思路研究(待实践)
2017-02-26 04:31
639 查看
灰度发布也叫 A/B 测试,原理是一套系统在实现了负载均衡,全国节点都部署了系统之后,可以在新功能上线后,让一小部分用户先使用,从中收集使用信息来做对比和发现bug,及时调整,最终分发到全国的节点。
实现灰度发布的几个思路:
1、以nginx为例的分流,IP是最终的关键,从而以IP围绕中心,可以衍生出很多定义,比如用户标识、用户分组、设备ID及分组等,但是最终还是离不开IP去分流。
2、nginx支持模块开发,如果在一套成熟的系统中,可以开发自己的模块,从而脱离IP为分流导向,指定自己的精确分流的导向,比如设备ID这样更小颗粒度的定向风流。
3、nginx支持一些lua脚本的配置,比如lua更新nginx的配置,可以通过热重启重新加载lua脚本配置,但是现在我发现还有一种更简单的方法,就是nginx本身的配置文件,针对特定的IP分流配置,可以通过热重启nginx(也叫重新加载nginx的配置文件)来进行重新加载。
4、要实现灰度发布,还有一种非常重要的点,就是日志的收集,针对负载均衡的系统,由于节点很多,日志的收集非常重要,所以需要一套统一的日志平台进行收集和分析平台。
实现的具体方式:
在github上,我发现了在发布时,通过修改配置文件的形式,让nginx进行热重启重新加载配置文件的方式去实现;比如实现一套管理nginx的配置系统,再结合配置系统开发自己特定的业务发布平台,然后生成的配置文件上传到nginx上,最终重新让nginx加载新配置文件。
下面是我收集的一些链接,可以作为参考:
https://github.com/CNSRE/ABTestingGateway
https://github.com/boylegu/regal
https://github.com/Web4Nginx/Web4Nginx
https://github.com/pbchen/versionSwitchTool
https://github.com/zenxds/grey
https://github.com/songweihang/knight
https://github.com/xausky/ngx_http_dyabt_module
在github上搜索的关键字:灰度部署,灰度发布,AB TEST
现在这里做个思路研究记号,后续再实现。
实现灰度发布的几个思路:
1、以nginx为例的分流,IP是最终的关键,从而以IP围绕中心,可以衍生出很多定义,比如用户标识、用户分组、设备ID及分组等,但是最终还是离不开IP去分流。
2、nginx支持模块开发,如果在一套成熟的系统中,可以开发自己的模块,从而脱离IP为分流导向,指定自己的精确分流的导向,比如设备ID这样更小颗粒度的定向风流。
3、nginx支持一些lua脚本的配置,比如lua更新nginx的配置,可以通过热重启重新加载lua脚本配置,但是现在我发现还有一种更简单的方法,就是nginx本身的配置文件,针对特定的IP分流配置,可以通过热重启nginx(也叫重新加载nginx的配置文件)来进行重新加载。
4、要实现灰度发布,还有一种非常重要的点,就是日志的收集,针对负载均衡的系统,由于节点很多,日志的收集非常重要,所以需要一套统一的日志平台进行收集和分析平台。
实现的具体方式:
在github上,我发现了在发布时,通过修改配置文件的形式,让nginx进行热重启重新加载配置文件的方式去实现;比如实现一套管理nginx的配置系统,再结合配置系统开发自己特定的业务发布平台,然后生成的配置文件上传到nginx上,最终重新让nginx加载新配置文件。
下面是我收集的一些链接,可以作为参考:
https://github.com/CNSRE/ABTestingGateway
https://github.com/boylegu/regal
https://github.com/Web4Nginx/Web4Nginx
https://github.com/pbchen/versionSwitchTool
https://github.com/zenxds/grey
https://github.com/songweihang/knight
https://github.com/xausky/ngx_http_dyabt_module
在github上搜索的关键字:灰度部署,灰度发布,AB TEST
现在这里做个思路研究记号,后续再实现。
相关文章推荐
- 使用 nginx 实现 灰度发布
- 使用Nginx+Lua+Redis构建灰度发布环境
- 灰度发布-基于nginx的cookie实现
- Spring Cloud实践:降级、限流、滚动、灰度、AB、金丝雀的实现思路
- 借住Nginx实现负载均衡和灰度发布的功能
- 基于cookie在nginx实现业务灰度发布 推荐
- 使用Sqlserver事务发布实现数据同步
- 发布论文《SNMP网管系统关键问题的研究与实现》
- ASP.NET 实践:使用用户控件实现 Web 部件的个性化
- 用 CashFilter 实现页面级缓存实践 - OSCache使用
- 使用nginx来负载均衡 本文在window与linux下配置nginx实现负载
- Nginx实践1 利用proxy_store实现高效的静态文件分布缓存服务器
- 使用NGiNX_HTTP_Push_Module实现简单的服务器推送
- 使用Sqlserver事务发布实现数据同步
- 使用Sqlserver事务发布实现数据同步
- 使用Sqlserver事务发布实现数据同步(转)
- 使用VB在U盘扇区中读写字符,经过很长时间的研究,终于实现了。
- 在MogileFS中使用nginx代替perlbal实现internal redirect
- 使用IronPython实现策略中心思路
- 使用nginx发布网站