Python un Netflix: kas notiek, straumējot filmu?



Ziniet, kas ir Netflix un kā šis straumēšanas gigants izmanto Python dažādos domānos, piemēram, Operācijas, Mašīnmācīšanās, Informācijas drošība utt.

Katras filmas cienītājs vienas pieturas punkts, protams, ir Netflix. Bet ja jūs skatītos savu iecienīto filmu, un tā ik pa brīdim turpina buferizēties? Jūs vienkārši izslēgtu lietojumprogrammu un izvēlētos citu iespēju. Bet kā tas ātri pārvalda miljonu lietotāju datplūsmu? Pateicoties . Šajā rakstā izpētīsim, kā Netflix izmanto Python.

Sāksim ātri apskatīt tēmas, kas aizpilda šo rakstu:





Tātad sāksim. :)

Ievads Netflix

Netflix logotips - kā Netflix izmanto Python-EdurekaNetflix ir amerikāņu uzņēmums, kas sniedz video pēc pieprasījuma (VOD) pakalpojumus. Netflix, kuras galvenā mītne atrodas Los Gatos, Kalifornijā, ir aptuveni 148 miljoni abonentu visā pasaulē, un to skaits katru dienu arvien pieaug. Aptuveni divu desmitgažu laikā Netflix ir kļuvis par “klana karali” lielākajām TV sērijām un filmām visā pasaulē. Pietiek ar to, ka tas ir visstraujāk augošais Amerikas zīmols un ienākumi 20,5 miljardu ASV dolāru apmērā 2019. gadā ir pietiekami, lai tas kļūtu par “uzmanību piesaistošu”, tādējādi interesantu visās tās tehnoloģiskajās jomās.



Pamatojoties uz to pašu interešu jomu, Netflix ir atklājis, kā tā izmanto visiecienītāko valodu, Python , par tās infrastruktūru.

Tātad tagad ejam tālāk, lai redzētu, kā Netflix faktiski izmanto Python?



Kā Netflix izmanto Python?

'Mēs izmantojam Python visā satura dzīves ciklā, sākot ar lēmumiem par finansējamo saturu līdz CDN, kas apkalpo gala videoklipu, darbībai līdz 148 miljoniem dalībnieku' - inženieri Netflix

Sākot fno administratīvajām jomām līdz uzticamībai un Datu zinātne uz utt., Netflix izmanto Python gandrīz visās uzņēmējdarbības jomās.

Tagad ieskatīsimies dziļāk, kā tiek izmantots dažādos Netflix domēnos:

Atvērt Connect:

Netflix izmantotais CDN (satura piegādes tīkls) ir Open Connect. Atvērtais savienojums būtībā nonāk attēlā, noklikšķinot uz pogas “Atskaņot”. Šis CDN pieskata visu galalietotājam piegādāto saturu.

Lai izveidotu savienojumu, tās projektēšanai, izveidošanai un darbināšanai ir nepieciešamas dažādas citas programmatūras sistēmas, kas savukārt ir rakstītas Python. Ne tikai tas, ka tīkla ierīces, kas ir šīs CDN pamatā, ir Python lietojumprogrammas, jo Python ir svarīga tīkla problēmu risināšanā.

Pieprasījuma inženieru komanda:

Pieprasījuma inženieru komanda ir atbildīga par Netflix mākoņa reģionālo kļūmju, satiksmes administrēšanas, jaudas operāciju pārvaldības (rūpējoties par limitu, līdz kuram saturu var padarīt darbspējīgu) un parka efektivitāti. Šīs komandas izmantotie Python elementi ir:

NumPy un SciPy:

un SciPy ir bibliotēkas, ko izmanto zinātniskai skaitļošanai. Netflix izmanto šīs Python bibliotēkas, lai veiktu skaitlisku analīzi, tādējādi ļaujot pārvaldīt reģionālās kļūmes.

Boto3:

Boto3 ir programmatūras izstrādes komplekts (SDK) par Python. Tas palīdz Python izstrādātājiem integrēt Python AWS, tādējādi ļaujot attīstīt infrastruktūru.

RQ (Redis rinda):

Šī ir Python bibliotēka, kas palīdz izsekot rindā esošajiem uzdevumiem un ļauj tos izpildīt, tādējādi ļaujot pārvaldīt asinhronās slodzes.

Kolba:

Visbeidzot, Netflix izmanto Flask (Python Web Development library) API, lai sasaistītu visus iepriekšējos segmentus.

kas ir tulks java

Netflix izmanto kas ir atvērtā koda tīmekļa lietotne, ko izmanto kopā ar nteract (paplašinājums Jupyteram) plašā mērogā. Ir zināms, ka Jupyter ir populārs datu analīzē. Tas ļoti labi kalpo operatīvo datu analīzē un vizualizācijā, kas savukārt palīdz noteikt jaudas regresijas.

Mašīnmācīšanās infrastruktūra:

svārstās no personalizācijas algoritmu izveides līdz lietojuma gadījumu noteikšanai. Personalizēšanas algoritmi palīdz apmācīt mašīnmācīšanās modeļus atbilstoši Netflix standartiem. Tas sniedz personalizētus ieteikumus, ikdienas izklāstus, iezīmē paaudzes utt.

