UTILISATION DU MOTEUR DE CALCUL DE GOOGLE POUR LE TRANSCODAGE VIDÉO
bsp-admin-1 on July 23, 2012
Pour ceux d'entre nous qui travaillent dans le monde de l'informatique en nuage, la chose la plus excitante qui est ressortie de la conférence Google I/O en 2012 n'était pas des parachutistes portant des Glass, ni une nouvelle tablette. La grande nouvelle, c'est que Google se lance dans l'infrastructure en nuage en tant que service, actuellement dominée par Amazon Web Services (AWS). Plus précisément, Google a lancé un nouveau service appelé Google Compute Engine pour concurrencer Amazon EC2.
C'est passionnant. Le monde a besoin d'un autre service de machines virtuelles en nuage robuste, performant et bien conçu. Avec toutes nos excuses à Rackspace et à d'autres, il s'agit depuis longtemps d'un espace à un seul joueur - EC2 est de loin le leader. Google possède manifestement l'expertise et l'envergure nécessaires pour devenir un concurrent sérieux, s'il s'y tient.
Comment cela se présente-t-il ? Les premiers rapports sont positifs. Google Compute Engine (GCE) est bien conçu, bien exécuté et basé sur une infrastructure que Google utilise depuis des années. Les performances sont bonnes, notamment en ce qui concerne les entrées/sorties de disque, les temps de démarrage et la cohérence, qui n'ont jamais été le point fort d'EC2. Mais dans quelle mesure GCE est-il adapté au transcodage vidéo en nuage ? Nous disposons de quelques résultats préliminaires, tout en reconnaissant que d'autres tests doivent être effectués. Voici quelques tests de base de transcodage vidéo et de transfert de fichiers à l'aide du logiciel Zencoder sur GCE et EC2.
Vitesse de transcodage des données brutes
La performance est notre priorité absolue, c'est pourquoi Zencoder utilise les serveurs les plus rapides que nous puissions trouver. Sur EC2, nous utilisons des instances Cluster Compute, qui sont des machines rapides à double CPU en deux tailles : 4XL et 8XL. Nous les avons comparées au type d'instance GCE le plus rapide, qui est actuellement un serveur mono-CPU à 8 cœurs.
Serveur | UNITÉ CENTRALE |
---|---|
GCE 8-core | Intel Xeon (Sandy Bridge - probablement E5-2670) - 8 cœurs à 2,60 GHz |
EC2 cc1.4xlarge | Double Intel Xeon X5570 - 8 cœurs à 2,93 GHz/cœur |
EC2 cc2.8xlarge | Double Intel Xeon E5-2670 - 16 cœurs à 2,60 GHz/cœur |
Ces tests ont été effectués à l'aide d'une vidéo source H.264 aux résolutions 640×360 et 1280×720, et ont été encodés par Zencoder en utilisant les mêmes paramètres de transcodage de sortie en un seul passage (profil H.264 Baseline, AAC, transcodage de qualité constante en un seul passage, etc.)
Serveur | Résolution | Encodages simultanés | Temps (secondes) | Coût par millier |
---|---|---|---|---|
EC2 cc1.4xlarge | 640×360 | 6 | 15.87 | $0.96 |
EC2 cc2.8xlarge | 640×360 | 6 | 9.93 | $1.10 |
GCE 8-core | 640×360 | 6 | 21.05 | $1.13 |
GCE 8-core | 640×360 | 1 | 6.01 | $1.94 |
EC2 cc1.4xlarge | 640×360 | 1 | 5.96 | $2.15 |
EC2 cc1.4xlarge | 1280×720 | 6 | 48.58 | $2.92 |
EC2 cc2.8xlarge | 640×360 | 1 | 4.99 | $3.33 |
EC2 cc2.8xlarge | 1280×720 | 6 | 30.74 | $3.42 |
GCE 8-core | 1280×720 | 6 | 68.15 | $3.66 |
EC2 cc1.4xlarge | 1280×720 | 1 | 12.89 | $4.65 |
GCE 8-core | 1280×720 | 1 | 16.01 | $5.16 |
EC2 cc2.8xlarge | 1280×720 | 1 | 10.92 | $7.28 |
En utilisant les paramètres par défaut de Zencoder, les deux types d'instances EC2 sont plus rapides que GCE. Les résultats économiques sont un peu plus proches, et il n'y a pas de gagnant clair entre les instances EC2 4XL et GCE. Le GCE est donc une option viable pour le transcodage lorsque le coût est plus important que la vitesse brute, bien que les clients d'AWS puissent utiliser les instances réservées et les instances Spot pour réduire davantage les coûts. Nous avons remarqué que les instances EC2 à 16 cœurs étaient environ deux fois plus rapides que les instances GCE à 8 cœurs lorsqu'elles étaient chargées avec 6 transcodes simultanés.
Étant donné que les vitesses d'horloge sont similaires, mais que le nombre de cœurs est deux fois moins élevé, c'est ce à quoi on peut s'attendre. Toutefois, si Google ajoute des machines similaires à 16 cœurs, les vitesses de transcodage pourraient être comparables.
Vitesses de transfert
Lors du transcodage vidéo dans le nuage, les E/S réseau sont presque aussi importantes que l'unité centrale. C'est particulièrement vrai pour les clients qui travaillent avec du contenu à haut débit (diffuseurs, studios et créateurs). Comment les vitesses de transfert de GCE se comparent-elles à celles d'EC2 ? Pour le savoir, nous avons effectué quatre séries de tests de référence :
- Amazon S3 vers Amazon EC2
- Amazon S3 vers Google Compute Engine
- Google Cloud Storage vers Amazon EC2
- Google Cloud Storage vers Google Compute Engine
Pour ce faire, nous avons testé le même fichier vidéo de 1 Go stocké sur Google Cloud Storage (GCS) et sur Amazon S3. Le transfert a été effectué à l'aide de 10 connexions HTTP (Zencoder procède ainsi par défaut pour optimiser les vitesses de transfert, ce qui permet d'accélérer considérablement les transferts de fichiers volumineux par HTTP).
Vitesse de transfert (Mbps) | Largeur de bande du serveur | |
---|---|---|
S3 à GCE | 470.96 | 1 Gbps |
S3 vers EC2 c1.xlarge | 644.29 | 1 Gbps |
S3 vers EC2 cc2.8xlarge | 1458.32 | 10 Gbps |
GCS à GCE | 202.60 | 1 Gbps |
GCS vers EC2 c1.xlarge | 378.28 | 1 Gbps |
GCS vers EC2 cc2.8xlarge | 641.34 | 10 Gbps |
C'est intéressant. Nous nous attendions à ce que le transfert d'Amazon à Amazon soit rapide, et il l'a été. Mais nous nous attendions également à ce que le transfert de Google à Google soit rapide, ce qui n'a pas été le cas. En fait, il semble que GCS soit plus lent que S3, et que le transfert GCE soit plus lent qu'EC2, de sorte que même si vous utilisez Google pour le calcul, il est préférable d'utiliser S3 pour le stockage. Le transfert a été 2,3 fois plus rapide de S3 à GCE que de GCS à GCE.
D'autres tests sont nécessaires
Considérez ces résultats comme préliminaires. D'autres tests doivent être effectués pour tenir compte d'un plus grand nombre de variables.
- Différences d'une instance à l'autre. C'est particulièrement vrai pour le transfert de fichiers, qui peut varier considérablement en fonction des conditions du réseau et de la variabilité des instances.
- Applications supplémentaires. Ces tests ne couvrent que le transcodage, qui est un test lié à l'unité centrale. Les autres applications sont limitées par le disque, la mémoire, etc., et ces tests ne concernent rien d'autre que le transcodage.
- Évolutivité. L'évolutivité est extrêmement importante pour quiconque utilise le cloud pour le transcodage vidéo. D'autres tests sont nécessaires pour comparer GCE à EC2 lorsqu'il s'agit d'une échelle énorme - des dizaines de milliers de serveurs (ou plus). À quel moment les utilisateurs rencontrent-ils des problèmes de capacité ? Des problèmes de performance ? Limites de conception ? L'instabilité ?
L'avenir de l'infrastructure en nuage
Même si EC2 l'emporte dans ces premiers tests, nous sommes enthousiastes à propos de Google Compute Engine. Pour devenir un concurrent sérieux dans le domaine du transcodage haute performance, Google doit ajouter des instances plus importantes dotées d'unités centrales plus rapides. Mais il est facile d'ajouter de nouveaux types d'instances. Rien n'empêche Google de le faire. Ce qui est difficile, c'est de construire une plateforme en nuage robuste, performante, complète et évolutive, et Google semble y être parvenu. Si Google s'engage à long terme en faveur de ce produit et de ses développeurs, le monde de la virtualisation en nuage vient peut-être de se doter d'un deuxième acteur légitime.