Depuis sa crĂ©ation en 2002, GoPro sâest imposĂ©e comme un acteur incontournable dans la capture et le partage de contenus visuels immersifs et passionnants. GrĂące Ă ses camĂ©ras polyvalentes et ses outils logiciels innovants, lâentreprise a su conquĂ©rir le cĆur de millions dâutilisateurs Ă travers le monde.
Mais ce n’est pas tout. GoPro propose Ă©galement un service dâabonnement qui offre un stockage cloud illimitĂ©, la crĂ©ation automatique de vidĂ©os, des capacitĂ©s de montage pratiques, du live streaming et le partage direct de contenus vers les rĂ©seaux sociaux. Soutenu par AWS (Amazon Web Services), ce service gĂšre dâĂ©normes volumes de donnĂ©es vidĂ©o chaque mois pour environ 2,5 millions dâabonnĂ©s.
Dans cet article, dĂ©couvrez comment GoPro a rĂ©ussi Ă optimiser son pipeline de transcodage de mĂ©dias Ă grande Ă©chelle en utilisant Amazon ECS (Elastic Container Service) et des instances Spot Amazon EC2, rĂ©duisant ainsi considĂ©rablement ses coĂ»ts tout en augmentant l’efficacitĂ© de ses processus.
Une infrastructure exigeante et en constante Ă©volution
Pour rĂ©pondre aux besoins croissants de ses abonnĂ©s et aux volumes importants de contenus gĂ©nĂ©rĂ©s par les utilisateurs, GoPro a mis en place un pipeline de transcodage et de traitement des mĂ©dias propriĂ©taire. Ce pipeline, qui nĂ©cessite une capacitĂ© de calcul significative, commence dĂšs lâingestion de contenu dans Amazon S3. Des tĂąches de prĂ©traitement rĂ©cupĂšrent les mĂ©tadonnĂ©es, la rĂ©solution et les informations sur les codecs afin de crĂ©er des miniatures vidĂ©o.
Diverses tĂąches de transcodage fonctionnent sur diffĂ©rents clusters Amazon ECS, des conteneurs Docker, et des builds personnalisĂ©s de FFmpeg sur Amazon EC2. Dâautres outils propriĂ©taires sont utilisĂ©s pour le traitement vidĂ©o et audio, le format de mĂ©tadonnĂ©es GPMF (GoPro Metadata Format), ainsi que le dĂ©muxage et le muxage sur Amazon EC2.
Face Ă lâaugmentation du nombre d’abonnĂ©s et des volumes de contenus gĂ©nĂ©rĂ©s, GoPro a ressenti le besoin de disposer dâun pipeline de traitement de contenu plus adaptatif et d’une infrastructure Ă©volutive. Pour gĂ©rer les fluctuations de capacitĂ© de calcul lors du transcodage, GoPro a mis en place un auto-scalage des instances, garantissant ainsi Ă©lasticitĂ© et Ă©volutivitĂ©.
Ătant donnĂ© que le workflow de transcodage est asynchrone et pilotĂ© par des messages et des Ă©vĂ©nements, plusieurs tĂąches peuvent sâexĂ©cuter en parallĂšle, offrant une grande efficacitĂ© et tolĂ©rant les interruptions.
Ăconomies et optimisation grĂące aux instances Spot d’Amazon EC2
La solution trouvée par GoPro pour réduire les coûts tout en maintenant des performances optimales a été de déployer son cluster Amazon ECS sur des instances Spot Amazon EC2. Cette stratégie a permis de réaliser des économies de 50 % à 70 % par rapport aux dépenses en instances à la demande, avec des réductions pouvant atteindre 90 %.
L’entreprise a intĂ©grĂ© des pratiques exemplaires pour lâutilisation des instances Spot, notamment la diversification et lâexploitation de plusieurs pools de capacitĂ©. En adoptant la stratĂ©gie dâallocation optimisĂ©e pour la capacitĂ©, GoPro a pu minimiser la frĂ©quence des interruptions des instances Spot. Lâautomatisation via des scripts Terraform a facilitĂ© le drainage automatisĂ© des instances Spot interrompues.
La sĂ©lection des types dâinstances basĂ©e sur les attributs pour les clusters Amazon ECS et l’utilisation d’instances CPU et GPU dans des groupes dâauto-scaling ont Ă©galement contribuĂ© Ă lâoptimisation de lâinfrastructure.
Des fonctionnalités pour une résilience accrue
La rĂ©silience du workflow est assurĂ©e par des fonctions Lambda. Par exemple, un Ă©vĂ©nement AutoScaling Group ScaleIn CloudWatch dĂ©clenche une fonction Lambda pour drainer les instances en cours de rĂ©siliation. Une autre fonction Lambda est activĂ©e par les avertissements d’interruption des instances Spot EC2. Les mĂ©triques des instances Spot sont Ă©galement collectĂ©es par une autre fonction Lambda dĂ©clenchĂ©e par les Ă©vĂ©nements InstanceTerminated, RunInstances, et EC2 Spot Interruption.
GoPro surveille lâensemble du workflow grĂące Ă un tableau de bord personnalisĂ© alimentĂ© par AWS Lambda, offrant une visibilitĂ© sur les taux dâinterruption des instances Spot, les types dâinstances et dâautres statistiques connexes. AprĂšs avoir intĂ©grĂ© les instances Spot Amazon EC2 et architecturĂ© pour les interruptions potentielles, GoPro exĂ©cute plus de 70 % de toutes ses charges de travail conteneurisĂ©es sur des instances Spot, ce qui se traduit par des Ă©conomies importantes.
L’utilisation des instances Spot Amazon EC2 a permis Ă GoPro de tirer parti des ressources de calcul de maniĂšre Ă©conomique tout en amĂ©liorant son processus de transcodage Ă grande Ă©chelle. En optimisant son infrastructure, l’entreprise a rĂ©ussi Ă rĂ©duire ses coĂ»ts tout en maintenant un service de haute qualitĂ© pour ses abonnĂ©s. Pour ceux qui souhaitent en savoir plus sur la maniĂšre de maximiser lâefficacitĂ© de leurs propres infrastructures cloud, les instances Spot d’Amazon EC2 offrent une excellente opportunitĂ©.