您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

Netflix 是如何管理 2.38 亿会员的

时间:2024-04-08 14:24:32  来源:InfoQ  作者:

作者 | Surabhi Diwan

译者 | 明知山

策划 | Tina

.NETflix 高级软件工程师 Surabhi Diwan 在 2023 年旧金山 QCon 大会上发表了题为管理 Netflix 的 2.38 亿会员 的演讲。她在演讲中分享了 Netflix 的会员团队为满足 Netflix 不断增长的会员需求是如何实现分布式系统的:架构选型、技术决策和运营语义。

她首先介绍了 Netflix 在十年前做出的一些定价和技术选择,那是在她任职 Netflix 之前。然后,她转到会员历史记录的用例研究,这是第二个持久存储,可以知道任何一个人的订阅所做的任意细粒度的变更。

“我相信你们大多数人都是 Netflix 的会员。如果不是的话,我将会在深入讨论这个问题时向你们展示如何注册。最后,我将尝试回答一个问题:订阅生态系统的演变是怎样的?它有 2.38 亿订阅者。真的,这个过程会是怎样的?如果你要再增加 500 万订阅者会是什么样子?如果你要再增加 100 万呢?”

会员系统工程

会员团队对会员系统的主要关注点在于 Netflix 的注册和流媒体这一关键路径。他们负责一系列不同的微服务,而在会员这一块总有几十个。他们的中间层服务确保用户可以无间断访问,承若四个 9 的可用性,直接影响着注册流程和流媒体体验。

这些服务处理大量的流量,根据具体的用例,例如订阅或定价,可以扩展到每秒处理数百万个请求。会员团队讨论了他们的技术决策,利用现成的技术来实现可伸缩性和可靠性。他们作为全球会员数据的权威来源,为 Netflix 的内外部下游分析提供了便利。简言之,他们以精确的方式应对规模化的复杂的分布式挑战。

此外,会员团队还负责管理 Netflix 的计划和定价目录,尽管它非常简单——基本会员、标准会员、高级会员——但在用户体验中起着至关重要的作用。他们优先考虑订阅详情的准确性,确保正确的选择计划、账单国家和支付状态,确保服务质量和会员满意度。

他们管理着整个会员生命周期——注册、合作伙伴渠道整合、计划变更、续订和账户关闭。他们的职责包括处理支付问题(包括账户保持和取消)以及在整个会员过程中适当管理客户数据来确保数据隐私合规性。

会员何时使用我们的流程?

这是我的团队所涉及的流程。我想,作为最终用户,如果你现在打开 Netflix 应用,你会关注这些东西。

流程突出了关键的用户交互,例如加入成为会员和播放按钮,这些按钮将触发由 Netflix 会员工程团队管理的后端流程。流程图画出了在用户开始观看流媒体之前确保无缝会员体验的各种服务。播放按钮直接与会员系统交互,根据用户选择的计划确定服务质量。由于每天会启动数十亿次的流媒体,这种交互产生了最高的流量。此外,账户页面上的用户操作,例如计划变更或管理其他会员,也由会员服务提供支持。合作伙伴注册,例如 Xfinity 的激活,也由会员团队的后端服务负责编排。

我们是如何做到的?

我认为这是谜题的核心:确定我们做什么。这确实是我们如何做到的。有点难以解释。

会员团队管理着会员计划和定价目录,在全球范围内存储和管理计划,在不同地区有不同的变化。这个服务还需要管理基于特定位置的产品规则。他们利用两个 CockroachDB 数据库支持计划定价和代码兑换,特别是在送礼的高峰期。会员定价服务为会员行为提供支持,例如计划变更和添加额外的会员。

合作伙伴互动由专门的微服务负责处理,这些微服务负责捆绑包的激活和注册,包括与平台(如苹果的应用商店)集成实现订阅注册。会员数据存储在 Cassandra 数据库中,为超过 2.38 亿活跃会员的订阅服务和历史跟踪提供支持。

