USO DE GOOGLE COMPUTE ENGINE PARA LA TRANSCODIFICACIÓN DE VÍDEO
bsp-admin-1 on July 23, 2012
Para los que estamos en el mundo de la computación en la nube, lo más emocionante que salió de Google I/O en 2012 no fueron paracaidistas con gafas Glass ni una nueva tableta. La gran noticia fue que Google entra en el espacio de la infraestructura como servicio en la nube, actualmente dominado por Amazon Web Services (AWS). En concreto, Google ha lanzado un nuevo servicio llamado Google Compute Engine para competir con Amazon EC2.
Esto es emocionante. El mundo necesita otro servicio de máquinas virtuales en la nube sólido, eficaz y bien diseñado. Con el perdón de Rackspace y otros, este ha sido un espacio de un solo jugador durante mucho tiempo: EC2 es de lejos el líder. Es evidente que Google cuenta con la experiencia y la escala necesarias para convertirse en un serio competidor, si se mantiene firme en su empeño.
¿Qué aspecto tiene? Los primeros informes son positivos. Google Compute Engine (GCE) está bien diseñado, bien ejecutado y basado en la infraestructura que Google ha estado utilizando durante años. El rendimiento es bueno, especialmente en cuanto a E/S de disco, tiempos de arranque y consistencia, que históricamente no han sido los puntos fuertes de EC2. Pero, ¿hasta qué punto es adecuado GCE para la transcodificación de vídeo en la nube? Tenemos algunos resultados preliminares, reconociendo que hay que hacer más pruebas. He aquí algunas pruebas básicas de transcodificación de vídeo y transferencia de archivos utilizando el software Zencoder tanto en GCE como en EC2.
Velocidad de transcodificación en bruto
El rendimiento es nuestra máxima prioridad, por lo que Zencoder utiliza los servidores más rápidos que podemos encontrar. En EC2, utilizamos instancias Cluster Compute, que son máquinas rápidas de doble CPU en dos tamaños: 4XL y 8XL. Las comparamos con el tipo de instancia GCE más rápido, que actualmente es un servidor de 8 núcleos con una sola CPU.
Servidor | CPU |
---|---|
CME 8 núcleos | Intel Xeon (Sandy Bridge - probablemente E5-2670) - 8 núcleos a 2,60 GHz |
EC2 cc1.4xlarge | Doble Intel Xeon X5570 - 8 núcleos a 2,93 GHz/núcleo |
EC2 cc2.8xlarge | Doble Intel Xeon E5-2670 - 16 núcleos a 2,60 GHz/núcleo |
Estas pruebas se realizaron utilizando un vídeo fuente H.264 con resoluciones de 640×360 y 1280×720, y se codificaron con Zencoder utilizando los mismos ajustes de transcodificación de salida de una sola pasada (perfil H.264 Baseline, AAC, transcodificación de calidad constante de una sola pasada, etc.).
Servidor | Resolución | Codificación simultánea | Tiempo (segundos) | Coste por mil |
---|---|---|---|---|
EC2 cc1.4xlarge | 640×360 | 6 | 15.87 | $0.96 |
EC2 cc2.8xlarge | 640×360 | 6 | 9.93 | $1.10 |
CME 8 núcleos | 640×360 | 6 | 21.05 | $1.13 |
CME 8 núcleos | 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 |
CME 8 núcleos | 1280×720 | 6 | 68.15 | $3.66 |
EC2 cc1.4xlarge | 1280×720 | 1 | 12.89 | $4.65 |
CME 8 núcleos | 1280×720 | 1 | 16.01 | $5.16 |
EC2 cc2.8xlarge | 1280×720 | 1 | 10.92 | $7.28 |
Con la configuración predeterminada de Zencoder, ambos tipos de instancia EC2 son más rápidos que GCE. Los aspectos económicos están un poco más igualados, y no hay un claro ganador entre las instancias EC2 4XL y GCE. Así pues, GCE es una opción viable para la transcodificación en la que el coste es una prioridad mayor que la velocidad bruta, aunque los clientes de AWS pueden hacer uso de las instancias reservadas y las instancias puntuales para reducir aún más los costes. Observamos que las instancias EC2 de 16 núcleos eran aproximadamente el doble de rápidas que las instancias GCE de 8 núcleos cuando estaban bajo carga con 6 transcodificaciones simultáneas.
Dadas las velocidades de reloj similares, pero con la mitad de núcleos, es lo que cabría esperar. Sin embargo, si Google añade máquinas similares de 16 núcleos, podrían tener velocidades de transcodificación comparables.
Velocidades de transferencia
Cuando se transcodifica vídeo en la nube, la E/S de red es casi tan importante como la CPU. Esto es especialmente cierto para los clientes que trabajan con contenido de alta velocidad de bits (emisoras, estudios y creativos). Entonces, ¿cómo se comparan las velocidades de transferencia de GCE con las de EC2? Para comprobarlo, ejecutamos cuatro conjuntos de pruebas comparativas:
- De Amazon S3 a Amazon EC2
- De Amazon S3 a Google Compute Engine
- Almacenamiento en la nube de Google en Amazon EC2
- Google Cloud Storage a Google Compute Engine
Para ello, probamos el mismo archivo de vídeo de 1 GB almacenado en Google Cloud Storage (GCS) y en Amazon S3. La transferencia se realizó utilizando 10 conexiones HTTP (Zencoder hace esto por defecto para optimizar la velocidad de transferencia, y puede acelerar drásticamente las transferencias de archivos grandes a través de HTTP).
Velocidad de transferencia (Mbps) | Ancho de banda del servidor | |
---|---|---|
De S3 a CME | 470.96 | 1 Gbps |
S3 a EC2 c1.xlarge | 644.29 | 1 Gbps |
S3 a EC2 cc2.8xlarge | 1458.32 | 10 Gbps |
De GCS a GCE | 202.60 | 1 Gbps |
GCS a EC2 c1.xlarge | 378.28 | 1 Gbps |
GCS a EC2 cc2.8xlarge | 641.34 | 10 Gbps |
Esto es interesante. Esperábamos que la transferencia de Amazon a Amazon fuera rápida, y lo fue. Pero también esperábamos que la transferencia de Google a Google fuera rápida, y no lo fue. De hecho, parece que GCS es más lento que S3, y la transferencia de GCE es más lenta que EC2, de tal manera que incluso si usted está utilizando Google para el cálculo, puede ser mejor utilizar S3 para el almacenamiento. La transferencia fue 2,3 veces más rápida de S3 a GCE que de GCS a GCE.
Se necesitan más pruebas
Estos resultados son preliminares. Es necesario realizar más pruebas para tener en cuenta más variables.
- Diferencias entre instancias. Esto es especialmente cierto en el caso de la transferencia de archivos, que puede variar mucho en función de las condiciones de la red y la variabilidad de las instancias.
- Aplicaciones adicionales. Estas pruebas sólo cubren la transcodificación, que es una prueba limitada a la CPU. Otras aplicaciones están limitadas por el disco, la memoria, etc., y estas pruebas no se refieren a otra cosa que no sea la transcodificación.
- Escalabilidad. La escalabilidad es extremadamente importante para cualquiera que utilice la nube para la transcodificación de vídeo. Se necesitan más pruebas para ver cómo GCE se compara con EC2 cuando se trata de una escala enorme -decenas de miles de servidores (o más)-. ¿En qué momento tienen los usuarios problemas de capacidad? ¿Problemas de rendimiento? ¿Limitaciones de diseño? ¿Inestabilidad?
Futuro de la infraestructura en nube
Aunque EC2 gana en estas primeras pruebas, estamos entusiasmados con Google Compute Engine. Para ser un competidor serio en la transcodificación de alto rendimiento, Google necesita añadir instancias más grandes con CPU más rápidas. Pero añadir nuevos tipos de instancias es fácil. Nada impide a Google hacerlo. Lo difícil es crear una plataforma en la nube sólida, eficaz, completa y escalable, y parece que Google lo ha conseguido. Si Google se compromete con este producto y con los desarrolladores a largo plazo, el mundo de la virtualización en la nube puede haber conseguido un segundo actor legítimo.