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.
Se utilizan varias técnicas para sitios grandes.
www.youtube.com
-> cualquier número de direcciones IPVeamos en DNS:
Entonces, www.youtube.com podría ir a varias direcciones IP.
direcciones IP emitidas
Una sola IP podría ser manejada por cualquier número de sistemas autónomos (una red en Internet) simultáneamente. Por ejemplo, muchos de los servidores DNS raíz, así como el
8.8.8.8
servidor DNS de Google, se emiten en muchos puntos del mundo. La idea es que si estás en los EE. UU., Accedes a la red de EE. UU.medios procedentes de diferentes servidores
El hecho de que esté
www.youtube.com
activado no significa que todo el contenido tenga que venir del mismo servidor. Justo en este sitio, los recursos estáticos se sirven desde ensstatic.net
lugar deserverfault.com
.Por ejemplo, si miramos el PSA Slave Leia de Kaley Cuoco, descubrimos que los medios son atendidos por
v10.lscache5.c.youtube.com
.múltiples conexiones a internet
Te aseguro que YouTube tiene más de una conexión a Internet. A pesar de todas las otras técnicas, incluso si Youtube realmente fuera un solo sitio y un solo servidor, en teoría podría tener conexiones con todas las demás redes a las que servía video. En el mundo real, eso no es posible, por supuesto, pero considere la idea.
Cualquiera o todas estas ideas (¡y más!) Se pueden usar para apoyar una Red de entrega de contenido . Lea sobre ese artículo si desea saber más.
fuente
Te equivocas al imaginar que YouTube (también conocido como Google) tiene un solo servidor; Esta información podría ayudar a ilustrar la escala del sistema que respalda ese servicio.
Incluso si solo tiene un punto de presencia, puede tener absolutamente más de un servidor detrás de un solo nombre, e incluso IP, utilizando herramientas como equilibradores de carga y todo.
Sin embargo, Google tiene una gran cantidad de puntos de presencia y utiliza herramientas como AnyCast, una técnica para publicar la misma IP en varios lugares de Internet, y hacer que la gente sea enrutada al grupo de servidores más cercano que la posee, para respaldar la infraestructura.
fuente
Tocaré un poco el lado de la red: Google tiene un Punto de Presencia (PoP) en 73 centros de datos únicos en todo el mundo (sin incluir el suyo). Son miembros de 69 intercambios únicos de Internet . Google está en más centros de datos y puntos de intercambio de Internet que otras redes enumeradas en peeringdb.
La capacidad total de intercambio de Internet de Google es> 1.5Tbps, y ese 1.5Tbps está reservado para redes con> 100Mbps de tráfico con Google, pero menos de lo que supongo es de 2-3Gbps. Después de tener "volumen suficiente" , se lo traslada a la interconexión privada (PNI).
Además de la interconexión de intercambio de Internet y la interconexión privada (con AS15169), YouTube también opera una red de tránsito: AS43515, y otra red que supongo es para emparejamiento / desbordamiento pagado, AS36040. Google también opera los servidores de Google Global Cache , para que los ISP se implementen aún más localmente dentro de su red. (Datos de peeringdb, bgp.he.net).
Según mi experiencia, creo que YouTube usa mucho más que solo la geolocalización de IP o Anycast para elegir una ubicación desde la que publicar videos.
Google ejecuta una enorme red troncal global, poseen fibra oscura , han financiado cables submarinos . ¡El volumen de tráfico que genera YouTube es enorme! Supongo que YouTube tiene un volumen de tráfico máximo de> 12Tbps. Google representa al menos el 7% (y probablemente> 10%) de todo el tráfico de Internet entre dominios.
Entonces, para responder realmente a su pregunta, desde una perspectiva de red, para escalar como YouTube, debe hacer una inversión masiva en su red, desde la fibra en el suelo hasta el equipo WDM y los enrutadores. Debe tener el contenido y la red lo más cerca posible de sus usuarios. Esto generalmente significa mirar, IXs y quizás un poco de tránsito. Debe poder decirles de forma inteligente a los usuarios de dónde obtener el contenido para mantener el tráfico lo más distribuido y económico posible. Y, por supuesto, ¡debes tener una infraestructura de servidor masiva para almacenar, procesar, convertir y entregar 4 mil millones de visitas al día!
Si tiene curiosidad sobre el lado del servidor, escribí una publicación de blog que desglosa algunas de las imágenes del centro de datos lanzadas recientemente.
fuente
Si desea saber más sobre los sistemas a gran escala y las tecnologías que utilizan estas empresas, la mejor fuente ahora es http://highscalability.com
Las compañías más grandes como Google o Akamai, siempre tienen componentes que escribieron / crearon ellos mismos. (por ejemplo, Akamai desarrolló un servidor web para sus servicios)
fuente