Python et Netflix: que se passe-t-il lorsque vous diffusez un film?

Sachez ce qu'est Netflix et comment ce géant du streaming utilise Python dans ses différents domaines tels que les opérations, l'apprentissage automatique, la sécurité de l'information, etc.

La destination unique pour chaque cinéphile est, bien sûr, Netflix. Mais que se passerait-il si vous regardiez votre film préféré et qu'il continue de se mettre en mémoire tampon de temps en temps? Vous fermeriez simplement l'application et choisiriez une autre option. Mais comment gère-t-il rapidement le trafic de millions d'utilisateurs? Grâce à . Dans cet article, explorons comment Netflix utilise Python.



marionnette vs chef vs docker

Commençons par jeter un coup d'œil aux thèmes qui remplissent cet article:



Alors, commençons. :)

Introduction à Netflix

Logo Netflix-Comment Netflix utilise Python-EdurekaNetflix est une société américaine qui propose des services de vidéo à la demande (VOD). Basée à Los Gatos, en Californie, Netflix compte environ 148 millions d'abonnés dans le monde et le nombre ne cesse cependant de croître chaque jour. En une période d'environ deux décennies, Netflix est devenu le «roi du clan» des plus grandes séries télévisées et films à travers le monde. Être la marque à la croissance la plus rapide d'Amérique et avoir un chiffre d'affaires de 20,5 milliards de dollars en 2019, suffit pour qu'elle soit un «accroche-regard», intéressant ainsi tout dans ses sphères technologiques.



Sur la base du même domaine d'intérêt, Netflix a révélé comment il utilise le langage le plus tendance, Python , pour son infrastructure.

Voyons maintenant comment Netflix utilise Python?



Comment Netflix utilise Python?

«Nous utilisons Python tout au long du cycle de vie du contenu, depuis le choix du contenu à financer jusqu'à l'exploitation du CDN qui sert la vidéo finale à 148 millions de membres» - Ingénieurs de Netflix

Rangée fdes domaines administratifs à la fiabilité et Science des données à etc., Netflix utilise Python pour presque tous les aspects de son entreprise.

Voyons maintenant plus en détail comment est utilisé dans divers domaines chez Netflix:

Ouvrez Connect:

Le CDN (Content Delivery Network) que Netflix utilise est Open Connect. Ouvrir la connexion entre essentiellement en image lorsque vous cliquez sur le bouton «jouer». Tout le contenu livré à l'utilisateur final est pris en charge par ce CDN.

Open Connect nécessite divers autres systèmes logiciels pour le concevoir, le construire et le faire fonctionner, eux-mêmes écrits en Python. Non seulement cela, les périphériques réseau sous-jacents à ce CDN sont des applications Python, car Python joue un rôle important dans la résolution des problèmes de réseau.

Équipe d'ingénierie de la demande:

L’équipe d’ingénierie de la demande est chargée de gérer les basculements régionaux du cloud Netflix, l’administration du trafic, la gestion des opérations de capacité (en tenant compte de la limite dans laquelle le contenu peut être rendu utilisable) et l’efficacité du parc. Les éléments de Python utilisés par cette équipe sont:

NumPy et SciPy:

et SciPy sont les bibliothèques utilisées pour le calcul scientifique. Netflix utilise ces bibliothèques Python pour effectuer une analyse numérique permettant ainsi la gestion des basculements régionaux.

Boto3:

Boto3 est le kit de développement logiciel (SDK) de pour Python. Cela aide les développeurs Python à intégrer Python dans AWS, permettant ainsi le développement dans l'infrastructure.

RQ (Redis Queue):

Il s'agit d'une bibliothèque Python qui permet de suivre les tâches présentes dans la file d'attente et permet leur exécution, permettant ainsi la gestion des charges de travail asynchrones.

Ballon:

Enfin, Netflix utilise les API Flask (bibliothèque de développement Web Python) pour lier ensemble tous les segments précédents.

Netflix utilise qui est une application Web open-source, utilisée pour le développement Python avec nteract (extension pour Jupyter) à grande échelle. Jupyter est connu pour être populaire pour l'analyse de données. Il sert très bien dans l'analyse et la visualisation des données opérationnelles, qui à leur tour aident à détecter les régressions de capacité.

Infrastructure d'apprentissage automatique:

va de la création d'algorithmes de personnalisation à la détermination des cas d'utilisation. Les algorithmes de personnalisation aident à former les modèles d'apprentissage automatique selon les normes Netflix. Il propose des recommandations personnalisées, des contours au quotidien, des générations d'étiquettes, etc.