会员团队的关注点不仅限于当前的会员,还包括之前的会员和会员的重新加入。他们通过会员状态和会员维持服务来管理会员状态,确保使用 Casspactor 和 Apache Spark 等工具进行大数据处理的数据库之间的平稳运行。这些数据,例如消息和分析,对于下游的消费者获得有关注册和收入预测的见解来说至关重要。

注册流程

当用户开始 Netflix 的旅程时,他们就会遇到由会员系统驱动的选择计划选项,这个系统每秒处理数百万个请求。由于货币、定价和计划选项存在地理上的差异,正确呈现这个页面就变得至关重要。会员团队管理着这些规则,绿色方框代表会员服务的职责,白色方框代表与姊妹团队的协作。

这个过程从选择计划开始。应用程序从会员计划和定价服务(由 CockroachDB 提供支持)查询所选的计划,获取计划的定价细节。确认后,点击“开始会员”,这将触发会员状态和历史服务中的操作,更新相关信息(如计划、价格级别和国家)。标志会员激活的事件被发送出去,触发欢迎电子邮件的消息管道,并通知下游团队进行分析。尽管这个解释很简单,但这个过程在分布式系统中大规模发生,需要强大的错误处理机制。

会员团队的技术足迹

Netflix 运行在一个分布式系统架构上,针对高 RPS(每秒读请求)进行了优化。他们使用 gRPC 进行 HTTP 层通信。他们的主要编程语言是 JAVA,并正在过渡到使用 Kotlin 编写应用程序,所有这些都与 Spring Boot 结合在一起。Kafka 在消息传递和与其他团队的通信接口中发挥重要作用,例如消息传递和下游分析。此外,Netflix 还在大数据方面使用了 Spark 和 Flink 进行离线对账任务,我们将在稍后更详细地探讨。

运维和监控的技术选择

除了编码和生产环境部署之外,Netflix 会员工程团队还负责值班,及时解决关键故障。他们使用轻量级事务,并尝试通过使用像 Cassandra 这样的工具确保在线系统的数据一致性。由 Spark 和 Kafka 提供支持的对账作业确保了会员记录系统之间的一致性,例如订阅和会员历史数据库。这种准确性延伸到外部系统,保持整个生态系统的一致状态。数据警报和修复作业负责监控和纠正不一致的地方,确保每个记录都反映最新的信息。

在可观察性方面,日志记录、仪表盘和分布式跟踪有助于快速检测和解决错误,这在 Netflix 庞大的微服务生态系统中扮演着至关重要的角色。生产警报跟踪操作指标,确保最佳的服务水平。操作数据还为机器学习模型提供动力,用于增强异常检测和自动问题解决,保持会员的无间断流媒体体验。

用例研究

到目前为止,我们已经确定了 Netflix 会员工程团队的地位、架构和核心运营流程。深入研究潜在的可改进领域和未来需要做好的准备至关重要。将系统设计比作国际象棋,要掌握它就需要理解规则和策略,并分析过去的走法以便做出改进。

从过去中学习——Netflix 定价的技术决策

十年前,Netflix 的定价架构非常简单,只负责一些计划和基本功能。最开始,一个轻量级的内存库就可以满足这些需求。然而,随着 Netflix 在全球范围内的扩张和业务的多样化,这个库的范围和复杂性不断增长,成为了跨多个应用程序的关键部分。随着时间的推移,由于规模的增长和依赖关系变得日益复杂,运营方面的挑战逐渐出现,因此需要过渡到更健壮的架构。

新的架构利用 CockroachDB 进行持久化,并使用 gRPC 服务来处理流量。尽管简化了设计,但迁移遗留库是一项涉及到众多工程团队和应用程序的工作,需要花费多年时间。这凸显了面向未来的架构决策和及时解决技术债务以避免付出高昂代价是多么的重要。

