Py学习  »  Python

网飞Netflix揭露公司内部如何使用Python

MarTechCareer • 1 年前 • 191 次点击  

本文来源:TechRepublic

作者:Nick Heath

翻译:Yi | MarTechApe


流媒体巨头网飞(Netflix)详细披露了公司如何从运营、分析、安全到网络交流,全面依赖Python这门多功能的编程语言的。


Netflix几乎在公司业务的所有角落都用到了Python最受欢迎的软件包,并在亚马逊网络服务(AWS*)的云端平台上运营。


*AWS使Netflix能够快速部署数千台服务器,并且在数分钟内部署数TB存储。这使得用户可以在全球各地流式传输Netflix表演和影片。



“我们整个内容生命周期都使用到了Python,从决定哪些内容值得被继续投资,到运营内容分发网络*(Content Delivery Network,CDN)来让最终的视频能服务于1.48亿会员们,“Netflix的工程师在博客中写道。


*内容分发网络(CDN)指的是一种通过互联网连接的计算机网络系统,利用最靠近每位用户的服务器来更高效地将音乐、图片、视频、应用程序或其他文件发送给用户。



Python包含非常丰富的标准库,语言语法也很简洁明了,除了专业CS技术人士之外,也同样适合没有编程语言基础的人们入门学习。Python还拥有成熟的开发社区,能够对内容进行快速迭代,以及大量第三方库可被利用解决不同类型的技术问题,例如数据分析,数据可视化,以及其它涉及Netflix业务运营的方方面面。


以下是Netflix如何利用Python的方式:


1. 统计分析 Statistical Analysis


Netflix的核心团队使用许多Python的统计和数学库,包括NumPy,SciPy,ruptures和Pandas。Python还被用于开发一个时间序列关联系统,以及一个可以并行操作大型分析工作负载的分布式工作系统,从而提高分析结果交付的效率。



最重要的是,Python通常还用于自动化任务,数据挖掘和清洗,以及可视化。



2. 机器学习


Netflix在培训机器学习模型时广泛依赖于Python,模型被应用于从推荐算法到插图个性化再到营销算法等各个方面。


一些算法在训练深度神经网络时使用TensorFlow,Keras和Pytorch,而XGBoost和LightGBM被用于构建梯度提升决策树*。


*梯度提升决策树(Gradient Boosting Decision Tree)是一种迭代的决策树算法,由多棵决策树组成,所有决策树结论累加起来做最终分类预测,在数据挖掘中也有着卓越表现。



Netflix还使用了Python中更广泛的科学堆栈,例如NumPy,SciPy,scikit-learn,Matplotlib,Pandas和cvxpy。


Metaflow是一个在整个公司中被大规模使用到的Python框架,它可以轻松地从原型到产出阶段执行机器学习项目。通过Metaflow,Netflix依赖良好的并行化和优化的Python代码以10Gbps的速度获取代码,处理内存中的数亿个数据点,并协调编排数万个CPU内核的计算。


3. 实验


Netflix的科学计算团队为试验提供了一个平台,供科学家和工程师们分析AB测试和其他实验。


他们使用的Python框架包括:

  • Metrics Repo,一个基于PyPika的Python框架,允许用户编写可重复使用的参数化SQL语句。

  • Causal模型库,一个Python和R框架,使用PyArrow和RPy2,允许科学家为因果推断贡献新的模型。


4. 运营 Operations


Netflix的需求工程团队通过编排区域故障,转移和协调流量分布,来为其网络(容量)构建弹性。


“我们很自豪地说,我们团队的工具主要都是用Python搭建的。”

“放入bpython shell并进行临时制作的能力已经不止一次地挽救了我们的一天。“


*bpython是一个Python解释器的界面,开发者的目的是提供给用户所有的内置功能,很像现在的IDE(集成开发环境),但是将这些功能封装在在一个简单,轻量级的包里,可以在终端窗口里面运行。


Python的一大优势就是可以通过具有极强交互性的Shell来进行探索式地编程。用户可以试着输入一些代码就能立马获得解释器地反馈,而不必像C++等编程语言一样专门写一个脚本,这为使用者提供了一个计好地交互性体验。



该团队使用的工具包括:

  • 使用 numpy 和 scipy 来执行数值分析

  • 使用boto3 对 AWS(亚马逊网络服务) 基础设施进行更改

  • 使用rq 运行异步工作负载

  • Flask APIs被用来像一个封装一样将上面的编排工具打包起来

  • Jupyter Notebooks和neteract被用来分析操作性数据和原型可视化工具。Netflix使用Python构建Jupyter服务器的自定义扩展,从而允许工程师管理一系列任务,例如记录、归档、发布和克隆Notebooks。


