更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群

日前,在 WOT 全球创新技术大会上,火山引擎 DataTester 技术负责人韩云飞做了关于字节跳动 A/B 测试平台的分享。DataTester 是字节跳动内部应用多年的 A/B 实验平台,平台自建立至今,承载了字节 500 余个业务线的 A/B 实验任务,累计已开展过 150 万次实验,现在字节跳动每天会新增实验 2000 余个,同时在 DataTester 上运行的实验有 3 万余个。

字节跳动内部有着非常浓厚的数据文化和实验文化,抖音、今日头条的名字都经由 A/B 测试确定,而 A/B 测试也是整个研发链路上的必经一环。本文将以字节研发流程中的两个个案例,介绍 A/B 测试在研发全流程中的角色。

1.产品系统重构

今日头条是一款信息类互联网产品,它会基于数据挖掘的推荐引擎向用户推荐文章。今日头条早期的信息流服务是使用 Python 的一项单体服务,但随着字节业务发展的迅速,今日头条的流量也迎来了爆发式增长,产品在性能工程上的复杂度也在急剧升高。

为了优化产品,使之更加适应大流量下的响应,今日头条的信息流业务设计了一次大规模服务化重构:语言选型从 Python 切换到了 Golang,从单体服务架构演变成了分层的微服务架构。

但这个重构设计,是围绕产品性能方面的技术指标展开的,但对于用户体验的影响和业务目标的影响,却无法通过短期观察得到结论。为了避免复杂的新系统上线后,降低头条用户的产品使用体验,因此在重构方案设计完毕后,今日头条业务花费了 6 个月以上的时间,开展了新方案和旧方案对比的 A/B 测试,总共进行过几十次 A/B 实验,多点开启灰度测试,并不断分析结果、迭代方案,确认改进点对业务数据指标的影响。

在半年多之后,这个复杂的新系统终于结束了 A/B 测试,并推全上线。上线后的新系统对今日头条大部分全局指标几乎无影响,甚至一些关键指标取得了显示正向的结果。

2.产品 Bug 修复

这个案例是字节直播产品的场景。该产品在设计了新的精排模型,原本期望是想召回模型学习到更多信息,提前做一些召回符合用户兴趣的内容,提升部分产品关键指标。但在实际操作中,由于模型配置出现了 Bug,上线失败。

因此,该直播产品的团队针对这个 Bug 进行了修复,但只能采用使精排模型变得更复杂的方案。新的功能虽然已经成功跑通,但由于模型更加复杂,对于用户产品体验负向影响的风险会随之升高。

为了验证新开发的功能对用户体验的影响,该团队使用 DataTester 开启了 A/B 测试,他们将用户分为新用户组、老用户组分别开启实验,通过数据观察发现,新的功能对于新用户的而言没有什么实质性影响,新用户的使用时长、留存等指标依然是在一个特定区间波动;但在老用户组的实验数据中,他们发现老用户在内容人均阅读时长上,有了 0.3%的显著提高。虽然 0.3%是一个看起来不大的数字,但对于字节产品的用户体量而言,这种幅度的提升,在用户内容消费时长上的实质提升很大。

上述两个案例是 DataTester 在字节跳动应用的缩影,实际上,在字节整个的研发流程中,开发、上线、BugFix、优化、重构,A/B 测试都会作为基础设施中的一环,来服务于整个研发流程。除此之外,A/B 实验也广泛应用于字节跳动业务的方方面面,从产品命名到交互设计,从改变字体、弹窗效果、界面大小,到推荐算法、广告优化、用户增长...... 可以说,DataTester 已经融入在字节的每一个业务和每一项决策中。

DataTester 当前已通过火山引擎面向外部企业开放服务,能基于先进的底层算法,提供科学分流能力和智能的统计引擎,支持多种复杂的 A/B 实验类型。目前,火山引擎 DataTester 已经服务了美的、得到、凯叔讲故事等在内的上百家标杆客户,将成熟的“数据驱动增长”经验赋能给各行业。

点击跳转 A/B测试 DataTester了解更多

