Le fournisseur de services de streaming Netflix stocke ses vidéos pour une diffusion optimale à différentes vitesses d'accès à Internet et sur différents appareils de lecture. Résolutions, niveaux de qualité et formats. Il a développé la plateforme "Reloaded" pendant environ sept ans. Entre-temps, cependant, la charge de Netflix a été décuplée grâce à une expansion sur davantage de marchés et à un contenu nettement plus important. Selon le blog d'ingénierie de Netflix, cela a causé des problèmes. Les développeurs responsables ont donc mis au point une nouvelle plateforme d'encodage appelée "Cosmos" créé.
Comme l'explique Frank San Miguel au nom de l'équipe Cosmos, l'ancienne architecture de Reloaded a été conçue exclusivement pour dimensionner au mieux les contenus audio et vidéo. Cependant, l'architecture monolithique rendait beaucoup plus difficile l'introduction de nouvelles fonctionnalités. En outre, l'équipe responsable du codage s'est considérablement agrandie au cours des dernières années, ce qui signifie que les nouveaux membres, en particulier, n'avaient pratiquement aucune vue d'ensemble de l'architecture désuète de Reloaded. La responsabilité en était avant tout celle de la logique applicative avec le code d'infrastructure.
Les architectures microservices comme modèle
En raison des problèmes majeurs, l'équipe a opté pour un développement entièrement nouveau au lieu d'une révision de l'architecture existante. L'architecture moderne de microservices a été choisie comme modèle. Outre les tâches d'encodage proprement dites, cela permet l'ajout modulaire d'autres services, notamment un outil de surveillance et des outils pour le pipeline de livraison continue. Cela devrait permettre de développer un nouveau code directement dans l'environnement de production.Contributions peuvent être importés sans interventions supplémentaires.
Malgré les similitudes, les services Cosmos ne sont pas des microservices. Les données de l'application et ses dépendances sont également séparées des autres systèmes dans l'outil de codage Netflix, comme dans les microservices, mais les services utilisent des API clairement définies pour échanger des données.
Le travail à forte intensité de calcul qui accompagne l'encodage charge ses dépendances sous forme de conteneurs Docker. Selon l'ampleur de la tâche, il s'agit de plusieurs milliers de conteneurs différents chez Netflix, qui sont stockés dans un centre d'hébergement. informatique en nuage l'environnement. Une exécution prend souvent plusieurs jours pour les fichiers particulièrement volumineux, selon les développeurs.
Le développement de Cosmos a débuté en 2018, et les premiers tests dans l'environnement du produit ont commencé en 2019. Le déploiement effectif du système, qui remplacera alors complètement la plateforme de codage Reloaded, aura lieu durant l'année en cours 2021.