A/B 测试基于用户请求的元信息将流量路由到新版本,这是一种基于请求内容匹配的灰度发布策略。
有匹配特定规则的请求才会被引流到新版本,常见的做法包括基于 Http Header 和 Cookie。

  1. 基于 Http Header 方式,例如 User-Agent 的值为 Android 的请求 (来自安卓系统的请求)可以访问新版本,其他系统仍然访问旧版本。
  2. 基于 Cookie 方式,Cookie 中通常包含具有业务语义的用户信息,例如普通用户可以访问新版本,VIP 用户仍然访问旧版本。

如图,某服务当前版本为 v1,现在新版本 v2 要上线。希望安卓用户可以尝鲜新功能,其他系统用户保持不变。
image.png

A/B 测试的优点:

  1. 可以对特定的请求或者用户提供服务新版本,新版本故障影响范围小;
  2. 需要构建完备的监控平台,用于对比不同版本之间请求状态的差异。

A/B 测试的缺点:

  1. 仍然存在资源冗余,因为无法准确评估请求容量;
  2. 发布周期长。