Python a Netflix: Čo sa stane, keď streamujete film?



Zistite, čo je Netflix a ako tento streamovací gigant používa Python v rôznych doménach, ako sú operácie, strojové učenie, bezpečnosť informácií atď.

Jediným kontaktným miestom pre každého filmového nadšenca je samozrejme Netflix. Čo by ste však robili, keby ste pozerali svoj obľúbený film a ten sa každú chvíľu neustále načítava? Aplikáciu by ste jednoducho vypli a vybrali inú možnosť. Ako však rýchlo spravuje prenosy miliónov používateľov? Vďaka . V tomto článku sa pozrime na to, ako Netflix používa Python.

Začnime krátkym prehľadom tém, ktoré napĺňajú tento článok:





Tak poďme na to. :)

Úvod do služby Netflix

Logo Netflix - Ako Netflix používa Python-EdurekaNetflix je americká spoločnosť, ktorá poskytuje služby Video on Demand (VOD). Spoločnosť Netflix so sídlom v Los Gatos v Kalifornii má okolo 148 miliónov predplatiteľov po celom svete a ich počet však každým dňom rastie. V období približne dvoch desaťročí sa Netflix stal „kráľom klanu“ najväčšej televíznej série a filmov na celom svete. Byť najrýchlejšie rastúcou značkou v Amerike a s príjmom 20,5 miliárd dolárov v roku 2019 stačí na to, aby bola „lákadlom“, a tým zaujala vo všetkých svojich technologických sférach.



Na základe rovnakej oblasti záujmu Netflix odhalil, ako využíva najpopulárnejší jazyk, Python , pre svoju infraštruktúru.

Poďme sa teda pozrieť, ako vlastne Netflix používa Python?



Ako Netflix používa Python?

„Používame Python počas celého životného cyklu obsahu, od rozhodnutia, ktorý obsah budeme financovať, až po prevádzkovanie siete CDN, ktorá slúži na finálne video, 148 miliónom členov.“ - Inžinieri spoločnosti Netflix

V rozmedzí fz administratívnych domén na spoľahlivosť a Data Science do atď., Netflix používa Python pre takmer všetky oblasti ich podnikania.

Teraz sa pozrime podrobnejšie na to, ako sa v Netflixe používa v rôznych doménach:

Otvoriť pripojenie:

Sieť CDN (Content Delivery Network), ktorú Netflix využíva, je Open Connect. Otvorené pripojenie sa v podstate dostane do obrazu po kliknutí na tlačidlo „prehrať“. O všetok obsah doručený koncovému používateľovi sa stará táto sieť CDN.

Open connect vyžaduje na jeho návrh, výrobu a prevádzku rôzne ďalšie softvérové ​​systémy, ktoré sú naopak napísané v jazyku Python. Nielen to, sieťové zariadenia, z ktorých vychádza toto CDN, sú aplikácie v jazyku Python, pretože Python je popredný v riešení problémov so sieťou.

Tím dopytového inžinierstva:

Tím Demand Engineering je zodpovedný za riešenie regionálnych zlyhaní cloudu Netflix, správy prenosu, správy prevádzkových kapacít (starostlivosť o limit, do ktorého je možné zabezpečiť dostupnosť obsahu) a efektívnosti flotily. Prvky Pythonu, ktoré používa tento tím, sú:

nájsť najväčší prvok v poli java -

NumPy a SciPy:

a SciPy sú knižnice používané na vedecké výpočty. Netflix používa tieto knižnice Pythonu na vykonávanie numerickej analýzy, čo umožňuje správu regionálnych zlyhaní.

Boto3:

Boto3 je sada pre vývoj softvéru (SDK) pre Python. To pomáha vývojárom Pythonu integrovať Python do AWS, čo umožňuje rozvoj infraštruktúry.

RQ (fronta Redis):

Toto je knižnica Pythonu, ktorá pomáha sledovať úlohy, ktoré sú vo fronte, a umožňuje ich vykonávanie, čo umožňuje správu asynchrónnych pracovných záťaží.

Banka:

Nakoniec Netflix používa rozhrania Flask (knižnica Python Web Development Library) na spojenie všetkých predchádzajúcich segmentov.

Netflix využíva čo je webová aplikácia s otvoreným zdrojovým kódom, ktorá sa používa na vývoj jazyka Python spolu s nteract (rozšírenie pre Jupyter) vo veľkom meradle. Je známe, že Jupyter je populárny pre analýzu dát. Slúži veľmi dobre pri analýze a vizualizácii prevádzkových údajov, čo pomáha pri zisťovaní regresií kapacity.

Infraštruktúra strojového učenia:

siaha od vytvorenia algoritmov prispôsobenia až po zisťovanie prípadov použitia. Personalizačné algoritmy pomáhajú trénovať modely strojového učenia podľa štandardov Netflix. Poskytuje prispôsobené odporúčania, obrysy na dennej báze, označovanie generácií atď.

