La nouvelle plateforme de traitement vidéo de Netflix, Cosmos, utilise des microservices pour moderniser les pipelines de traitement des médias. Le service d'encodage vidéo (VES) est un microservice clé qui encode le contenu mezzanine en flux vidéo adaptés à la diffusion en continu ou à l'utilisation studio.
VES prend en charge plusieurs codecs, résolutions et niveaux de qualité, et emploie l'encodage en tranches pour réduire la latence. Sa couche API, Optimus, garantit une interface stable pour les utilisateurs externes.
La couche de workflow, Plato, orchestre les étapes d'encodage en utilisant un graphique acyclique dirigé (DAG) avec un parallélisme MapReduce. Les tâches consommant beaucoup de ressources sont déléguées à la couche de calcul, Stratum, qui utilise des fonctions Stratum empaquetées dans des images Docker.
VES utilise plusieurs fonctions Stratum pour différents formats de codec pour permettre des mises à jour et des améliorations d'encodeur indépendantes. La plateforme fournit des abstractions pour les modèles d'accès aux médias, simplifiant le code des fonctions Stratum.
Les besoins en ressources sont déterminés par le biais de benchmarks, et le "façonnage de conteneur" attribue des ressources en fonction du format de codec et de la résolution. La mise en production continue est facilitée par des pipelines de mise en production automatisés et des tests exhaustifs.
Les métriques de production et les journaux sont utilisés pour la surveillance et l'alerte, y compris le rollback automatique du service si les métriques s'écartent significativement. Les leçons apprises de la construction de VES ont guidé les choix de conception ultérieurs dans le développement de microservices de l'équipe.
netflixtechblog.com
The Making of VES: the Cosmos Microservice for Netflix Video Encoding
Create attached notes ...