剖析字节案例,火山引擎 A/B 测试 DataTester 如何“嵌入”技术研发流程的更多相关文章

  1. 火山引擎 A/B 测试产品——DataTester 私有化架构分享

    作为一款面向 ToB 市场的产品--火山引擎A/B测试(DataTester)为了满足客户对数据安全.合规问题等需求,探索私有化部署是产品无法绕开的一条路. 在面向 ToB 客户私有化的实际落地中,火 ...

  2. 还原火山引擎 A/B 测试产品——DataTester 私有化部署实践经验

      作为一款面向ToB市场的产品--火山引擎A/B测试(DataTester)为了满足客户对数据安全.合规问题等需求,探索私有化部署是产品无法绕开的一条路.   在面向ToB客户私有化的实际落地中,火 ...

  3. 火山引擎 DataTester:让企业“无代码”也能用起来的 A/B 实验平台

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 当数字化变革方兴未艾,无代码正受到前所未有的关注.Salesforce 的数据显示,52%的 IT 部门表示,公司 ...

  4. JuiceFS 在火山引擎边缘计算的应用实践

    火山引擎边缘云是以云计算基础技术和边缘异构算力结合网络为基础,构建在边缘大规模基础设施之上的云计算服务,形成以边缘位置的计算.网络.存储.安全.智能为核心能力的新一代分布式云计算解决方案. 01- 边 ...

  5. 火山引擎 DataLeap:揭秘字节跳动数据血缘架构演进之路

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维 ...

  6. 火山引擎 DataLeap:3 个关键步骤,复制字节跳动一站式数据治理经验

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维.治理. ...

  7. 火山引擎MARS-APM Plus x 飞书 |降低线上OOM,提高App性能稳定性

    通过使用火山引擎MARS-APM Plus的memory graph功能,飞书研发团队有效分析定位问题线上case多达30例,线上OOM率降低到了0.8‰,降幅达到60%.大幅提升了用户体验,为飞书的 ...

  8. 火山引擎 DataLeap 的 Data Catalog 系统公有云实践

      Data Catalog 通过汇总技术和业务元数据,解决大数据生产者组织梳理数据.数据消费者找数和理解数的业务场景.本篇内容源自于火山引擎大数据研发治理套件 DataLeap 中的 Data Ca ...

  9. 如何又快又好实现 Catalog 系统搜索能力?火山引擎 DataLeap 这样做

      摘要 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维.治理.资产.安全等全套数据中台建设,降低工作成本和数据维护成本.挖掘数据价 ...

  10. 火山引擎 DataLeap:一家企业,数据体系要怎么搭建?

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 导读:经过十多年的发展,数据治理在传统行业以及新兴互联网公司都已经产生落地实践.字节跳动也在探索一种分布式的数据治 ...

随机推荐

  1. 使用 redis 实现分布式接口限流注解 RedisLimit

    前言 很多时候,由于种种不可描述的原因,我们需要针对单个接口实现接口限流,防止访问次数过于频繁.这里就用 redis+aop 实现一个限流接口注解 @RedisLimit 代码 点击查看RedisLi ...

  2. 20.7 OpenSSL 套接字SSL加密传输

    OpenSSL 中的 SSL 加密是通过 SSL/TLS 协议来实现的.SSL/TLS 是一种安全通信协议,可以保障通信双方之间的通信安全性和数据完整性.在 SSL/TLS 协议中,加密算法是其中最核 ...

  3. STL multiset容器

    multiset容器的概念和性质 set在英文中的意义是:集合.而multi−前缀则表示:多重的.所以multiset容器就叫做:有序多重集合. multiset的很多性质和使用方式和set容器差不了 ...

  4. 分享一个有趣的WBO在线创作画板并且可以远程访问

    WBO在线协作白板是一个自由和开源的在线协作白板,允许多个用户同时在一个虚拟的大型白板上画图.该白板对所有线上用户实时更新,并且状态始终保持.它可以用于许多不同的目的,包括艺术.娱乐.设计和教学,使用 ...

  5. 你真的了解@Async吗?

    使用场景: 开发中会碰到一些耗时较长或者不需要立即得到执行结果的逻辑,比如消息推送.商品同步等都可以使用异步方法,这时我们可以用到@Async.但是直接使用 @Async 会有风险,当我们没有指定线程 ...

  6. Codeforces Round #701 (Div. 2) A~C 题解

    写在前边 链接:Codeforces Round #701 (Div. 2) 数学场,题目描述简单粗暴,思路很妙,代码短的不行,都是好神奇的一些题目. A. Add and Divide 链接:A题链 ...

  7. Android 使用 ContentProvider 简单操作数据库

    ContentProvider 可以用来原生读写 Android 自带的数据库 SQLite. 使用 Studio 创建一个 ContentProvider, 名字叫 TestContentProvi ...

  8. Istio 网格的出口定义者:深入了解 Egress Gateway

    本文分享自华为云社区<Istio Egress 出口网关使用>,作者:k8s技术圈. 前面我们了解了位于服务网格内部的应用应如何访问网格外部的 HTTP 和 HTTPS 服务,知道如何通过 ...

  9. Codeforces Round 903 (Div. 3)

    Codeforces Round 903 (Div. 3) A. Don't Try to Count 大概题意给你两个字符串a,b.a串可进行的操作为将整个a串复制到之前的a串后面(直接用a+a即可 ...

  10. 如何收集pod重启前现场

    之前分享过几篇优化pod重启的文章,有朋友发私信问:看你的优化文章很过瘾,可否分享下如何收集pod重启前的现场. 案例分享-full gc导致k8s pod重启 记一次k8s pod频繁重启的优化之旅 ...