乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Python如何成為Netflix使用最多的編程語言?

       蘭亭文藝 2019-05-26
      AI 前線導(dǎo)讀:Netflix (官方中文名稱:網(wǎng)飛)是全球最大的視頻流媒體平臺,在除中國大陸地區(qū)之外的所有國家和地區(qū)都提供視頻點播服務(wù)。全球的觀眾都在追棒 Netflix,而如此成功的 Netflix,其內(nèi)部主要使用的又是什么編程語言呢?那就是今年成為語言流行指數(shù)榜單冠軍的 Python!

      更多優(yōu)質(zhì)內(nèi)容請關(guān)注微信公眾號“AI 前線”(ID:ai-front)

      由于我們團隊中有很多成員準(zhǔn)備參加 PyCon,因此我們想在這篇文章中分享一些經(jīng)驗,介紹 Python 在 Netflix 是如何應(yīng)用于方方面面的。在 Netflix 的整個內(nèi)容生命周期中都會使用 Python,從決定為哪些內(nèi)容提供資金,到運營為 1.48 億會員提供視頻服務(wù)的 CDN。我們使用并貢獻(xiàn)了許多開源 Python 包,其中的一些包將在本文中提到。如果你對此感興趣的話,可以訪問 Netflix 的招聘網(wǎng)站,或參加 PyCon 來與我們交流。

      AI 前線注:

      招聘網(wǎng)站:https://jobs./search?q=python

      Open Connect(開放連接)

      Open Connect 是 Netflix 的內(nèi)容分發(fā)網(wǎng)絡(luò)(content delivery network,CDN)??紤] Netflix 基礎(chǔ)設(shè)施的運作的一種簡單但不精確的方法是,參照在你按下遙控器上的“播放”按鍵之前發(fā)生的所有事情(例如,你是否已經(jīng)登錄?你有何計劃?你看過什么電影?這樣我們就可以給你推薦新電影,你想看什么?)都是發(fā)生在亞馬遜網(wǎng)絡(luò)服務(wù)中(Amazon Web Services,AWS),而之后發(fā)生的所有事情(即視頻流)都是發(fā)生在 Open Connect 網(wǎng)絡(luò)中。內(nèi)容放在 Open Connect CDN 中的服務(wù)器網(wǎng)絡(luò)上,盡可能靠近終端用戶,為我們的客戶改善流媒體體驗,并降低 Netflix 和我們的互聯(lián)網(wǎng)服務(wù)供應(yīng)商(Internet Service Provider,ISP)合作伙伴的成本。

      AI 前線注:內(nèi)容分發(fā)網(wǎng)絡(luò)(Content delivery network 或 Content distribution network,縮寫:CDN)是指一種通過互聯(lián)網(wǎng)互相連接的計算機網(wǎng)絡(luò)系統(tǒng),利用最靠近每位用戶的服務(wù)器,更快、更可靠地將音樂、圖片、影片、應(yīng)用程序及其他文件發(fā)送給用戶,來提供高性能、可擴展性及低成本的網(wǎng)絡(luò)內(nèi)容分發(fā)給用戶。

      設(shè)計、構(gòu)建和運營這個 CDN 基礎(chǔ)設(shè)置需要各種軟件系統(tǒng),其中很多都是用 Python 編寫的。構(gòu)成 CDN 大部分的網(wǎng)絡(luò)設(shè)備主要是由 Python 應(yīng)用程序管理。這樣的應(yīng)用程序跟蹤我們網(wǎng)絡(luò)設(shè)備的庫存:都有哪些設(shè)備、哪些型號,用什么硬件組件,都位于什么位置。這些設(shè)備的配置由幾個其他系統(tǒng)控制,包括數(shù)據(jù)源、設(shè)備配置的應(yīng)用和備份。用于收集運行狀況和其他運營數(shù)據(jù)的設(shè)備交互是另一個 Python 應(yīng)用程序。長期以來,Python 一直是網(wǎng)絡(luò)領(lǐng)域中流行的編程語言,因為它是一種直觀語言,允許工程師能夠快速解決網(wǎng)絡(luò)問題。隨后,人們開發(fā)了許多有用的庫,使得 Python 更為容易學(xué)習(xí)和使用。

      Demand Engineering(需求工程)

      Demand Engineering 負(fù)責(zé) Netflix 云計算的區(qū)域故障轉(zhuǎn)移、流量分配、容量運營和集群效率。我們可以很自豪地說,我們團隊的工具主要是由 Python 構(gòu)建的。編排故障轉(zhuǎn)移的服務(wù)使用 numpy 和 scipy 來執(zhí)行數(shù)值分析,boto3 對 AWS 基礎(chǔ)設(shè)施進行更改,rq 用于運行異步工作負(fù)載,我們將其打包在一個 Flask API 的薄層中。放入 bpython shell 并進行臨時制作的能力已經(jīng)不止一次挽救了局面。

      AI 前線注:有關(guān) Demand Engineering 可參閱《What is Demand Engineering?》:https://www.linkedin.com/pulse/what-demand-engineering-aaron-blohowiak/

      我們是 Jupyter Notebook 和 nteract 的重度用戶,可以分析運營數(shù)據(jù)和原型可視化工具,以幫助我們檢測容量回歸(capacity regressions)。

      CORE(核心)

      CORE 團隊在我們的警報和統(tǒng)計分析工作中使用 Python。在警報系統(tǒng)顯示問題時,我們依靠許多統(tǒng)計和數(shù)學(xué)庫(如 numpy、scipy、ruptures、pandas)來幫助自動分析 1000 多個相關(guān)信號。我們開發(fā)了一個用于團隊內(nèi)外的時間序列相關(guān)系統(tǒng),以及分布式工作系統(tǒng),用于并行化大量的分析工作,以快速交付結(jié)果。

      Python 也是我們通常用來自動化任務(wù)、數(shù)據(jù)挖掘和清理的工具,也是可視化工作的便攜來源。

      監(jiān)控、警報和自動修復(fù)

      Insight Engineering 團隊負(fù)責(zé)構(gòu)建和操作用于運營洞察力、警報、診斷和自動修復(fù)的工具。隨著 Python 越來越受歡迎,該團隊現(xiàn)在支持 Python 客戶端的大多數(shù)服務(wù)。一個例子就是 Spectator Python 客戶端庫,這是一種用于檢測代碼以記錄維度時間序列度量的庫。我們構(gòu)建了 Python 庫來與其他 Netflix 平臺級服務(wù)進行交互。除了庫之外,Winston 和 Bolt 產(chǎn)品也使用了 Python 框架(Gunicorn + Flask + Flask-RESTPlus)來構(gòu)建。

      信息安全

      信息安全團隊使用 Python 為 Netflix 實現(xiàn)了許多高層次目標(biāo):安全自動化、風(fēng)險分類、自動修復(fù)和漏洞識別等等。我們有許多成功的 Python 開源項目,包括 Security Monkey(我們團隊最活躍的開源項目)。我們利用 Python 來保護使用 Bless 的 SSH 資源?;A(chǔ)設(shè)施安全團隊利用 Python 幫助使用 Repokid 進行 IAM 權(quán)限調(diào)整。我們使用 Python 來幫助使用 Lemur 生成 TLS 證書。

      我們最近的一些項目包括 Prism:一種批處理框架,用于幫助安全工程師測量平整道路采用、風(fēng)險因素,并識別源代碼中的漏洞。我們目前為 Prism 提供了 Python 和 Ruby 庫。Diffy 取證分類工具完全使用 Python 編寫。我們還使用 Python 來檢測使用 Lanius 的敏感數(shù)據(jù)。

      個性化算法

      我們在更廣泛的個性化機器學(xué)習(xí)基礎(chǔ)設(shè)施中,廣泛使用 Python 來訓(xùn)練一些 Netflix 體驗關(guān)鍵方面的機器學(xué)習(xí)模型:從我們的推薦算法到圖片個性化,再到營銷算法。例如,一些算法使用 TensorFlow、Keras 和 PyTorch 來學(xué)習(xí)深度神經(jīng)網(wǎng)絡(luò),XGBoost 和 LightGBM 來學(xué)習(xí)梯度提升決策樹,或者 Python 中更廣泛的科學(xué)堆棧(numpy、scipy、sklearn、matplotlib、pandas、cvxpy 等等)。由于我們不斷嘗試新的方法,我們使用 Jupyter Notebook 來驅(qū)動我們的許多實驗。我們還開發(fā)了一些更高級別的庫,以幫助將這些庫與我們的其他生態(tài)系統(tǒng)集成(如數(shù)據(jù)訪問、事實記錄和特征提取、模型評估和發(fā)布)。

      機器學(xué)習(xí)基礎(chǔ)設(shè)施

      除了個性化之外,Netflix 還將機器學(xué)習(xí)應(yīng)用于整個公司的數(shù)百個用例中。其中有許多應(yīng)用程序都是 Metaflow 提供支持的,這是一個 Python 框架,可以使從原型階段到生產(chǎn)階段執(zhí)行機器項目變得很容易。

      Metafolw 提升了 Python 的極限:我們利用良好的并行化和優(yōu)化的 Python 代碼來獲取 10Gbps 的數(shù)據(jù),處理內(nèi)存中數(shù)億個數(shù)據(jù)點,并協(xié)調(diào)數(shù)萬個 CPU 內(nèi)核的計算。

      Notebook

      我們是 Netflix 的 Jupyter Notebook 的擁躉,我們之前已經(jīng)寫過這項投資的原因和性質(zhì),請參閱《Beyond Interactive: Notebook Innovation at Netflix》:

      https:///netflix-techblog/notebook-innovation-591ee3221233

      但是,在我們?nèi)绾翁峁┻@些服務(wù)方面,Python 發(fā)揮著重要的作用。當(dāng)我們需要開發(fā)、調(diào)試、探索和原型化與 Jupyter 生態(tài)系統(tǒng)的不同交互時,Python 是一種主要語言。我們使用 Python 為 Jupyter 服務(wù)器構(gòu)建自定義擴展,允許我們代表用戶管理日志記錄、歸檔、發(fā)布和克隆筆記本等任務(wù)。我們通過不同的 Jupyter 內(nèi)核為用戶提供了多種風(fēng)格的 Python,并使用 Python 管理這些內(nèi)核規(guī)范的部署。

      編   排

      大數(shù)據(jù)編排團隊(The Big Data Orchestration team)負(fù)責(zé)提供所有服務(wù)和工具來安排和執(zhí)行 ETL 和 Ad hoc 管道。

      AI 前線注:Ad hoc 的意思是“特設(shè)的、特定目的的(地)、即席的、臨時的、將就的、專案的”。這個短語通常用來形容一些特殊的、不能用于其它方面的的,為一個特定的問題、任務(wù)而專門設(shè)定的解決方案。

      編排服務(wù)的許多組件都是用 Python 編寫的。從我們的調(diào)度程序開始,它使用 Jupyter Notebook 和 papermill 來提供模板化的作業(yè)類型(如 Spark、Presto 等等)。這使得我們的用戶能夠以標(biāo)準(zhǔn)化的、簡單的方式來表達(dá)需要執(zhí)行的工作。要想知道有關(guān)這一主題的更多詳情,請參閱《Part2:Scheduling Noteebooks at Netflix》:

      https:///netflix-techblog/scheduling-notebooks-348e6c14cfd6

      在需要人工干預(yù)的情況下,我們一直使用 notebook 作為真正的運行手冊。即:重新啟動過去一小時內(nèi)所有失敗的事情。

      在內(nèi)部,我們還構(gòu)建了一個完全用 Python 編寫的事件驅(qū)動平臺。我們已經(jīng)創(chuàng)建了來自多個系統(tǒng)的事件流,這些系統(tǒng)將統(tǒng)一到一個工具中。這允許我們能夠定義過濾事件的條件,以及響應(yīng)或路由事件的動作。因此,我們能夠解耦微服務(wù),并能夠了解數(shù)據(jù)平臺上發(fā)生的所有事情。

      我們的團隊還構(gòu)建了 pygenie 客戶端,它與 genie(一種聯(lián)合作業(yè)執(zhí)行服務(wù))接口。在內(nèi)部,我們對這個庫進行了額外的擴展,可應(yīng)用業(yè)務(wù)約定并與 Netflix 平臺集成。這些庫是用戶以變成方式與大數(shù)據(jù)平臺中的工作進行交互的主要方式。

      最后,我們團隊致力于為 papermill 和 scrapbook 開源項目做出貢獻(xiàn)。我們?yōu)榇诉M行的工作既適用于我們自己的用例,也適用于外部用例。我們的這些努力在開源社區(qū)獲得了很大吸引力,我們很高興能夠為這些共享項目做出貢獻(xiàn)。

      實驗平臺

      用于實驗的科學(xué)計算團隊正在為科學(xué)家和工程師創(chuàng)建一個分析 AB 測試和其他實驗的平臺??茖W(xué)家和工程師可以在數(shù)據(jù)、統(tǒng)計和可視化這三個方面做出新的創(chuàng)新。

      Metrics Repo 是一個基于 PyPika 的 Python 框架,它允許貢獻(xiàn)者編寫可重用的參數(shù)化 SQL 查詢。它是任何新分析的切入點。

      因果模式庫是一個 Python 和 R 框架,供科學(xué)家為因果推理提供新的模型。它利用了 PyArrow 和 RPy2,因此可以使用這兩種語言的任何一種無縫地計算統(tǒng)計數(shù)據(jù)。

      可視化庫是基于 Plotly。因為 Plotly 是一種廣泛采用的可視化規(guī)范,因此有許多工具可以讓貢獻(xiàn)者生成我們平臺可以使用的輸出。

      合作伙伴生態(tài)系統(tǒng)

      合作伙伴生態(tài)系統(tǒng)小組正在擴展 Python 在設(shè)備上測試 Netflix 應(yīng)用程序的使用范圍。Python 正在形成一個新的 CI 基礎(chǔ)架構(gòu)的核心,包括控制我們的編排服務(wù)器、控制 Spinnaker、測試用例查詢和過濾,以及在設(shè)備和容器上調(diào)度測試運行。使用 TensorFlow 在 Python 中進行額外的運行后分析,以確定哪些測試最有可能顯示哪些設(shè)備上的問題。

      視頻編碼與媒體云工程

      我們的團隊負(fù)責(zé)對 Netflix 目錄進行編碼(和重新編碼),并利用機器學(xué)習(xí)來深入了解該目錄。我們將 Python 用于大約 50 個項目,如 vmaf 和 mezzfs,我們使用名為 Archer 的媒體映射化簡平臺( media map-reduce platform)構(gòu)建計算機視覺解決方案,并在許多內(nèi)部項目中使用 Python。我們還開源了一些工具來簡化 Python 項目的開發(fā) / 分發(fā),比如 setupmeta 和 pickley。

      Netflix 動畫與 NVFX

      Python 是我們用于創(chuàng)建動畫和 VFX 內(nèi)容的所有主要應(yīng)用程序的行業(yè)標(biāo)準(zhǔn),毫無疑問,我們正在大量使用它。我們與 Maya 和 Nuke 的所有集成都是用 Python 實現(xiàn)的,而我們的 Shotgun 工具的大部分也是用 Python 實現(xiàn)的。我們剛剛開始在云端中使用我們的工具,并與其部署我們自己的許多定制的 Python AMI / 容器。

      內(nèi)容機器學(xué)習(xí)、科學(xué)與分析

      內(nèi)容機器學(xué)習(xí)團隊廣泛使用 Python 來開發(fā)機器學(xué)習(xí)模型,這些模型是預(yù)測所有內(nèi)容的受眾規(guī)模、收視率和其他需求指標(biāo)的核心。

      文中涉及到的部分項目、庫的官方地址:

      Open Connect:https://openconnect./en/

      bpython:https:///

      nteract:https:///

      visualization tools:https://github.com/nteract/nteract/tree/master/packages/data-explorer

      Spectator:https://github.com/Netflix/spectator-py

      Security Monkey:https://github.com/Netflix/security_monkey

      Bless:https://github.com/Netflix/bless

      Repokid:https://github.com/Netflix/repokid

      Lemur:https://github.com/Netflix/lemur

      papermill:https://papermill./en/latest/

      pygenie:https://github.com/Netflix/pygenie

      scrapbook:https://nteract-scrapbook./en/latest/

      PyPika:https://pypika./en/latest/

      PyArrow:https://arrow./docs/python/

      RPy2:https://rpy2./en/version_2.8.x/

      Plotly:https:///

      vmaf:https://github.com/Netflix/vmaf/blob/master/resource/doc/references.md

      mezzfs:https:///netflix-techblog/mezzfs-mounting-object-storage-in-netflixs-media-processing-platform-cda01c446ba

      setupmeta:https:///project/setupmeta/

      pickley:https:///project/pickley/

      原文鏈接:

      https:///netflix-techblog/python-at-netflix-bba45dae649e

      今日薦文

      點擊下方圖片即可閱讀

      2019 年,醫(yī)療 AI 的熱潮將會退去


      福利時間

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多