Parte II
¿Qué ocurre en AWS antes de que le des al play?
Todo lo que no
tenga que ver con la transmisión de vídeo se lleva a cabo en AWS, esto incluye
computación escalable, almacenamiento escalable, lógica empresarial, bases de
datos descentralizadas escalables, procesamiento y análisis de big data, recomendaciones,
trans-codificación y cientos de otras funciones.
No te preocupes,
no tienes por qué entender qué significan todas esas cosas, pero como pueden
ser interesantes, las explicaré brevemente:
Computación escalable y almacenamiento
escalable
La computación
escalable es EC2 y el almacenamiento escalable es S3. Nada nuevo para nosotros
aquí. El dispositivo desde el que te conectas a Netflix (iPhone, TV, Xbox,
teléfono Android, tableta, etc.) se comunica con un servicio de Netflix que se
ejecuta en EC2.
¿Te sale una
lista de vídeos recomendados? Tu dispositivo está contactando a un servidor en
EC2 para obtener dicha lista. ¿Quieres más detalles sobre un vídeo? El
dispositivo desde el que te conectas contacta con un servidor en EC2 para
obtener los detalles.
Base de datos descentralizadas escalables
Netflix usa
DynamoDB y Cassandra para sus bases de datos descentralizadas. No tienes por
qué conocer los nombres de estos tipos de bases de datos, simplemente se tratan
de servicios de alta calidad. Una base de datos almacena datos: tu información
de perfil, información de facturación, todas las películas que has visto...
todo ese tipo de información se almacena en una base de datos.
Descentralizada.
Descentralizada significa que la base de datos no se ejecuta en una gran
computadora, sino que utiliza muchas. Hay copias de tus datos en varias
computadoras, de modo que si uno o incluso dos equipos que contienen tus datos
fallan, tus datos estarán seguros. De hecho, hay copias de tus datos en las
tres regiones por lo que si una región falla, tus datos estarán allí cuando la
nueva región esté lista para comenzar a usarlos.
Escalable. Escalable
significa que la base de datos puede manejar tantos datos como le quieras
poner, lo que supone una gran ventaja si es descentralizada porque se pueden
agregar más computadoras según sea necesario para manejar un mayor volumen de
datos.
Procesamiento y análisis de big data
Big data simplemente
significa que hay una gran cantidad de datos y Netflix recopila mucha
información porque conoce lo que ven todos los usuarios, cuándo lo han visto y
dónde estaban cuando lo han visto. Sabe qué vídeos le han llamado la atención a
los usuarios pero finalmente decidieron no ver. También sabe cuántas veces se
ha visto cada vídeo... y mucho más.
Poner todos los
datos en un formato estándar se llama procesamiento. Dar sentido a todos esos
datos se llama análisis y los datos se analizan para responder a preguntas
específicas.
Netflix personaliza las imágenes de presentación
Aquí hay un buen
ejemplo de cómo te incita a ver más vídeos usando sus capacidades de análisis
de datos. Cuando te pones a buscar algo para ver te habrás dado cuenta de que
cada vídeo viene acompañado de una imagen. A esa foto normalmente se la conoce
como imagen del encabezado.
El objetivo de
la imagen del encabezado es intrigarte y que selecciones ese vídeo. La idea es
que cuanto más convincente sea la imagen del encabezado, más probabilidades hay
de veas un vídeo, y cuántos más vídeos veas, es menos probable que canceles la
suscripción.
Aquí un ejemplo
de diferentes imágenes de encabezado para 'Stranger
Things':
Es posible que
te sorprenda saber que la imagen que se muestra para cada vídeo ha sido
seleccionada específicamente para ti y que no todos los usuarios ven la misma
imagen.
Al principio
todos los usuarios solían ver la misma imagen del encabezado. Después a los
usuarios se les mostraba una sola imagen al azar a partir de un grupo de varias
opciones (como las diferentes opciones para 'Stranger
Things'). Netflix recopilaba información cada vez que se veía el vídeo y
registraba qué imagen se había mostrado cuando se seleccionaba.
Según nuestro
ejemplo, digamos que cuando se mostraba la imagen de grupo del centro, la serie
se vio mil veces, mientras que para el resto de fotos, solamente se vio una
vez.
Puesto que la
imagen del grupo era la que atraía a más usuarios, Netflix la puso como imagen
del encabezado de la serie por defecto.
Es un
procedimiento que se conoce como basado en datos y Netflix es famosa por ser
una empresa basada en datos. Se recopilan los datos (en este caso, el número de
vistas asociadas a cada imagen) y se utilizan para tomar la mejor decisión
posible; en este caso, qué imagen de encabezado seleccionar.
Es una buena
idea, pero se puede mejorar usando aún más datos. Ahí está el futuro: resolver problemas aprendiendo con los
datos.
Seguramente tú y
yo somos personas muy diferentes. ¿Crees que nos va a motivar el mismo tipo de
imagen de encabezado? Probablemente no, puesto que tenemos diferentes gustos y
preferencias. Netflix también lo sabe y por eso personaliza todas las imágenes que
te muestra. Lo que está intentando hacer es seleccionar la imagen que resalta
el aspecto del vídeo que te va a atraer más. Pero, ¿cómo lo hacen?
Recuerda que
Netflix recopila y cuenta todo lo que haces en su página y conocen cuáles son
tus películas favoritas, qué actores son los que más te gustan, etc.
Digamos que una
las recomendaciones es la película 'El indomable Will Hunting'. Netflix tiene
que escoger una imagen de encabezamiento que mostrarte y el objetivo es
seleccionar una que te dé información sobre una película que probablemente te
interesa. ¿Qué imagen te mostrará?
Si te gustan las
comedias, te enseñará una imagen en la que sale Robin Williams. Si prefieres
las películas románticas, te enseñará una imagen de Matt Damon y Minnie Driver
a punto de darse un beso.
Enseñándote a
Robin Williams, te está diciendo que probablemente habrá humor en la película
y, como sabe que te gustan las comedias, este vídeo es una buena elección. La
imagen de Matt Damon y Minnie Driver transmite un mensaje completamente
diferente. Si a ti lo que te gustan son las comedias y ves esta imagen, puede
que pases de largo.
Por eso
seleccionar una imagen del encabezamiento adecuada es tan importante: transmite un fuerte mensaje personalizado
que nos indica de qué va la película.
Pongamos otro
ejemplo: 'Pulp Fiction'.
Si has visto
muchas películas protagonizadas por Uma Thurman, probablemente te saldrá una
imagen del encabezado con Uma. Si has visto muchas películas en las que el
protagonista es John Travolta, lo que te saldrá será probablemente una imagen
en la que salga John.
¿Entiendes ahora
por qué una imagen personalizada puede animarte a ver un vídeo en concreto?
Netflix busca
satisfacer tus intereses cuando escoge las imágenes, pero tampoco quiere
mentirte. Lo que buscan no es mostrarte una foto a modo de cebo para que veas
un vídeo que igual no te va a gustar. No tiene sentido porque al fin y al cabo
no te cobra por la cantidad de vídeos que ves y lo que busca es que no te
arrepientas.
La empresa
quiere que estés satisfecho con los vídeos que ves, por eso seleccionan las
mejores imágenes del encabezado para ti. Este es solo un pequeño ejemplo de
cómo utiliza el análisis de datos, algo que utiliza en todos los aspectos de la
aplicación.
Recomendaciones
Por lo general,
te muestra solamente entre 40 y 50 vídeos, aunque hay miles de vídeos
disponibles. ¿Cómo lo decide? Con aprendizaje automático.
Es parte del
procesamiento y análisis de big data
del que acabamos de hablar. Netflix echa un vistazo a los datos y predice lo
que te va a gustar. De hecho, todo lo que ves en la pantalla ha sido escogido
específicamente para ti gracias al aprendizaje automático.
Trans-codificación de los contenidos desde su origen a lo que finalmente ves
Ahora pasamos a
la parte sobre la gestión los vídeos por parte de Netflix. Antes de que puedas
ver un vídeo en tu dispositivo favorito, tienen que pasarlo a un formato idóneo
para tu dispositivo. Este proceso se conoce como trans-codificación o
codificación.
La
trans-codificación es el proceso por el cual se pasa un archivo de vídeo de un
formato a otro para que se pueda ver en diferentes plataformas y dispositivos.
Netflix codifica
todos sus vídeos en AWS en más de 300.000 CPUs a la vez ¡Mucho más que la
mayoría de las supercomputadoras!
La distribución del medio de distribución
¿Quién le manda
el vídeo a Netflix? Las productoras y los estudios. Netflix llama a estos
vídeos medios de distribución. El nuevo vídeo llega al equipo de operaciones de
contenido para que pueda procesarlo. El vídeo llega en un formato de alta
definición que ocupa varios terabytes. Un terabyte es un tamaño muy grande.
Imagínate 60 pilas de papel tan grandes como la Torre Eiffel. Así de grande es
un terabyte.
Antes de que
puedas ver un vídeo, Netflix lo procesa mediante un riguroso procedimiento de
varias fases.
Validar e introducir el vídeo
Lo primero que
se hace es pasar mucho tiempo validando el vídeo. Busca artefactos digitales,
cambios de color o fotogramas perdidos durante intentos de trans-codificación
anteriores o por problemas en la transmisión de datos. Si se encuentra algún
problema, se descarta el vídeo.
Una vez que se
ha validado el vídeo, se introduce en lo que se llama el canal de datos. Un
canal es simplemente una serie de pasos para procesar los datos y que estén
listos para su uso, algo muy parecido a una cadena de montaje en una fábrica. Para crear cada vídeo se utilizan
más de 70 piezas de software diferentes.
No es muy conveniente procesar un archivo de varios terabytes, por lo que la
primera acción en el canal de datos es dividir el vídeo en trozos más pequeños.
Los trozos de
vídeo pasan al canal de datos para que puedan ser codificados en paralelo, es decir, al mismo tiempo. Vamos a ver un
ejemplo de paralelismo.
Digamos que
tienes cien perros sucios que necesitan un baño. ¿Qué sería más rápido: una
persona que bañe a los perros uno tras otro o cien personas que los bañen a la
vez?
Obviamente, se
gana mucho más tiempo con cien personas que trabajen al mismo tiempo. Eso es el
paralelismo y la razón por la que Netflix utiliza tantos servidores en EC2:
necesitan muchos servidores para procesar todos esos archivos gigantes de vídeo
en paralelo. Netflix dice que un archivo fuente puede ser codificado y estar
listo para su red de entrega de contenidos en tan solo 30 minutos.
Una vez que se
han codificado los trozos de vídeo, son validados para asegurarse de que no han
surgido nuevos problemas. Después se vuelven a juntar las piezas en un solo
archivo y se vuelve a validar.
El resultado es un montón de archivos
El proceso de
codificación crea muchos archivos. ¿Por qué? Pues porque el objetivo final de
Netflix es admitir cualquier dispositivo con conexión a Internet.
Netflix empezó a
ofrecer streaming de vídeo en 2007 en
Microsoft Windows. Con el tiempo se añadieron más dispositivos: Roku, LG,
Samsung Blu-ray, Apple Mac, Xbox 360, LG DTV, Sony PS3, Nintendo Wii, Apple
iPad, Apple iPhone, Apple TV, Android, Kindle Fire y Comcast X1.
En total, admite
2200 dispositivos diferentes. Cada dispositivo tiene un formato de vídeo idóneo
para ese dispositivo en particular: si estás viendo Netflix en un iPhone, se
utilizará un archivo de vídeo que te aporte la mejor experiencia de
visualización para el iPhone. Netflix llama a todos los diferentes formatos
para un vídeo su perfil de codificación.
También crea
archivos optimizados para diferentes velocidades de conexión. Si estás viendo
un vídeo en una red de alta velocidad, verás un vídeo de mayor calidad que si
lo ves desde una red con una velocidad lenta. También hay archivos para
diferentes formatos de audio porque el audio se codifica en diferentes
calidades e idiomas. También hay archivos para los subtítulos que pueden venir
en varios idiomas.
Hay muchas
opciones de visualización para cada vídeo y lo que ves depende de tu
dispositivo, la calidad de tu conexión a la red, el plan de suscripción de
Netflix y el idioma que elijas.
¿De cuántos archivos estamos hablando?
¡Para 'The Crown' tiene cerca de 1.200
archivos!
La segunda
temporada de 'Stranger Things' tiene
aún más archivos. Se rodó en 8K y cuenta con nueve episodios. Los archivos de
vídeo originales eran de muchos terabytes y fueron necesarias 190.000 horas de
CPU para codificar una sola temporada. ¿El resultado? ¡9.570 archivos
diferentes de vídeo, audio y texto!
Veamos la forma
en la que Netflix reproduce todos esos vídeos.
Tres estrategias diferentes para reproducir vídeo en streaming
Netflix ha
probado tres estrategias diferentes para reproducir vídeo en streaming: su propia pequeña red de
distribución de contenidos, redes de distribución de contenidos de terceros y Open Connect.
Empecemos
definiendo lo que es una red de
distribución de contenidos:
El contenido para Netflix es, por
supuesto, los archivos de vídeo de los que hablábamos en la sección anterior. Distribución significa que los archivos
de vídeo se copian desde una localización central y se distribuyen a través de
una red para ser almacenados en
ordenadores por todo el mundo.