虽然新架构是主要的解决方案,但旧库的遗留组件仍然存在,需要持续进行迁移。这凸显了在技术过渡期间考虑长期影响和主动处理遗留系统的必要性。

会员历史

对会员历史的研究深入探讨了其在 Netflix 架构中的演变和关键作用。最初,会员历史是通过应用级事件进行跟踪的,但对细粒度数据的需求仍然存在。随着 Netflix 在全球范围内的扩张,会员数据的复杂性和重要性不断增长,需要更健壮的解决方案。

新架构采用了变更数据捕获模式,直接记录操作数据源的增量变化。这种由 Cassandra 数据库提供支持的追加日志系统提供了对会员事件的全面跟踪能力。通过集中处理会员历史事件流,Netflix 获得了更好的可观察性,并能够在系统间协调数据。

这种架构的好处是多方面地。它支持调试、事件重放以及在数据损坏情况下的无缝对账。此外,会员历史让客户服务分析变得更加丰富,为下游分析、消息传递和会员数据系统提供了数据来源。

尽管实现这种架构花费了多年时间,但其回报却是巨大的,突显了在架构创新上投入对取得长期成功的重要性。

为未来做好准备——会员订阅生态系统的演变

最后,我们来深入探讨订阅生态系统的演变。最初,我们只做了基本的架构选择,并依靠 gRPC 服务和 Cassandra 数据库这样的现成组件来实现可伸缩性。然而,随着用户基数的增长,我们遇到了协调数据和容错性方面的挑战。

为了解决这些问题,我们实现了一个 Spark Casspactor 来管理备份和协调 Hive 表中的数据,实现更好的审计和自我修复。虽然这提高了调试能力并消除了单点故障,但可伸缩性仍然是一个问题。为了缓解这个问题,我们正在考虑使用 EVCache 作为缓存以实现更快的查找,尽管在一致性方面存在一些折衷。

这里的关键教训是没有哪个系统可以无限扩展,不断在创新和架构演进上进行投入是关键,避免遭遇系统限制和意外停机。

总 结

从 Netflix 的定价决策中得到的关键教训是,技术选择必须面向未来,并在必要时积极调整或调整。同样,会员历史案例说明了在架构上大胆投入可能带来潜在的巨大回报,勇敢追求重大创新至关重要。

会员订阅的演变是一个持续的过程。这一持续挑战让 Diwan 想起了计算机科学领域的一句名言:

计算机科学领域只有两件难事:缓存失效和命名。

查看英文原文

https://www.infoq.com/articles/managing-memberships-netflix/

AI 面试的“酷刑”,只有中高级管理层和 CEO 能幸免

蔡崇信反思阿里落后:我们砸了自己的脚;英特尔又“崩了”,亏损70亿美元;华为切割“遥遥领先”,传任正非下令禁止 | Q资讯

硅谷创业一年,贾扬清讲了自己的 AI 行业观察:成本、市场增量和商业模式

新员工入职 5 年最少赚 2 亿元、以前挖人现在撬整个团队,AI 公司抢人大战再升级!



