写点什么

Netflix 自研标题发布可观测性系统:在全球范围内验证标题可用性

作者:Leela Kumili

  • 2025-07-14
    北京
  • 本文字数:1413 字

    阅读完需:约 5 分钟

大小:694.66K时长:03:57
Netflix自研标题发布可观测性系统:在全球范围内验证标题可用性

Netflix 开发了一个叫作 Title Launch Observability 的平台,将可观测性从系统健康状态监测带到了产品意图上。该系统突破了传统依赖日志和指标的局限,通过验证发布内容是否符合用户实际看到的效果来提前发现内容质量问题。


Title Launch Observability 会验证每一个新上线的标题是否已成功发布、是否可见,以及是否针对不同设备和地区观众进行了精准的个性化推荐。Netflix 在最近发布的三篇系列博文中详细介绍了这种以意图为导向的方法,展示了该平台如何随着标题发布量的增加而扩展。


该平台能够提前发现诸如缺少艺术作品、推荐不准确或本地化缺失等问题,这些问题在观众看到之前就能被检测出来。确保一个标题能够在不同设备、地区和个性化上下文中可用,听起来似乎很简单,但在 Netflix 的工程师们眼里,这是一个复杂且模糊的挑战:

标题的可用性其实很复杂。很多人会想当然地认为,只要标题被导入到目录服务中,它就应该是“可用”的。但实际上,标题的可用性是由多个系统共同决定的,这些系统会根据各种因素(比如输入信号不完整、功能异常,或者标题之间的相互作用)在用户界面的不同位置展示标题。


随着 Netflix 每月发布数千个标题,过去依赖的手动脚本和随机抽查变得不再可靠。一些隐蔽的问题,比如缺少字幕、元数据延迟、地区放置错误或缺少艺术作品,如果没有用户反馈,很难被发现。系统由一个叫作 Title Health 的框架提供支持,它从多个系统中聚合信号,包括元数据传播管道、个性化模型、用户界面渲染逻辑以及从客户端设备实时传输的印象数据。


他们有一个专门的微服务,负责执行收集器作业,每个作业都与 Netflix 的特定内容相关联(例如“即将上映”或“当前流行的”),查询目录服务和合作伙伴系统以验证发布的正确性。通过 Kafka 摄取的实时标题印象数据,为团队提供了推荐模型如何处理每个标题的额外洞察。


收集到的信号使用 Hollow 存储,这是一个高性能内存数据存储,为 Netflix 提供快速访问大量标题元数据的能力。通过维护版本化数据集,可以支持历史数据比较,从而帮助团队检测标题发布中的回归或不一致问题。这些内容通过内部仪表盘、API 和警报工具呈现,让利益相关者能够近乎实时地评估标题在不同设备和地区上的健康状况。


