Transcodage et distribution de vidéos

Netflix migre vers une plateforme qui tire profit des micro-services et du serverless

Netflix va progressivement migrer sur Cosmos, sa nouvelle plateforme de transcodage et distribution de vidéos. La solution repose sur une architecture conçue autour des micro-services, des flux de travail et des fonctions serverless.

(Source: Mollie Sivaram on Unsplash)
(Source: Mollie Sivaram on Unsplash)

«Des micro-services qui déclenchent des flux de travail qui orchestrent des fonctions serverless»... C’est ainsi que Netflix présente l'architecture à la base de sa nouvelle plateforme de transcodage et distribution de vidéos. Dans un billet de blog, Frank San Miguel, Senior Software Engineer chez Netflix, détaille le développement à l’interne de cette solution baptisée Cosmos, sur laquelle le géant du streaming va migrer progressivement durant 2021.

Une plateforme pour optimiser le déploiement de nouvelles fonctionnalités

Netflix se repose depuis environ sept ans sur une plateforme qui a fait ses preuves en termes de stabilité et d’évolutivité, mais dont la nature monolithique ralentit aujourd’hui considérablement le déploiement de nouvelles fonctionnalités. Le service de streaming, dont toutes les données sont depuis quelques années hébergées sur AWS, fait désormais appel à trop de développeurs pour rester efficace en recourant à un modèle de données centralisé, avec du code applicatif et du code d'infrastructure difficiles à discerner. En mettant au point Cosmos, les ingénieurs de Netflix ont notamment travaillé à doter la plateforme de capacités poussées de monitoring et signalement d’erreurs, de modularité (à la fois pour la compilation et l'exécution) et de productivité (avec entre autres des outils de test d’exécution et de génération automatique de code). Il s’agissait aussi de pouvoir tirer profit d’un système entièrement managé de livraison continue et d'intégration continue.

Architecture en trois couches

Cosmos étend le paradigme du microservice en ajoutant des flux de travail à plusieurs étapes et des fonctions serverless asynchrones à forte intensité de calcul, souligne le développeur sénior Frank San Miguel. Qui précise: «Les clients envoient des requêtes à une couche API de service d'encodeur vidéo. Un ensemble de règles orchestrent les étapes du flux de travail et un ensemble de fonctions serverless alimentent des algorithmes spécifiques au domaine. Les fonctions sont regroupées sous forme d'images Docker et apportent leurs propres dépendances binaires spécifiques aux médias.» Trois sous-systèmes gèrent les détails de la distribution des workloads: une couche API, une couche de flux de travail et une couche serverless pour l'exécution de fonctions (voir schéma ci-dessous).

Management horizontal

Dans son billet de blog qui regorge de détails techniques, le développeur Frank San Miguel explique que la culture organisationnelle de l’équipe d’ingénieurs a joué un rôle clé dans le succès du développement de Cosmos. Le management n’est pas top-down et tous les ingénieurs ont un même niveau de responsabilité. Et de confier: «Il a fallu un partenariat solide entre les développeurs d'infrastructures et ceux en charge des algorithmes média pour transformer cette vision en réalité».

Webcode
DPF8_209099