Python и Netflix: Какво се случва, когато стриймвате филм?



Знаете какво е Netflix и как този стрийминг гигант използва Python в различните му домиани като операции, машинно обучение, защита на информацията и т.н.

Еднократната дестинация за всеки любител на филма е, разбира се, Netflix. Но какво, ако гледате любимия си филм и той продължава да се буферира от време на време? Просто щяхте да изключите приложението и да изберете друга опция. Но как управлява бързо трафика на милиони потребители? Благодарение на . В тази статия нека разгледаме как Netflix използва Python.

Нека започнем, като разгледаме набързо темите, които изпълват тази статия:





Така че нека да започнем. :)

Въведение в Netflix

Лого на Netflix-Как Netflix използва Python-EdurekaNetflix е американска компания, която предоставя услуги по видео по заявка (VOD). Със седалище в Лос Гатос, Калифорния, Netflix има около 148 милиона абонати по целия свят и броят им обаче расте всеки ден. За период от около две десетилетия Netflix се очертава като „Кралят на клана“ за най-големите телевизионни сериали и филми в целия свят. Това, че е най-бързо развиващата се марка на Америка и има приходи от $ 20,5 милиарда през 2019 г., е достатъчно, за да бъде „привличащо вниманието“, като по този начин е интересно за всички нейни технологични сфери.



Въз основа на същата област на интерес, Netflix разкри как използва най-популярния език, Python , за своята инфраструктура.

И така, нека да продължим, за да видим как всъщност Netflix използва Python?



Как Netflix използва Python?

„Използваме Python през пълния жизнен цикъл на съдържанието, от решението кое съдържание да финансира до експлоатацията на CDN, който обслужва окончателното видео, до 148 милиона членове“ - Инженери в Netflix

Обхват from Административни домейни за надеждност и Наука за данните да се и т.н., Netflix използва Python за почти всеки ръб на техния бизнес.

Сега нека разгледаме по-задълбочено как се използва в различни домейни в Netflix:

Отворете Connect:

CDN (Network Delivery Network), която Netflix използва, е Open Connect. Open connect основно се появява в картината, когато щракнете върху бутона „пусни“. Цялото съдържание, доставено на крайния потребител, се гледа от този CDN.

Open connect изисква различни други софтуерни системи за проектиране, изграждане и експлоатация, които от своя страна са написани на Python. Не само това, мрежовите устройства, лежащи в основата на този CDN, са приложения на Python, тъй като Python е водещ в решаването на мрежови проблеми.

Инженерен екип за търсене:

Екипът на Demand Engineering е отговорен за обработката на регионалните откази на облака на Netflix, администрирането на трафика, управлението на операциите с капацитет (като се грижи за ограничението, до което съдържанието може да бъде направено за обслужване) и ефективността на флота. Елементите на Python, използвани от този екип, са:

NumPy и SciPy:

и SciPy са библиотеките, използвани за научни изчисления. Netflix използва тези библиотеки на Python за извършване на числен анализ, като по този начин позволява управление на регионални откази.

Boto3:

Boto3 е комплектът за разработване на софтуер (SDK) на за Python. Това помага на разработчиците на Python да интегрират Python в AWS, като по този начин позволяват развитие в инфраструктурата.

RQ (Redis Queue):

Това е библиотека на Python, която помага да се проследяват задачите, които присъстват в опашката и позволява тяхното изпълнение, като по този начин позволява управление на асинхронни натоварвания.

Колба:

И накрая, Netflix използва API на Flask (библиотека за уеб разработка на Python), за да обвърже всички предишни сегменти.

Netflix използва което е уеб приложение с отворен код, използвано за разработка на Python заедно с взаимодействат (разширение за Юпитер) в голям мащаб. Известно е, че Юпитер е популярен за анализ на данни. Той служи много добре при анализ и визуализация на оперативни данни, което от своя страна помага при откриване на регресии на капацитета.

Инфраструктура за машинно обучение:

варира от създаване на алгоритми за персонализация до измисляне на случаите на използване. Алгоритмите за персонализация помагат да се обучат моделите за машинно обучение според стандартите на Netflix. Той предоставя персонализирани препоръки, ежедневни очертания, поколения етикети и т.н.