Les bibliothèques nécessaires pour apprendre Réseaux de neurones profonds sont TensorFlow , Dur , et Pytorch tandis que XGBoost et LightGBM pour les arbres de décision dégradés.Ils ont également développé quelques bibliothèques de plus haut niveau qui aident à se combiner avec les domaines de travail tels que la journalisation des faits, l'extraction de fonctionnalités, la publication, etc. En dehors de tout cela, Netflix utilise également MetaFlow pour créer des projets d'apprentissage automatique.

«Metaflow repousse les limites de Python: nous exploitons un code Python bien parallélisé et optimisé pour récupérer des données à 10 Gbit / s, gérer des centaines de millions de points de données en mémoire et orchestrer le calcul sur des dizaines de milliers de cœurs de processeur» - Netflix

Big Data:

La L'équipe est chargée d'exécuter les pipelines ETL (extraction, transformation, chargement) et Adhoc. Une grande partie de cette orchestration est écrite en Python. Cette équipe utilise un planificateur qui s'exécute sur les notebooks Jupyter avec papermill pour produire des types de travaux avec des modèles, par exemple, , Bientôt, etc.

En plus de cela, l'équipe a également créé une plate-forme événementielle entièrement construite sur Python. Ils ont créé un certain nombre d'événements et les ont combinés en un seul permettant à Netflix de filtrer, de réagir et d'acheminer les événements. Pygenie fait également partie de cette infrastructure qui s'interface avec Genie (service d'exécution de travaux en vedette).

Expérimentation scientifique:

Il s'agit d'une plateforme créée par l'équipe d'expérimentation scientifique pour permettre Test A / B avec quelques autres expérimentations. Ici, les scientifiques et les ingénieurs peuvent présenter de nouvelles innovations en matière de données, de statistiques et de visualisation.

Le Python qui est implémenté ici est Repo de métriques qui est basé sur PyPika et permet l'écriture de requêtes paramétrées réutilisables. Pour le secteur statistique, PyArrow et RPy2 sont utilisés pour calculer les statistiques en Python ou en R. Plotly aide dans les visualisations.

Encodage vidéo / Ingénierie Cloud Media:

Cette équipe est responsable des tâches d'encodage et de réencodage du catalogue Netflix. Python est utilisé environ pour 50 projets tels que VMAF (Fusion d'évaluation multi-méthodes vidéo) et MezzFS (Système de fichiers mezzanine), Solutions de vision par ordinateur (traite des images) en utilisant Archer , etc.

Animation Netflix et NVFX:

Python forme la base de toutes les animations et effets visuels (VFX) chez Netflix. Toutes les unions Maya et Nuke sont effectuées sur Python.

IS (sécurité de l'information):

Netflix utilise des systèmes SI optimisés par Python pour la correction automatique, l'automatisation de la sécurité, la classification des risques, etc. Le projet Python open source le plus actif de cette équipe est Singe de sécurité . Netflix utilise également BÉNIR (Service SSH Lambda Ephemeral de Bastion) protéger SSH (Secure Shell) ressources. RepoKid est utilisé pour accorder DÉJÀ les autorisations et les certificats TLS sont attribués via Lemur. Ces deux tâches reposent principalement sur Python.

Surveillance et correction automatique:

Cette équipe est connue sous le nom d'équipe Insight Engineering. Ils construisent et exécutent des outilspour des informations opérationnelles, des diagnostics, une correction automatique et des modifications. Pour la plupart de ses services, cette équipe utilise Python, par exemple, la bibliothèque cliente Spectator Python. Cette bibliothèque est utilisée pour enregistrer des séries chronologiques dimensionnelles. Parallèlement à ces bibliothèques, des produits tels que Winston et Bolt sont également basés sur des frameworks Python qui sont , Gunicorn et Flask-RestPlus.

En résumé, on peut facilement prétendre que Python est la force motrice de Netflix. Avec cela, nous sommes arrivés à la fin de ce blog sur «Comment Netflix utilise Python?». J'espère que vous comprenez tout ce qui a été discuté.

Pour obtenir des connaissances approfondies sur Python ainsi que sur ses différentes applications, vous pouvez vous inscrire en direct avec une assistance 24/7 et un accès à vie.

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires de ce blog «Comment Python utilise Netflix» et nous vous répondrons dans les plus brefs délais.