Estoy tratando de entender cómo funcionan sitios masivos como Facebook o Wikipedia, para mi curiosidad intelectual. Leí sobre varias técnicas para construir sitios escalables, pero todavía estoy desconcertado sobre un detalle en particular.
La parte que me confunde es que, en última instancia, el DNS asignará todo el dominio a una sola dirección IP, o un puñado de direcciones IP en el caso de DNS de round-robin.
Por ejemplo, wikipedia.org solo tiene un registro DNS tipo A. Por lo tanto, las personas de todo el mundo que visitan Wikipedia deben enviar una solicitud a la única dirección IP especificada en DNS.
¿Cuál es la pieza de hardware que escucha en la dirección IP de un sitio masivo y cómo puede manejar toda la carga proveniente de las solicitudes de usuarios de todo el mundo?
Edición 1: ¡ Gracias por todas las respuestas! Anycast parece una respuesta factible ... ¿Alguien sabe de una manera de verificar si una dirección IP en particular está enrutada de modo alguno, de modo que pueda verificar que este es realmente el truco utilizado en la práctica por sitios grandes?
Edición 2: después de leer más sobre el tema, parece que cualquier difusión normalmente no se usa para contenido web dinámico. Anycast generalmente se usa para UDP (p. Ej., Búsquedas de DNS) o, a veces, para contenido estático.
Una cosa interesante a tener en cuenta es que Facebook usa profile.ak.fbcdn.net para alojar contenido estático como hojas de estilo y bibliotecas javascript. Cada vez que hago ping a este nombre, recibo una respuesta de una dirección IP diferente. Sin embargo, no puedo decir si se trata de un lanzamiento en acción o de una técnica completamente diferente.
Volviendo a mi pregunta original: por lo que puedo decir, incluso un sitio grande tendrá una sola pieza costosa de hardware de equilibrio de carga que escucha en su puñado de direcciones IP públicas.