可观测性架构(来源:Netflix 技术博客


该平台的一大亮点是“时间旅行”功能。工程师通过在可观测性端点请求中附加未来时间戳,可以提前模拟标题未来在用户界面中的呈现效果。这使得团队能够在标题上线之前检测生命周期问题,例如延迟的徽章渲染或不完整的本地化。在标题发布的初期阶段,用户参与度和算法推广通常处于高峰期,因此早期检测显得尤为重要。


“时间旅行”(来源:Netflix 技术博客


为了确保 Netflix 生态系统内的整体一致性,Title Health 微服务每 30 分钟运行一次收集器作业,这些作业在设备类别(包括移动应用、智能电视和网络平台)上执行可观测性检查。这一解决方案能够有效识别标题在一种设备上显示正常但在另一种设备上出现缺失或配置错误的情况。


Netflix 表示,该系统致力于提升内容的可发现性,确保用户体验的一致性,并增强与内容创作者及合作伙伴的信任。Netflix 认为这是其提升运营可靠性和确保内容触达目标受众的更广泛努力的一部分。它还为运营和工程团队提供了明确的信号,不仅关注系统是否运行,更关注每个标题是否对每位目标观众可见。


【声明:本文由 InfoQ 翻译,未经许可禁止转载。】


原文链接:

https://www.infoq.com/news/2025/07/netflix-title-observability/

2025-07-14 15:008587

评论 1 条评论

发布
用户头像
ding
2025-07-19 15:57 · 江苏
回复
没有更多了

web前端培训nginx配置规则

@零度

nginx 前端开发

自己动手写Docker系列 -- 5.6实现删除容器

Go Docker 4月月更

如何使用参数化查询提高Cypher查询的性能

华为云开发者联盟

参数化 Cypher查询 华为云图引擎 GES 参数化查询

解析分布式系统的缓存设计

vivo互联网技术

分布式 服务器 缓存服务

2022南京14届-人工智能-博览会

InfoQ_caf7dbb9aa8a

jackson学习之七:常用Field注解

程序员欣宸

4月月更

坐实大数据资源调度框架之王,Yarn为何这么牛

华为云开发者联盟

大数据 hadoop mapreduce YARN 资源调度框架

虎符即将引入稳定币USN 并开启USN专场活动

区块链前沿News

虎符交易所 稳定币

设计消息队列存储消息数据的 MySQL 表格

「架构实战营」

react源码解析7.Fiber架构

buchila11

React

2022南京14届-物联网-博览会

InfoQ_caf7dbb9aa8a

Docker 实战教程之从入门到提高(二)

汪子熙

Docker 容器 虚拟化 docker image 4月月更

OpenHarmony 3.1 Beta版本关键特性解析——OpenHarmony图形框架

OpenHarmony开发者

OpenHarmony 动画效果

Linux驱动开发-编写RFID-RC522射频刷卡模块驱动

DS小龙哥

4月月更

云效 Projex是什么?Projex企业级高效研发项目管理平台

阿里云云效

阿里云 项目管理 研发 敏捷研发 项目协作

云图说丨不同区块链之间如何跨链交互?

华为云开发者联盟

区块链 跨链 可信 可信跨链服务 跨链交互

【PIMF】开源鸿蒙首款IDE低代码入门OpenHarmony应用开发

离北况归

低代码 OpenHarmony Openharmony啃论文俱乐部 OpenHarmony应用开发 可视化界面

龙蜥社区成立DeepRec SIG,开源大规模稀疏模型深度学习引擎

OpenAnolis小助手

深度学习 开源 龙蜥社区 sig 稀疏模型

Android技术分享| Android 中部分内存泄漏示例及解决方案

anyRTC开发者

音视频 内存 内存泄漏 移动开发 Andriod

java培训SpringBoot自动装配原理

@零度

JAVA开发 springboot

如何做好复盘

Hockor

复盘

[Day12]-[动态规划]-零钱兑换

方勇(gopher)

LeetCode 数据结构和算法

Python 中的鸭子类型和猴子补丁

AlwaysBeta

Python

react源码解析8.render阶段

buchila11

React

Thinkphp6实现定时任务功能详解教程

CRMEB

基于Flink-CDC数据同步方案

领创集团Advance Intelligence Group

算法 java

欧拉开发者大会即将开启,全球芯片、整机、软件厂商共建数字基础设施开源操作系统

科技热闻

云智慧10年资深架构师带你了解:普通程序员向架构师成长必经之路

云智慧AIOps社区

程序人生 架构师 Meetup 晋升 成长计划

腾讯一面:你平时怎么排查并调优慢 SQL 的

老周聊架构

MySQL 4月月更

2022南京14届-智慧工地-博览会

InfoQ_caf7dbb9aa8a

“一只股票一张表”, TDengine 在青岛金融研究院量化分析场景中的应用

TDengine

数据库 tdengine 物联网

Netflix自研标题发布可观测性系统:在全球范围内验证标题可用性_架构_InfoQ精选文章