同时,大数据编排团队为安排和执行ETL(Extract-Transform-Load,提取-转换-储存)数据及特殊数据传输管提供服务和工具支持。


该团队使用Jupyter Notebooks和papermill来允许调度程序提供模板化的作业类型,例如Spark。


另外还使用了pygenie,这是一个Netflix构建的客户端,与Genie(一种联合作业执行服务)连接。


5. 监管和自动化回复


Netflix的Insight Engineering团队负责构建和运行用于生成警报、诊断和自动修复的工具。


他们现在支持Python客户端的大多数服务,包括Spectator Python客户端库(一个用于记录维度,时间序列指标的库)。


除此之外,Python框架Gunicorn,Flask和Flask-RESTPlus也被用于创建Winston和Bolt这类诊断和修复平台。


6. 信息安全


Netflix的信息安全团队使用Python执行广泛的任务,包括安全自动化,风险分类,自动修复和漏洞识别。


Python项目包括:

  • Security Monkey,一个开源的Netflix库,用来监管亚马逊网络服务,谷歌云端,OpenStack和GitHub以更更改资产

  • Bless SSH证书机构来保护SSH资源(SSH为建立在应用层基础上的安全协议)

  • Repokid允许Python被用于帮助IAM(身份和访问管理)权限调整

  • Lemur被用来帮助生成TLS证书,Netflix也使用Diffy取证分类工具,这完全使用Python构建。


7. 视频编码和自动内容分析


Netflix有一个团队专门致力于对其下目录内容进行编码并使用机器学习进行分析,例如从电影中提取出最佳静态剧照。


在使用Python的大约50个项目中,还有视频质量评估库vmaf和能将存储于云端中的内容安装为本地文件的mezzfs库。


如果你想通过Python来学习数据分析,掌握Python最实用、最有工作场景的功能,提升自己在面试和工作中的表现,那就报名《Python数据分析》吧!


课程内容


第一课 Python数据分析的一般概念、操作界面、常用数据包
这节课我们会讲Python的数据类型、操作界面Jupyter Notebook、常用的数据分析的应用包,比如:
  • NumPy

  • Pandas

  • Matplotlib

  • Seaborn

  • Scikit-learn


第二课 如何用Python进行Data Review & QA
对于一个数据分析师来说,工作中大量的时间都花在了Data Review和Quality Assurance/Control(数据检查)上,也就是常说的QA。QA相当重要,但是又异常繁琐。第二课,我们会学习如何用Python高效快速QA


第三课 用Python进行数据处理
数据处理是数据分析中最重要的环节,它是从数据中整理、得出有意义的洞察的前提。这节课中我们会学习用Python进行:
  • Data Manipulation

  • Conditional Filtering

  • Indexing

  • Aggregration

  • Grouping


第四课 用Python进行二维表格处理
工作中,经常需要我们对数据进行二维表处理,Pivot就是一个常见的转化横表、竖表的方法。这节课我们会学习Stack的概念,学会用Python进行快速的数据结构转化。
  • Stack & Unstack

  • Pivot Table

  • Format table


第五课 Loops及其应用
这节课我们讲学习Loop的概念,以及如何利用loop用Python进行纵向、横向查找。


第六课 用matplotlip以及seaborn进行数据可视化
这节课我们将学习如何用Python的数据可视化程序包制作出精美绝伦的数据图,亮瞎你挑剔的老板!


第七课 自定义函数
尽管Python自带了各种很有价值的程序包,但我们也难免会遇到需要自己设定函数解决问题的时候。这节课我们会学习如何自己创造解决特定问题的程序包,也就是自定义函数。


第八课 运用前七课的内容进行实例练习
最后一节课,我们将全面应用前七节课的所有知识点,面对实际工作场景中几乎每天都遇到的数据案例进行实际操作。

课程老师


由于Python是一门操作性的数据工具课,因此我们特别邀请了两位老师来授课,分别负责概念讲解和练习。
  • 主讲老师:Effie老师,在Code&Theory担任高级数据编程分析师,有着营销和商业背景的她,深知日常工作中数据分析师们面临的实际问题,她摒弃市面上其他Python课程的偏数理、偏理论的作风,从实用主义出发,用案例教学来让大家真正学会用Python解决日常天天遇到的数据分析问题!

  • 习题老师:Henry老师,在Wayfair担任机器学习工程师。具有8年数据科学背景,熟悉各类数据分析工具和算法。Henry老师精心设计了各类实操练习题,帮你巩固所学知识!


报名方法


扫描下方课程二维码,进入课程页面,进行报名



来个“分享、点赞、在看”👇

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/150122
 
191 次点击