当然,每个电影爱好者的一站式目的地是 Netflix。但是,当你看你最喜欢的电影,它不断缓冲时,会发生什么?只需关闭应用程序并选择其他选项。但是,它如何快速管理数百万用户的流量?谢谢,感谢Python。 在本文中,让我们探讨 Netflix 如何使用 Python。
Netflix 简介
Netflix 是一家提供视频点播 (VOD) 服务的美国公司。Netflix 总部位于加利福尼亚州洛斯加托斯,在全世界拥有约 1.48 亿用户,而且这个数字每天都在增长。在大约二十年的时间里,Netflix 已成为世界上最大的电视剧和电影的”家族之王”。成为美国发展最快的品牌,2019年收入为205亿美元,这足以让它成为”吸引眼球”的品牌,从而对其技术领域产生兴趣。
基于同一感兴趣领域,Netflix揭示了它如何使用最流行的语言Python来发展其基础设施。
那么,现在让我们继续看看Netflix实际上如何使用Python?
Netflix 如何使用 Python
“我们使用 Python 贯穿整个内容生命周期,从决定为哪些内容提供资金,到运营为最终视频提供服务的 CDN 到 1.48 亿成员。
从管理域到可靠性和数据科学再到机器学习等,Netflix 几乎将 Python 用于其业务的每一个边缘。
现在,让我们深入了解一下 Python 在 Netflix 的各个域中是如何使用的:
打开连接
Netflix 使用的 CDN(内容交付网络)是”打开连接”。打开连接基本上进入图片时,你点击播放按钮。交付给最终用户的所有内容都由此 CDN 负责。
Open Connect 需要各种其他软件系统来设计、构建和操作它,这些软件系统又用 Python 编写。此 CDN 背后的网络设备是 Python 应用程序,因为 Python 在解决网络问题方面表现突出。
需求工程团队
需求工程团队负责处理 Netflix 云的区域故障转移、流量管理、容量运营管理(负责限制内容可维修)和车队效率。此团队使用的 Python 元素包括:
NumPy 和 Scipy
NumPy和SciPy是用于科学计算的库。Netflix 使用这些 Python 库执行数值分析,从而允许管理区域故障转移。
博托3
Boto3 是 Python 的 AWS(亚马逊 Web 服务)的软件开发工具包 (SDK)。这有助于 Python 开发人员将 Python 集成到 AWS 中,从而允许在基础架构中进行开发。
RQ(红色队列)
这是一个 Python 库,可帮助跟踪队列中存在的任务并允许其执行,从而允许管理异步工作负载。
瓶
最后,Netflix 使用 Flask(Python Web 开发库)API 将所有以前的片段绑定在一起。
Netflix 使用 Jupyter 笔记本,这是一个开源的 Web 应用程序,用于 Python 开发以及大规模交互(Jupyter 扩展)它在操作数据分析和可视化方面非常有用,这反过来又有助于检测容量回归。
机器学习基础架构
机器学习的范围从创建个性化算法到找出潜在的用例。个性化算法有助于根据 Netflix 标准训练机器学习模型。它提供个性化建议、日常大纲、标签代数等。
学习深度神经网络所需的库是 TensorFlow、Keras 和 Pytorch,而用于梯度增强决策树的 XGBoost 和 LightGBM。 他们还开发了相当多的高级图书馆,帮助与工作领域相结合,如事实记录、特征提取、发布等。除此之外,Netflix 还使用 MetaFlow 创建机器学习项目。
“Metaflow 突破了 Python 的极限:我们利用经过良好并行和优化的 Python 代码以 10Gbps 获取数据,处理内存中的数亿个数据点,并在数以万计的 CPU 内核上协调计算” – Netflix
大数据
大数据团队负责执行 ETL(提取、转换、加载)和 Adhoc 管道。此业务流程的主要部分是用 Python 编写的。此团队使用在带有造纸厂的 Jupyter 笔记本上运行的调度程序来生成具有模板的作业类型(即 Spark、Presto 等)。
除此之外,该团队还创建了一个完全基于 Python 的事件驱动平台。他们创建了许多事件,并将其合并为一个事件,允许 Netflix 过滤、响应和路由事件。Pygenie 也是与 Genie(特色作业执行服务)接口的基础结构的一部分。
科学实验
这是一个由科学实验团队创建的平台,允许 A/B 测试以及其他一些实验。在这里,科学家和工程师可以展示数据、统计和可视化方面的新创新。
此处实现的 Python 框架是指标回购,它基于 PyPika,允许编写可重用的参数化查询。对于统计扇区,使用 PyArrow 和 RPy2 来计算 Python 或 R 的统计信息,这些统计数据有助于可视化。
视频编码/媒体云工程
该团队负责对 Netflix 目录的任务进行编码和重新编码。Python 大约用于 50 个项目,如 VMAF(视频多方法评估融合)和 MezzFS(夹层文件系统)、使用 Archer 的计算机视觉解决方案(处理图像)等。
Netflix 动画和 NVFX
Python 构成了 Netflix 上所有动画和视觉效果 (VFX) 的基础。所有玛雅和努克联盟都是在Python中完成的。
IS(信息安全)
Netflix 使用 Python 供电的 IS 系统进行自动补救、安全自动化、风险分类等。此团队最活跃的开源 Python 项目是安全猴子。Netflix 还使用 BLESS(堡垒的 Lambda 临时 SSH 服务)来保护 SSH(安全外壳)资源。RepoKid 用于授予 IAM 权限,TLS 证书通过狐猴分配。这两个任务都主要依赖于 Python。
监控和自动修复
这个团队被称为洞察工程团队。他们构建并执行用于操作洞察、诊断、自动修复和更改的工具。对于大多数服务,此团队使用 Python,例如,观众 Python 客户端库。此库用于记录维度时间序列。除了这些库,像温斯顿和博尔特这样的产品也建立在Python框架上,它们是Flask、Gunicorn和Flask-RestPlus有了这个,我们已经到达了这个博客的末尾”Netflix如何使用Python?我希望你清楚所有已经讨论过的问题。