Knižnice sa musia učiť Hlboké neurónové sieteTensorFlow , Ťažko a Pytorch keďže XGBoost a LightGBM pre rozhodovacie stromy zosilnené gradientom.Vyvinuli tiež niekoľko knižníc vyššej úrovne, ktoré pomáhajú pri kombinovaní s pracovnými oblasťami, ako sú zaznamenávanie faktov, extrakcia funkcií, publikovanie atď. Okrem toho všetkého Netflix tiež používa MetaFlow vytvárať projekty strojového učenia.

„Metaflow posúva hranice Pythonu: Využívame dobre paralelizovaný a optimalizovaný kód Pythonu na načítanie dát rýchlosťou 10 Gb / s, spracovanie stoviek miliónov dátových bodov v pamäti a organizáciu výpočtu na desiatkach tisíc jadier procesora“ - Netflix

Veľké dáta:

The tím je zodpovedný za vykonávanie potrubí ETL (extrakcia, transformácia, načítanie) a Adhoc. Hlavná časť tejto orchestrácie je napísaná v jazyku Python. Tento tím používa plánovač, ktorý beží na notebookoch Jupyter s papierňou, na výrobu typov úloh pomocou šablón, napríklad , Čoskoro atď.

Okrem toho tím vytvoril aj platformu založenú na udalostiach, ktorá je úplne postavená na Pythone. Vytvorili množstvo udalostí a skombinovali ich do jednej, ktorá umožnila Netflixu filtrovať, reagovať a smerovať udalosti. Pygenie je tiež súčasťou tejto infraštruktúry, ktorá je prepojená s Genie (služba vykonávania úloh).

Vedecké experimenty:

Toto je platforma, ktorú vytvoril vedecký experimentálny tím A / B testovanie spolu s niektorými ďalšími experimentmi. Vedci a inžinieri tu môžu predstavovať nové inovácie v oblasti dát, štatistík a vizualizácie.

Python ktorý je tu implementovaný je Republika metrík ktorá vychádza z PyPika a umožňuje zápis opakovane použiteľných parametrizovaných dotazov. Pre štatistický sektor PyArrow a RPy2 sa používajú na výpočet štatistík buď v Pythone, alebo R. Sprisahanecky pomáha pri vizualizáciách.

Kódovanie videa / Media Cloud Engineering:

Tento tím je zodpovedný za úlohy kódovania a prekódovania katalógu Netflix. Python sa používa približne na 50 projektov ako napr VMAF (Video Multi-Method Assessment Fusion) a MezzFS (Súborový systém Mezzanine), Riešenia počítačového videnia (zaoberá sa snímkami) pomocou Lukostrelec , atď.

Animácie Netflix a NVFX:

Python tvorí základ pre všetky animácie a vizuálne efekty (VFX) v Netflixe. Všetky odbory Mayov a Nukeov fungujú na Pythone.

IS (informačná bezpečnosť):

Netflix používa systémy IS napájané z Pythonu na automatickú nápravu, automatizáciu zabezpečenia, klasifikáciu rizika atď. Najaktívnejší open source projekt Pythonu tohto tímu je Security Monkey . Netflix tiež používa BLESK (Bastionova dočasná služba SSH Lambda) chrániť SSH Zdroje (Secure Shell). RepoKid sa používa na udelenie povolenia a certifikáty TLS sú pridelené prostredníctvom služby Lemur. Obe tieto úlohy sa spoliehajú hlavne na Python.

Monitorovanie a automatická náprava:

Tento tím je známy ako tím Insight Engineering. Budujú a vykonávajú nástrojepre prevádzkový prehľad, diagnostiku, automatickú nápravu a zmeny. Pre väčšinu svojich služieb tento tím využíva Python, napríklad klientsku knižnicu Spectator Python. Táto knižnica sa používa na zaznamenávanie rozmerných časových radov. Spolu s týmito knižnicami sú produkty ako Winston a Bolt tiež postavené na rámcoch Pythonu, ktoré sú , Gunicorn a Flask-RestPlus.

Keď to všetko zhrnieme, dá sa ľahko tvrdiť, že Python je hybnou silou Netflixu. Týmto sme sa dostali na koniec tohto blogu o tom, „Ako Netflix používa Python?“. Dúfam, že máte všetko jasné, o čom sa diskutovalo.

Ak chcete získať podrobné informácie o Pythone a jeho rôznych aplikáciách, môžete sa zaregistrovať naživo s nepretržitou podporou a doživotným prístupom.

Máte na nás otázku? Uveďte to, prosím, v sekcii komentárov v tomto blogu „Ako Python používa Netflix“ a my sa vám ozveme čo najskôr.