Библиотеките, необходими за учене Дълбоки невронни мрежи са TensorFlow , Трудно , и Питорх като има предвид, че XGBoost и LightGBM за усилени градиентни дървета за вземане на решения.Те също така са разработили немалко библиотеки от по-високо ниво, които помагат при комбинирането с работните области като регистриране на факти, извличане на функции, публикуване и др. Освен всичко това, Netflix използва и MetaFlow за създаване на проекти за машинно обучение.

„Metaflow разширява границите на Python: Ние използваме добре успореден и оптимизиран код на Python, за да извличаме данни с 10Gbps, да обработваме стотици милиони точки от данни в паметта и да организираме изчисления за десетки хиляди CPU ядра“ - Netflix

Голяма информация:

The екипът е отговорен за изпълнение на ETL (извличане, преобразуване, зареждане) и Adhoc тръбопроводи. Основна част от тази оркестрация е написана на Python. Този екип използва график, който работи на Jupyter Notebooks с papermill, за да създава типове задачи с шаблони, например, , Скоро и т.н.

В допълнение към това, екипът е създал и платформа, управлявана от събития, която е изградена изцяло на Python. Те са създали редица събития и са го комбинирали в едно, което позволява на Netflix да филтрира, реагира и насочва събития. Пигения също е част от тази инфраструктура, която взаимодейства с Genie (включена услуга за изпълнение на задачи).

Научен експеримент:

Това е платформа, създадена от екипа за научни експерименти, за да позволи A / B тестване заедно с някои други експерименти. Тук учените и инженерите могат да представят нови иновации в данните, статистиката и визуализацията.

Питонът което се прилага тук е Репо метрика който се основава на PyPika и позволява писане на повторно използвани параметризирани заявки. За сектора на статистиката PyArrow и RPy2 се използват за изчисляване на статистически данни в Python или R. Сюжетно помага при визуализации.

Кодиране на видео / Media Cloud Engineering:

Този екип отговаря за задачите за кодиране и прекодиране за каталога на Netflix. Python се използва приблизително за 50 проекта като VMAF (Video Fusion Multi-Method Fusion) и MezzFS (Фаза на мецанин), Решения за компютърно зрение (занимава се с изображения) използване Стрелец и т.н.

как да направите масив от обекти в Java

Netflix Animation и NVFX:

Python формира основата за всички анимации и визуални ефекти (VFX) в Netflix. Всички съюзи на Maya и Nuke се правят на Python.

IS (информационна сигурност):

Netflix използва системи за IS, задвижвани с Python, за автоматично възстановяване, автоматизация на сигурността, класификация на рисковете и др. Най-активният проект на Python с отворен код на този екип е Маймуна за сигурност . Netflix също използва БЛАГОСЛОВИЕ (Bastion’s Lambda Ephemeral SSH Service) защитавам SSH (Secure Shell) ресурси. RepoKid се използва за предоставяне ВЕЧЕ разрешенията и TLS сертификатите се разпределят чрез Lemur. И двете задачи разчитат главно на Python.

Мониторинг и автоматично отстраняване:

Този екип е известен като екип на Insight Engineering. Те изграждат и изпълняват инструментиза оперативно прозрение, диагностика, авто-саниране и промяна. За повечето от своите услуги този екип използва Python, например клиентската библиотека Spectator Python. Тази библиотека се използва за запис на размерни времеви редове. Заедно с тези библиотеки, продукти като Winston и Bolt също са изградени върху Python рамки, които са , Gunicorn и Flask-RestPlus.

Обобщавайки всичко, може лесно да се твърди, че Python е движещата сила на Netflix. С това стигнахме до края на този блог на тема „Как Netflix използва Python?“. Надявам се да сте наясно с всичко, което е обсъждано.

За да получите задълбочени познания за Python заедно с различните му приложения, можете да се регистрирате за живо с 24/7 поддръжка и доживотен достъп.

Имате въпрос към нас? Моля, споменете го в раздела за коментари в този блог „Как Python използва Netflix“ и ние ще се свържем с вас възможно най-скоро.