Escalando en el backend
En una configuración muy simple, una entrada DNS va a una IP que pertenece a un servidor. Todos en todo el mundo van a esa sola máquina. Con suficiente tráfico, eso es demasiado para manejar mucho antes de llegar a ser del tamaño de YouTube. En un escenario simple, agregamos un equilibrador de carga. El trabajo del equilibrador de carga es redirigir el tráfico a varios servidores de fondo mientras aparece como un servidor.
Con tantos datos como tiene YouTube, sería demasiado esperar que todos los servidores puedan servir todos los videos, por lo que tenemos que agregar otra capa de indirección: fragmentación . En un ejemplo artificial, un servidor es responsable de todo lo que comienza con "A", otro posee "B", y así sucesivamente.
Acercando el borde
Eventualmente, sin embargo, el ancho de banda se vuelve intenso y estás moviendo MUCHOS datos a una habitación. Entonces, ahora que somos súper populares, lo sacamos de esa habitación. Las dos tecnologías que importan aquí son las Redes de distribución de contenido y Anycasting .
Donde tengo estos grandes archivos estáticos que se solicitan en todo el mundo, dejo de señalar enlaces directos a mis servidores de alojamiento. Lo que hago en cambio es poner un enlace a mi servidor CDN. Cuando alguien pide ver un video, me lo pide a mi servidor CDN. El CDN es responsable de tener el video, solicitar una copia del servidor de alojamiento o redirigirme. Eso variará según la arquitectura de la red.
¿Cómo es útil esa CDN? Bueno, una IP puede pertenecer a muchos servidores que se encuentran en muchos lugares de todo el mundo. Cuando su solicitud abandona su computadora y va a su ISP, su enrutador asigna la mejor ruta (más corta, más rápida, menos costosa ... cualquier métrica) a esa IP. A menudo, para un CDN, estará en o al lado de su red de Nivel 1 más cercana .
Entonces, solicité un video de YouTube. La máquina real en la que se almacenó es al menos iad09s12.v12.lscache8.c.youtube.com
y tc.v19.cache5.c.youtube.com
. Los que aparecen en la fuente de mi página web que estoy viendo están provistos por algún tipo de servidor de indexación. Ahora, desde Maine, encontré que el servidor tc19 estaba en Miama, Florida. Desde Washington, encontré que el servidor tc19 estaba en San José, California.