¿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.