美文网首页
灰度发布

灰度发布

作者: 大吕泽 | 来源:发表于2019-12-28 15:30 被阅读0次

设置用户标识策略

用于区分用户,辅助数据统计,保证灰度发布过程中用户体验的连贯性(避免用户在新旧版本中跳变,匿名Web应用比较容易有这个问题)。匿名Web应用可采用IP、Cookie等,需登录的应用可直接采用应用的帐号体系。

目标用户选取策略

即选取哪些用户先行体验新版本,是强制升级还是让用户自主选择等。可考虑的因素很多,包括但不限于地理位置、用户终端特性(如分辨率、性能)、用户自身特点(性别、年龄、忠诚度等)。对于细微修改(如文案、少量控件位置调整)可直接强制升级,对于类似新浪微博改版这样的大型升级,应让用户自主选择,最好能够提供让用户自主回滚至旧版本的渠道。对于客户端应用,可以考虑类似Chrome的多channel升级策略,让用户自主选择采用stable、beta、unstable channel的版本。在用户有明确预期的情况下自行承担试用风险。

提供数据反馈入口

用户数据反馈:在得到用户允许的前提下,收集用户的使用新版本应用的情况。如客户端性能、客户端稳定性、使用次数、使用频率等。用于与旧版本进行对比,决策后续是继续扩大新版本投放范围还是回滚。服务端数据反馈:新版本服务端性能、服务端稳定性等,作用与用户数据反馈类似。

新版本回滚策略

当新版本灰度发布表现不佳时,应回滚至旧版本。对于纯粹的Web应用而言,回滚相对简单。主要难点在于用户数据的无缝切换。对于客户端应用,如果期待用户自行卸载新版本另行安装旧版本,成本和流失率都太高。可以考虑通过快速另行发布新版本,利用升级来“回滚”,覆盖上次灰度发布的修改。对于移动客户端,新版本发布成本较高,需要Appstore、Market审核。尽量将客户端打造成Web App,会更有利于升级和回滚。

后端服务一般都会在负载均衡层(nginx)做灰度方案等,业界成熟的方案大多为:

1. 简单灰度逻辑通过 nginx 配置做规则判断(路由、参数、ip等)然后动态分配接口流量切换至a/b服务。

2. 复杂灰度逻辑通过 nginx+lua 结合自己业务来做流量的灰度、切换等。

前端静态资源要做到灰度或 A/B 测试的效果,几种方案为:

1. JS 代码中做埋点判断,通过对用户特征(UA、cookie、或后端提供字段等)的判断显示为不同功能等。

2. 服务端动态渲染,在服务端通过特征规则判断显示不同分支版本或功能。

3. 控制入口文件,使用 nginx 判断变量,动态分配接口流量切换至a/b服务,静态文件将流量切换至a/b路径或主机。

方案1,对业务的入侵性大,灰度规则与代码耦合,增加了文件的大小。

方案2,因为控制了渲染入口,能做的很多,但也增加了服务端渲染的复杂度,使用场景有限。

方案3,前端入口一般都是一个 html 文件,后再去加载各种静态资源,通过对入口文件的控制,结合 nginx 方案可以做到很好的灰度和 A/B 测试方案。

基于nginx的灰度发布方案

一般有三种方式:nginx + lua,nginx 根据cookie分流,nginx 根据来源IP分流

客户端可根据变量动态设置 cookie,然后 nginx 判断 cookie 值来分流。如根据 cookie 键为 version 的值为 V1 则转发到 hilinux_01

相关文章

  • 灰度发布用户选取

    近日接触的项目涉及到“灰度发布”的概念,这是第一次接触灰度发布,因此对灰度发布用户选取的方式十分好奇。“灰度发布(...

  • Openshift上使用Nginx Pod作灰度发布

    参考文章:使用 Nginx 实现灰度发布 什么是灰度发布 【百度百科】灰度发布(又名金丝雀发布)是指在黑与白之间,...

  • 灰度发布discovery原理源码分析及多发布分组设计与实现

    关键字:saas灰度 灰度发布 装饰模式 桥接模式 spring cloud 公司 saas 平台,灰度发布用于先...

  • 浅谈灰度发布

    什么是灰度发布 所谓灰度发布就是将软件新功能版本先发布到灰度区进行可控范围的验证,如果验证结果良好,再进行正式发布...

  • 实现一套灰度发布系统需要考虑哪些问题?

    要了解一个灰度发布系统的功能,个人觉得有必要先了解灰度发布的概念定义和灰度发布流程,从概念和流程中明确灰度的目的并...

  • 什么是灰度发布,灰度测试。

    什么是灰度发布? 灰度发布,又名金丝雀发布,或者灰度测试,是指在黑与白之间能够平滑过渡的一种发布方式。在其上可以进...

  • 灰度发布

    灰度发布:灰度很简单,发布很复杂 - 程序人生的博客 - CSDN博客 灰度发布常见一般有三种方式 - 蒋大帅-蒋...

  • 如何进行灰度发布,考虑啥

    灰度发布的定义: 灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部...

  • 灰度发布

    灰度发布 更新日志: 一、定义 按照一定策略选取部分用户,让他们先行体验新版本的应用,通过收集这部分用户对新版本应...

  • 灰度发布

    所谓灰度发布,是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部用户继续用A...

网友评论

      本文标题:灰度发布

      本文链接:https://www.haomeiwen.com/subject/upysoctx.html