一篇文章理解AB测试和灰度发布

一、灰度发布

1.1 简介

灰度发布,是指黑与白之间,能够平滑过渡的一种发布方式。
通过不同策略对用户进行分流,不同的用户组使用不同的应用版本。

1.2 优缺点

  • 优点
    互联网服务变动频繁,发布周期短。速度和质量总是难以双全。灰度发布有以下优点:
    (1)降低发布风险,减少影响范围
    (2)可以灰度测试账号,降低测试依赖,减少自测的数据构造成本
    (3)方便回滚
  • 缺点
    (1)开发、测试和部署的成本较高
    (2)数据存储层需要兼容

二、AB测试

2.1 简介

AB Test是一种灰度方式,通常差异度较小,侧重从多种方案中选择最优方案。

简单的说,就是为同一个目标制定两个方案(比如两个页面),让一部分用户使用 A 方案,另一部分用户使用 B 方案, 记录下用户的使用情况,看哪个方案更符合。

一般来说,每个设计方案大体上是相同的,只是某一个地方有所不同,比如某出排版、文案、图片、颜色等。然后对不同的用户展示不同的方案。

11464886-11179c42692decbd.png

2.2 优缺点

  • 优点:避免选择分歧和反复试错,优化决策,最终方案有数据支持
  • 缺点:开发和测试周期增加,多套方案出现want的可能性高

2.3 核心思想

  • 多方案并行测试
  • 同一个用户(一般通过cookie控制)展示同一版本
  • 以某种规则优胜劣汰

2.4 实现步骤

  1. 定义策略:确定分流的目的、放量规模、递增的频率、回滚的策略等;
  2. 筛选用户:确定分流访问的用户特征,定义规则(根据IP,user_id,cookie,业务需求(商户)等因素,指定分流策略)或导入名单;
  3. 访问分流:技术支撑,根据分流策略向用户展示不同内容;
  4. 发布运行:根据不同的实现方案进行部署;
  5. 采集分析:收集数据,比较不同的方案效果,确定最终方案。

2.5 实现方案

关键点:控制逻辑的颗粒度

2.5.1 Nginx控制

两套代码分布部署在不同的机器,通过Nginx配置分流
大多数公司采用这种方案(google,阿里,腾讯,新浪等)

优缺点
优点:对业务侵入性小,灰度发布和正式上线都非常方便
缺点:开发流程是分支开发模式;代码部署比较复杂

实现

  • Nginx 根据权重分流
  • Nginx + Lua + redis/memcache
  • Nginx + cookie
11464886-16ff91901a863b1b.png

2.5.2 后台代码控制

业务逻辑中控制分流

优缺点
优点:对外部系统以来小,全部逻辑都在业务服务器完成,适合主干开发的模式;
缺点:对业务侵入性大,灰度发布不方便,代码维护还有整洁度下降。

实现

  • 路由层控制
  • Control 层控制重定向

2.5.3 前台代码控制

js 通过 if-else 控制分流

优缺点和第二种类似,比较适合差异度小的测试

两个版本只有一个较小的区域不一样,我们可以同时将两个区域的 HTML 都加载到当前页面中,先用 CSS 把他们隐藏起来(也可以默认显示一个版本),等通过 JS 判断该显示哪个版本后,再控制对应版本的 CSS 显示。

测试区域比较大,代码比较多,或者需要后台比较多的计算资源,如果一开始就把两个版本的 HTML
全部都加载当当前页面中,就会需要比较大的开销(比如带宽、后台计算量)。这种情况下,我们可以先把测试区留空,之后再用Ajax的方式延迟加载。

2.5.4 第三方框架

三、总结

以上就是我们为大家总结的AB测试和灰度发布了,可以说这两者是一个包含的关系,灰度发布方法里面是可以包含AB测试的,反之,AB测试是灰度发布众多方法当中的其中一个

参考资料

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
灰度发布是一种能够在黑与白之间平滑过渡的发布方式,也被称为金丝雀发布。它可以保证整体系统的稳定性,在初始灰度阶段就可以发现和调整问题,以确保其影响度。灰度发布的一种方式是AB测试,其中一部分用户继续使用A版本,另一部分用户开始使用B版本。如果用户对B版本没有反对意见,那么可以逐步扩大范围,将所有用户迁移到B版本上。这种方式可以避免中断,并且能够及时发现和解决问题。\[1\] 另一种发布方式是蓝绿部署,它需要考虑同时处理微服务架构应用和传统架构应用的情况。在蓝绿部署中,需要提前考虑数据库与应用部署的同步迁移和回滚问题,并且需要有基础设施的支持。在非隔离基础架构上执行蓝绿部署时,存在蓝色环境和绿色环境被摧毁的风险。滚动发布是另一种发布方式,当确信对外提供服务的蓝色系统工作正常且不再需要绿色系统时,蓝色系统正式成为对外提供服务的系统,成为新的绿色系统,而原先的绿色系统可以被销毁并释放资源,用于部署下一个蓝色系统。\[2\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [【云原生】灰度发布、蓝绿发布、滚动发布灰度发布解释](https://blog.csdn.net/zhanremo3062/article/details/126053944)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值