Ab Test 衍生功能之锦上添花 —— 目标流量筛选

Posted 魏小言

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ab Test 衍生功能之锦上添花 —— 目标流量筛选相关的知识,希望对你有一定的参考价值。


Ab Test 衍生功能之锦上添花 —— 目标流量筛选

Ab Test 在互联网产品精细化运营中发挥着重要且出色的作用,通过实验的形式,以数据为依据,科学决策,使产品在市场中保持强劲竞争力!

前段时间,小结了关于 Ab Test 的基础知识及 Ab Test 通用平台的搭建 ,今天要对通用平台增添几分色彩,对其附加功能做些许补充,如筛选…

条件筛选

当我们进行实验配置之后,生产环境流量就会遵循 “随机” & “正交” 原则进行实验匹配,依托命中的实验配置进行渲染及相关逻辑。

上述整体链路听起来没毛病,不过好像缺点什么?跟我来品一下,有这样一个场景:

我们需要对年龄在 18~23 之间的年轻人做一个关于音乐类型喜爱度的实验,用于音乐类的消息定向推送,提高相关点击及转化。

如果是你面临这个问题,你会怎么做呢?

作为一个 Ab Test 项目负责人,我们需要考量是否需要对平台新增一些衍生功能,比如条件筛选 —— 把流量进行过滤,满足定向实验的需求,完善平台功能,锦上添花!

整体设计

在前段时间搭建的 Ab Test 平台基础上,我准备在新增条件筛选功能,以业务中最常用的 “ 用户属性 ” 、” 设备信息 “、” 自定义信息 “ 为例进行设计,抛砖引玉,希望能给各位带来思考!

  • 用户属性 :即用户画像,属性包含:年龄、地区、注册时间、活跃等级、等等
  • 设备信息:用户设备号、产品版本、等等
  • 自定义信息:集合、交集、子集、等等

「自定义指配置值与实际值的映射关系。比如,实验配置:[“feed”,“main”],目标值:“feed",交集、子集皆会命中实验」

条件筛选功能的添加将会在实验黑白名单之后,分流 Hash 之前。因为在实验组维度,我们支持黑白名单机制,筛选功能需在其之后;而如果为通过筛选,则非目标流量,无需进行分流 Hash ,故筛选功能在分流 Hash 之前。

详细设计

那么我们有了整体的构想之后,如何进行详细的编排设计呢?

这里针对条件筛选功能,做了详细的勾画,并做了红色突出。

  • 三种条件筛选之间并行,实验配置了不同的筛选,必然是需要,故之间呈现 “ & ” 关系;
  • 设备筛选,可以包含多组,组内呈现 “ & ” 关系,组间呈现 “ | ” 关系;
  • 自定义筛选,组间 、组内 呈现 “ & ” 关系;
  • 用户筛选,组间、组内 呈现 “ 自定义 ” 关系;

代码设计

关于功能的代码设计,这里以高性能为目标,进行设计。


这里将服务物料和服务进行拆分,异步执行,几近全力压缩服务平响。

在 2 核 10 个长链接的环境下,通过 wrk 2 进行压测,服务 P99 < 1ms , QPS 1000 。

性能优化

针对性能,我们可以通过 pprof 火焰图 「 各语言适宜的调优工具 」进行观察,定位耗时部分,针对行优化。

下面列一些常见的优化点:
1、Json 原生包效率较低
2、循环 API 调用
3、递归逻辑
4、变量类型转换
5、…

Q&A

1、为什么文章很模糊呢?缺少细节呢?

文章提供主张及部分模块,完整项目请私信博主进行交流

2、每个 Ab Test 平台功能都不同,文中提到的完全没有现实意义!

平台功能随业务环境决定,功能背后的精神及原理实质不变,技术借鉴,自我提炼汲取才是道理。

附录

漫漫人生路,不只是勇往直前,停下来歇息也是为了更好前进 —— 锦上添花

以上是关于Ab Test 衍生功能之锦上添花 —— 目标流量筛选的主要内容,如果未能解决你的问题,请参考以下文章

锦上添花!

锦上添花!

设计模式之装饰模式

广告业务系统 之 辅助决策 —— “ AB 实验平台”

Python 命令行之旅:深入 click 之增强功能

应用场景系列之:流量管理下的熔断场景