Tags:Netflix   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Netflix 是如何管理 2.38 亿会员的
作者 | Surabhi Diwan译者 | 明知山策划 | TinaNetflix 高级软件工程师 Surabhi Diwan 在 2023 年旧金山 QCon 大会上发表了题为管理 Netflix 的 2.38 亿会员 的演讲。她在...【详细内容】
2024-04-08  Search: Netflix  点击:(0)  评论:(0)  加入收藏
Netflix公司
Netflix公司成立于1997年,总部位于美国加利福尼亚州洛斯盖图市,是一家全球领先的在线流媒体服务平台。自成立以来,Netflix不断拓展其业务领域,从最初的邮寄DVD租赁服务到如今的...【详细内容】
2024-01-09  Search: Netflix  点击:(36)  评论:(0)  加入收藏
为什么 Netflix 从大单体演进到联合网关?
网关聚合层本应带来秩序,但随着团队的壮大,服务的增多和领域复杂性的增加,开发网关聚合层变得越来越困难。为了解决这个问题,Netflix 使用 GraphQL 并引入了联合网关(Federated G...【详细内容】
2024-01-09  Search: Netflix  点击:(69)  评论:(0)  加入收藏
这5部黄暴韩剧,全程大尺度无尿点,全部出自Netflix
《假面女郎》男人控制社会,社会敌视女人。女人溺爱男人,男人寄生女人。女人迫害女人,终于,女人帮助,理解女人。貌美者受到优待、骚扰,和貌寝者受到霸凌的逻辑是一样的,都是父权社会...【详细内容】
2023-11-17  Search: Netflix  点击:(296)  评论:(0)  加入收藏
消息称《英雄联盟:双城之战》第二季明年 11 月上线 Netflix
IT之家 11 月 6 日消息,拳头游戏首部长篇动画剧集《英雄联盟:双城之战》于 2021 年底上线播出后,获得了热度口碑双丰收。根据影视可靠爆料人 MyTimeToShineHello 的最新消息,《...【详细内容】
2023-11-06  Search: Netflix  点击:(77)  评论:(0)  加入收藏
深入剖析Netflix Ribbon:分布式微服务架构的负载均衡神器
作者 | 波哥审校 | 重楼在现代分布式微服务架构中,负载均衡是保证系统高可用、高性能的关键组件之一。Netflix Ribbon作为Netflix开源的负载均衡库,为微服务架构提供了强大的...【详细内容】
2023-11-01  Search: Netflix  点击:(220)  评论:(0)  加入收藏
微服务设计必看:深度解析Netflix Eureka的底层实现
作者 | 波哥审校 | 重楼出品 | 51CTO技术栈(微信号:blog51cto)在微服务架构中,服务发现和注册是确保各个微服务之间通信和协作的核心组件。Netflix Eureka作为一款开源的服务发...【详细内容】
2023-10-30  Search: Netflix  点击:(279)  评论:(0)  加入收藏
Netflix据称将在多个国家提高订阅服务价格
新浪科技讯 北京时间10月16日晚间消息,流媒体视频服务巨头Netflix将于周四发布第三季度财报,受限制账号共享政策的推动,预计Netflix第三季度订阅用户数量将增加约600万。此外,业...【详细内容】
2023-10-17  Search: Netflix  点击:(91)  评论:(0)  加入收藏
Netflix 为 iPhone 推出游戏手柄应用,为电视游戏扩张做准备
IT之家 8 月 9 日消息,Netflix 今天发布了一款 Netflix 游戏手柄 App,该 App 可以让用户在电视上玩 Netflix 游戏。App Store 的介绍称,游戏手柄 App 可以与电视配对,使用 iPhon...【详细内容】
2023-08-09  Search: Netflix  点击:(182)  评论:(0)  加入收藏
安全地将 Netflix 迁移到 GraphQL
作者 | Jennifer Shin、Tejas Shikhare、Will Emmanuel译者 | Sambodhi策划 | Tina导读:本文介绍了 Netflix 在 2022 年将其移动应用程序迁移到 GraphQL 的过程。他们采用了...【详细内容】
2023-06-27  Search: Netflix  点击:(211)  评论:(0)  加入收藏
▌简易百科推荐
Netflix 是如何管理 2.38 亿会员的
作者 | Surabhi Diwan译者 | 明知山策划 | TinaNetflix 高级软件工程师 Surabhi Diwan 在 2023 年旧金山 QCon 大会上发表了题为管理 Netflix 的 2.38 亿会员 的演讲。她在...【详细内容】
2024-04-08    InfoQ  Tags:Netflix   点击:(0)  评论:(0)  加入收藏
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(6)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(13)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(9)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(11)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(9)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
站内最新
站内热门
站内头条