viernes, 23 de febrero de 2018

Así de “sencillo” funciona Netflix - Parte IV

¿Dónde sitúa Netflix sus servidores (OCAs)?

Netflix distribuye grandes cantidades de tráfico de vídeo desde miles de servidores en más de 1.000 localizaciones por todo el mundo. 



Otros servicios de vídeo, como YouTube o Amazon, transmiten vídeo a través de su propia red troncal. Estas compañías han creado, literalmente, su propia red global para distribuir vídeo a sus usuarios, pero se trata de una opción muy compleja y muy cara.

Netflix adoptó un enfoque completamente distinto cuando creó su red de distribución de contenidos.

No explota su propia red y ha dejado de explotar sus propios centros de datos. En su lugar, los proveedores de servicios de Internet (ISPs) aceptan poner los OCAs en sus centros de datos. Los OCAs se dan de forma gratuíta a los ISPs para que los pongan en sus redes y Netflix también pone OCAs cerca de puntos de intercambio de Internet (IXPs).
Con esta estrategia Netflix no tiene que explotar sus propios centros de datos, pero aun así obtiene todos los beneficios de estar en un centro de datos normal... ¡Simplemente es el de otro propietario! Los últimos dos párrafos han sido un poco densos, así que vamos a explicarlos.


Usar ISPs para crear una red de distribución


Un ISP es tu proveedor de Internet: la empresa que te vende la conexión Internet, ya sea Telmex, Megacable o cualquier otro de los miles de servicios.

La idea principal es que los ISPs están localizados por todo el mundo y están cerca de los consumidores. Poniendo los OCAs en los centros de datos de los ISPs Netflix está por todo el mundo y cerca de sus clientes.

Usar IXPs para crear una red de distribución
Un punto de intercambio de Internet es un centro de datos donde los ISPs y las redes de distribución de contenidos intercambian tráfico de Internet entre sus redes. Es como si vas a una fiesta y la gente se intercambia regalos del amigo invisible: será mucho más fácil dar los regalos si todo el mundo está en el mismo lugar. También es más fácil intercambiar tráfico de red si todo está en el mismo sitio.




Ams Ix Optical Patch Panel 1
Cada cable de la foto conecta una red con otra red y así es como las diferentes redes intercambian tráfico entre sí. Un IXP es como un intercambio con autopista donde solo se usan cables.
Para Netflix, se trata de otra victoria. Hay IXPs por todo el mundo, por lo que poniendo sus OCAs en IXPs Netflix no tiene que ejecutar sus propios centros de datos.

Los vídeos se almacenan en la caché de los OCAs a diario

Netflix tiene todo este contenido de vídeo en S3 y cuentan con todos estos servidores de vídeo por todo el mundo. Solamente falta una cosa: ¡Los vídeos!
Netflix utiliza un proceso al que llama caché proactiva para copiar de forma eficaz el vídeo a los OCAs.
¿Qué es una caché?
En inglés, una caché es un lugar para guardar cosas, especialmente bajo suelo, ya sea munición, comida o tesoros. Como cuando las ardillas guardan frutos secos para el invierno.
Por tanto, cada lugar donde esconden la comida es una caché y durante el invierno cualquier ardilla puede encontrar uno de estos lugares y usar el sustento.
Los exploradores del ártico envían a pequeños equipos primero para ir guardando comida, combustible y otros suministros en "cachés" a lo largo la ruta que van a tomar. El equipo más grande que va por detrás parará en cada una de estas localizaciones para reponer suministros.
Tanto las ardillas como los exploradores del ártico trabajan de forma proactiva: hacen algo antes de tiempo para prepararse para el futuro.
Cada OCA es una caché de vídeo de lo que es más probable que vayas a ver.
Netflix almacena sus vídeos en cachés según sus predicciones de lo que vas a ver
La empresa conoce en cada sitio del mundo con un alto nivel de precisión lo que van a ver sus suscriptores y cuándo lo van a ver. ¿Recuerdas que habíamos dicho que Netflix era una compañía basada en datos?
La compañía utiliza los datos de popularidad para predecir qué vídeos van a ser probablemente vistos mañana en cada localización. En este caso, localización significa un conglomerado de OCAs situados dentro de un ISP o de un IXP. Netflix copia los vídeos pronosticados a uno o más OCAs en cada localización, algo que se conoce como pre-posicionamiento. Los vídeos se ponen en los OCAs antes de que nadie los pida.
Esto proporciona un gran servicio para los usuarios porque el vídeo que quieren ver ya está cerca, preparado y disponible para streaming.
Netflix explota lo que se conoce como un sistema de caché escalonada.
Los OCAs más pequeños de los que hablábamos antes están en los ISPs y IXPs. Son demasiado pequeños como para contener todo el catálogo de Netflix por lo que otras localizaciones tienen OCAs con casi todo el catálogo de vídeos de Netflix. Sin embargo, hay otras localizaciones que sí que tienen grandes OCAs con todo el catálogo y obtienen sus vídeos desde S3.

