Netflix : Python est derrière chaque film que vous regardez,
voici comment l'entreprise utilise le langage de programmation pour ses services
Netflix est une entreprise américaine implantée qui propose des films et séries télévisées en flux continu sur Internet. En prévision de la conférence PyCon de la Python Software Foundation à Cleveland, le géant de la diffusion en continu a expliqué en détail comment il utilise le langage open source. Rappelons que Python est un langage de programmation interprété, multiparadigme et multiplateformes. En 2017 déjà, L’Institute of Electrical and Electronics Engineers (IEEE), la plus grande association mondiale de professionnels techniques, classait le langage comme le meilleur en 2017 en dépassant C et Java.
En début de cette année, Python est sacré langage de programmation de l'année 2018 par l'index TIOBE. Le langage est de plus en plus sollicité dans presque tous les domaines de la programmation allant de la programmation web au développement de l'intelligence artificielle. « De nos jours, c’est le premier langage le plus enseigné dans les universités. Il est numéro un dans le domaine statistique, numéro un en programmation d’IA, numéro un en rédaction de scripts et numéro un en tests de système d’écriture. En outre, Python est également un chef de file de la programmation Web et de l’informatique scientifique, etc. », a écrit TIOBE.
Chez Netflix, bon nombre des périphériques composant Open Connect, son réseau de diffusion de contenu, sont principalement gérés par des applications Python, qui effectuent différentes tâches telles que le suivi de l'inventaire des périphériques réseau, de leur état et de leur emplacement. Netflix explique que divers logiciels sont nécessaires à la conception, à la construction et à l'exploitation de leur infrastructure CDN (content delivery network, en français réseau de diffusion de contenu), et un nombre important d'entre eux sont écrits en Python. Les périphériques réseau qui sous-tendent une grande partie du CDN sont principalement gérés par les applications Python.
Ces applications suivent l’inventaire du réseau. La configuration de ces périphériques est contrôlée par plusieurs autres systèmes, notamment les serveurs d'origine de contenu, l'application de configurations des périphériques et le système de sauvegarde. L'interaction entre périphériques pour la collecte de données opérationnelles et la vérification de l'intégrité de ces données est aussi pilotée par une autre application Python. « Python est depuis longtemps un langage de programmation populaire dans l’espace réseau, car c’est un langage intuitif qui permet aux ingénieurs de résoudre rapidement les problèmes de réseau », déclare Netflix.
Pour améliorer l’expérience utilisateur, Netflix utilise Python pour la répartition du trafic, les opérations de capacité et de l'efficacité du cloud Netflix. À cet effet, « nous sommes fiers de dire que les outils de notre équipe sont construits principalement en Python », précise Netflix. Le service qui orchestre les basculements régionaux utilise des bibliothèques et extensions comme numpy et scipy pour effectuer une analyse numérique, boto3 (un SDK d'AWS pour Python) pour apporter des modifications à l'infrastructure AWS, RQ (une bibliothèque pour la création et le traitement de tâches en arrière-plan) pour exécuter des charges de travail asynchrones et le tout est géré avec des API Flask. « Nous sommes de gros utilisateurs de Jupyter Notebooks et nteract pour analyser des données opérationnelles et des outils de visualisation de prototypes qui nous aident à détecter les régressions de capacité », ajoute Netflix.
L'équipe en charge du noyau de Netflix utilise Python pour les travaux d’alerte et d’analyse statistique et s'appuie sur de nombreuses bibliothèques statistiques et mathématiques comme numpy, Scipy, ruptures, panda, pour automatiser l'analyse des signaux connexes lorsque les systèmes d'alerte indiquent des problèmes. L'équipe de maintenance et de surveillance en charge de la création et de l’exploitation des outils d’information opérationnelle, d’alerte, de diagnostic et de correction automatique, prend désormais en charge les clients Python pour la plupart de leurs services à l'exemple de Spectator (une bibliothèque d'instruments de code permettant d'enregistrer des métriques de séries temporelles dimensionnelles).
L’équipe en charge de la sécurité de l’information utilise Python pour atteindre un grand nombre d’objectifs de Netflix : automatisation de la sécurité, classification des risques, correction automatique et identification des vulnérabilités. Cette équipe utilise Python pour protéger les ressources SSH avec Bless, pour faciliter le réglage des autorisations IAM à l'aide de Repokid. Elle utilise aussi Python pour générer des certificats TLS avec Lemur.
« Nous utilisons de manière intensive Python dans notre infrastructure plus large d'apprentissage automatique pour former certains des modèles d'algorithmes aux aspects clés de l'expérience Netflix : des algorithmes de recommandation à la personnalisation des illustrations, en passant par les algorithmes marketing. Par exemple, certains algorithmes utilisent TensorFlow, Keras et PyTorch pour apprendre par les réseaux de neurones profonds, XGBoost et LightGBM pour apprendre les arbres de décision optimisés par gradient ou la pile scientifique plus large en Python (par exemple, numpy, scipy, sklearn, matplotlib, pandas, cvxpy). Parce que nous essayons constamment de nouvelles approches, nous utilisons des blocs-notes Jupyter pour mener bon nombre de nos expériences. Nous avons également mis au point un certain nombre de bibliothèques de niveau supérieur pour les intégrer au reste de notre écosystème (par exemple, accès aux données, consignation des faits et extraction des fonctionnalités, évaluation et publication des modèles) ».
Outre la personnalisation, Netflix dit qu'il applique l'apprentissage automatique à des centaines de cas d'utilisation dans toute l'entreprise. Beaucoup de ces applications sont alimentées par Metaflow, un framework Python qui facilite l’exécution de projets ML depuis le stade du prototype jusqu’à la production. Pour Netflix, Metaflow repousse les limites de Python. «Nous exploitons du code Python bien parallélisé et optimisé pour extraire des données à 10 Gb/s, gérer des centaines de millions de points de données en mémoire et orchestrer des calculs sur des dizaines de milliers de cœurs de processeur », explique l'entreprise.
L'équipe qui s’occupe de l’encodage (et du réencodage) du catalogue Netflix, ainsi que de la valorisation de l’apprentissage automatique pour mieux comprendre ce catalogue utilise Python pour environ 50 projets tels que vmaf et mezzfs, « nous construisons des solutions de vision par ordinateur utilisant une plateforme de carte multimédia appelée Archer, et nous utilisons Python pour de nombreux projets internes. Nous avons également ouvert quelques outils pour faciliter le développement / la distribution de projets Python, tels que setupmeta et pickley ».
Source : Medium
Et vous ?
Qu'en pensez-vous ?
Utilisez-vous aussi Python pour certain de vos projets ? Quelles sont les raisons de ce choix ?
Voir aussi
Python est sacré langage de programmation de l'année 2018 par l'index TIOBE, deviendra-t-il le langage le plus utilisé des programmeurs ?
IEEE : Python devient le meilleur langage en 2017 en dépassant C et Java, découvrez le classement complet selon divers critères
Python va supprimer les termes "master/slave" de sa documentation et sa base de code pour des raisons de diversité et leur connotation à l'esclavage
Un ingénieur en informatique de Netflix gagne plus de 300 000$ par année, pourquoi cette entreprise paie-t-elle plus que Google et Facebook ?
Partager