使Uber的实验评估引擎提速100倍
This blog post describes how we made efficiency improvements to Uber’s Experimentation platform to reduce the latencies of experiment evaluations by a factor of 100x (milliseconds to microseconds). We accomplished this by going from a remote evaluation architecture (client to server RPC requests) to a local evaluation architecture (client-side computation). Some of the terminology in this blog post (e.g., parameters, experiments, etc.) is referenced from our previous blog post on Uber Experimentation. To learn more, check out Supercharging A/B Testing at Uber.
本博客文章描述了我们如何对Uber的实验平台进行效率改进,将实验评估的延迟降低了100倍(从毫秒到微秒)。我们通过从远程评估架构(客户端到服务器的RPC请求)转换为本地评估架构(客户端计算)来实现这一目标。本博客文章中的一些术语(例如参数、实验等)是从我们之前关于Uber实验的博客文章中引用的。要了解更多信息,请查看Supercharging A/B Testing at Uber。
Experimentation is used heavily throughout Uber’s backend microservices, mobile apps, and web surfaces to measure improvements of product launches across all business units–Delivery, Mobility, Freight, Uber For Business (U4B), etc. We will cover the current and new architecture of the system as well as technical challenges, and learnings. This blog post specifically focuses on latency improvements to backend Golang microservices rather than mobile or web-based experimentation. We are also focusing on A/B tests rather than other experimentation designs.
实验在Uber的后端微服务、移动应用和Web界面中被广泛使用,用于衡量产品发布在所有业务单元(Delivery、Mobility、Freight、Uber For Business(U4B)等)中的改进。本博文将重点介绍系统的当前和新架构,以及技术挑战和经验教训。本博文特别关注于后端Golang微服务的延迟改进,而不是移动或基于Web的实验。我们还专注于A/B测试,而不是其他实验设计。
In 2020, Uber began a long journey to rewrite the A/B testing platform (internally referred to as Project Citrus). One of the key architectural decisions for this new system was to unify Uber’s existing backend configuration platform, Flipr, with the Experimentation platform. We built Experimentation to exist as a temporary override layer on top of Flipr configurations (also referred to as parameters) in order to perform randomization, conduct causal inference, and help teams determine the best performing value to use for thei...