Bibliotēkām vajadzēja mācīties Dziļi neironu tīkli ir TensorFlow , Grūti , un Pytorch tā kā XGBoost un LightGBM par gradientu paātrinātu lēmumu kokiem.Viņi ir izstrādājuši arī diezgan daudz augstāka līmeņa bibliotēku, kas palīdz apvienoties ar tādām darba jomām kā faktu reģistrēšana, funkciju iegūšana, publicēšana utt. Papildus tam Netflix izmanto arī MetaFlow izveidot mašīnmācīšanās projektus.

'Metaflow pārspēj Python robežas: mēs izmantojam labi paralēlizētu un optimizētu Python kodu, lai iegūtu datus ar ātrumu 10 Gb / s, apstrādātu simtiem miljonu datu punktu atmiņā un organizētu skaitļošanu vairākos desmitos tūkstošu CPU kodolu' - Netflix

glabāšanas klases c ++

Lielie dati:

The komanda ir atbildīga par ETL (ekstrakts, pārveidošana, ielāde) un adhoc cauruļvadu izpildi. Lielākā daļa šīs orķestrācijas ir uzrakstīta Python. Šī komanda izmanto plānotāju, kas darbojas ar Jupyter piezīmjdatoriem ar papīrfabriku, lai izveidotu darba veidus ar veidnēm, piemēram, , Drīz utt.

Papildus tam komanda ir izveidojusi arī uz notikumiem balstītu platformu, kas pilnībā veidota uz Python. Viņi ir izveidojuši vairākus pasākumus un apvienojuši to vienā, ļaujot Netflix filtrēt, reaģēt un virzīt notikumus. Pygenie ir arī daļa no šīs infrastruktūras, kas saskaras ar Genie (piedāvātais darba izpildes pakalpojums).

Zinātniskie eksperimenti:

Šī ir platforma, ko zinātnisko eksperimentu komanda izveidojusi, lai atļautu A / B testēšana kopā ar dažiem citiem eksperimentiem. Šeit zinātnieki un inženieri var iepazīstināt ar jauniem jauninājumiem datu, statistikas un vizualizācijas jomā.

Python kas šeit tiek īstenots, ir Metrika Repo kuras pamatā ir PyPika un ļauj rakstīt atkārtoti izmantojamus parametrizētus vaicājumus. Statistikas nozarē PyArrow un RPy2 tiek izmantoti, lai aprēķinātu statistiku vai nu Python, vai R. Plānoti palīdz vizualizācijās.

Video kodēšana / Media Cloud Engineering:

Šī komanda ir atbildīga par Netflix kataloga uzdevumu kodēšanu un pārkodēšanu. Python tiek izmantots aptuveni 50 projektiem, piemēram, VMAF (Video Multi-Method Assessment Fusion) un MezzFS (Mezzanine File System), Datoru redzes risinājumi (nodarbojas ar attēliem) izmantojot Strēlnieks utt.

Netflix animācija un NVFX:

Python veido pamatu visām Netflix animācijām un vizuālajiem efektiem (VFX). Visas Maya un Nuke savienības tiek veiktas Python.

IS (informācijas drošība):

Netflix izmanto ar Python darbināmas IS sistēmas automātiskai atlabšanai, drošības automatizācijai, risku klasifikācijai utt. Visaktīvākais šīs komandas atvērtā koda Python projekts ir Drošības mērkaķis . Netflix arī izmanto SVĒTĪT (Bastion’s Lambda īslaicīgais SSH dienests) aizsargāt SSH (Secure Shell) resursi. RepoKid tiek izmantots piešķiršanai JAU atļaujas un TLS sertifikāti tiek piešķirti, izmantojot Lemur. Abi šie uzdevumi galvenokārt balstās uz Python.

Uzraudzība un automātiskā labošana:

Šī komanda ir pazīstama kā Insight Engineering komanda. Viņi būvē un izpilda rīkusoperatīvai ieskatam, diagnostikai, automātiskai atlabšanai un izmaiņām. Lielākajā daļā savu pakalpojumu šī komanda izmanto Python, piemēram, klienta bibliotēku Spectator Python. Šī bibliotēka tiek izmantota dimensiju laikrindu ierakstīšanai. Kopā ar šīm bibliotēkām produkti, piemēram, Winston un Bolt, tiek veidoti arī uz Python sistēmām, kas ir , Gunicorn un Flask-RestPlus.

Apkopojot to visu, var viegli apgalvot, ka Python ir Netflix virzītājspēks. Ar to mēs esam nonākuši šī emuāra beigās “Kā Netflix izmanto Python?”. Es ceru, ka jums ir skaidrs viss apspriestais.

Lai iegūtu padziļinātas zināšanas par Python kopā ar dažādām lietojumprogrammām, varat reģistrēties tiešraidē ar diennakts atbalstu un piekļuvi visu mūžu.

Vai mums ir jautājums? Lūdzu, pieminējiet to šī emuāra “Kā Python izmanto Netflix” komentāru sadaļā, un mēs sazināsimies ar jums pēc iespējas ātrāk.