Cada noche, cada servidor OCA se activa y le pregunta a un servicio en AWS cuáles son los vídeos que debería tener almacenados. El servicio en AWS le manda al OCA una lista de vídeos que debería tener según las predicciones de las que hablábamos antes.

Cada OCA es responsable de asegurarse de que tiene todos los vídeos de su lista. Si un OCA en la misma localización tiene uno de los vídeos que debería tener, entonces lo copia desde el OCA local. De lo contrario, buscará el vídeo y lo copiará desde un OCA cercano.

Puesto que Netflix puede predecir lo que será popular mañana, siempre hay un día de margen antes de que haga falta que un vídeo esté en un OCA. Esto significa que se pueden copiar los vídeos durante los periodos de tiempo de baja demanda, reduciendo de forma sustancial el uso de ancho de banda para los ISPs.
Nunca hay un error de caché en Open Connect. Un error de caché sería pedir un vídeo específico a un OCA y que el OCA respondiera que no lo tiene. Los errores de caché se producen constantemente en otras redes de distribución de contenidos porque no se pueden permitir copiar el contenido a todos los sitios. Puesto que Netflix sabe qué vídeos tiene que tener en la caché, sabe exactamente dónde está cada vídeo en cualquier momento. Si un OCA más pequeño no tiene el vídeo, siempre habrá un OCA más grande que lo tenga.
¿Por qué Netflix no copia todos sus vídeos a cada uno de sus OCAs por todo el mundo? El catálogo de vídeos de Netflix es demasiado grande como para almacenar todo en todos los servidores. En 2013, el catálogo de vídeo de Netflix superaba los 3 petabytes; no tengo ni idea de cómo de grande es a día de hoy, pero seguramente sea mucho más grande. Este es el motivo por el que Netflix desarrolló el método de escoger los vídeos a almacenar en cada OCA según los datos de las predicciones sobre lo que los usuarios van a ver.
Pongamos como ejemplo House of Cards , una serie muy popular. ¿A qué OCAs deberían copiarse los archivos de esta serie? Probablemente a cada localización porque hay suscriptores en todo el mundo que quieren ver 'House of Cards'. ¿Qué pasa con los vídeos que no son tan populares como 'House of Cards'? Netflix decide en qué localizaciones deben de estar para dar un mejor servicio a las peticiones cercanas.
Dentro de una localización, un vídeo popular como 'House of Cards' será copiado a muchos OCAs diferentes. Cuanto más popular sea un vídeo, se copiará a más servidores. ¿Por qué? Si solo hubiera una copia de un vídeo muy popular, en cuanto muchos usuarios quisieran ver el vídeo se colapsaría el servidor. Como se dice, el trabajo entre varias manos se hace más liviano.
Esto no significa que un vídeo esté disponible en cuanto haya sido copiado a un servidor OCA. Netflix quiere que sea posible que el mismo contenido se pueda reproducir al mismo tiempo en cualquier lugar del mundo y solamente cuando haya un suficiente número de OCAs con suficientes copias del vídeo se podrá retransmitir de forma apropiada y es entonces cuando se considera que el vídeo está disponible y preparado para que los suscriptores puedan verlo.

Por ejemplo, la segunda temporada de 'Daredevil' en 2016 fue el primer caso en el que Netflix sacó todos los episodios de una serie para todos los dispositivos y en todos los países al mismo tiempo.


Cortesía de un chilango cool (ero)