2008-10-17 15 views
30

A menudo me maravillo de cómo puedo ir a www.google.com, desde cualquier parte del mundo en cualquier momento, y obtener la página devuelta tan rápido.¿Cómo escala el servidor HTTP como Google?

Claro, comprimen sus resultados y mantienen un diseño mínimo, eso ayuda.

Pero deben tener millones de accesos simultáneos a la casilla que se encuentra en la web y que DNS incluye como "www.google.com".

Todos ustedes que han configurado Apache u otros servidores web saben que las cosas son geniales y súper rápidas hasta que comiencen a obtener unos miles de conexiones simultáneas, y mucho menos millones!

Entonces, ¿cómo lo hacen? Supongo que tienen toda una granja de máquinas servidor, pero nunca lo sabrías. Cuando fui a Verizon justo ahora, la url era www22.verizon.com. Nunca verá "www22.google.com", nunca.

¿Alguna idea de qué tecnologías específicas usan o qué tecnologías usamos los que no son mortales de Google para hacer lo mismo?

+0

Básicamente, una dirección IP no significa que sólo puede referirse a una sola caja. – Pacerier

Respuesta

0

Esto es un manejo normal del tráfico de Internet. Google tiene, literalmente, los centros de datos enteros en todo el planeta que responde a www.google.com

3

http://www.akamai.com

O, traducido al Inglés (y tal vez la elaboración de la respuesta de Chris), utilice una red de distribución de contenidos (CDN) con nodos en todo el mundo - tenga en cuenta que estos no son solo centros de datos, sino servidores web reales (aunque estoy seguro de que la mayoría no daría demasiada importancia a la distinción). Akamai es solo un ejemplo; acceda a google para obtener "red de distribución de contenido" y seguramente encontrará otros.

También puede implementar una estrategia de almacenamiento en caché, aunque eso probablemente no lo lleve tan lejos. ;)

1

Además de las grandes explotaciones web, no hay duda de que estamos haciendo una gran cantidad de almacenamiento en caché. Podrían almacenar en caché cualquier cosa, desde el contenido de la página hasta los términos de búsqueda frecuentes. Y el almacenamiento en caché es algo que los mortales que no son de Google también pueden hacer.

+0

Me parece recordar haber leído en alguna parte que Google mantiene casi todas sus listas de páginas en la memoria en cualquier momento dado. –

+0

El almacenamiento en memoria caché no es suficiente: millones de visitas simultáneas que piden páginas web estáticas aún pondrían de rodillas la mayoría de las configuraciones. Tiene más que ver con DNS – Draemon

42

google.com, update.microsoft.com y otros servicios que manejan un ancho de banda increíblemente alto hacen mucho de su magia a través de DNS.

BGP El enrutamiento de Anycast se utiliza para anunciar la dirección IP de sus servidores DNS desde varios puntos del mundo. Cada servidor DNS está configurado para resolver google.com a direcciones IP dentro de un centro de datos geográficamente cercano. Así que este es el primer nivel de equilibrio de carga, basado geográficamente.

A continuación, aunque una consulta DNS para google.com devolverá solo un pequeño número de direcciones IP, el servidor DNS pasa rápidamente por un amplio rango de direcciones en sus respuestas. Cada cliente que solicite google.com obtendrá una respuesta particular y se le permitirá almacenar esa respuesta por un tiempo, pero el próximo cliente obtendrá una dirección IP diferente. Este es el segundo nivel de equilibrio de carga.

En tercer lugar, utilizan equilibradores de carga de servidor tradicionales para asignar sesiones a una única dirección IP a múltiples servidores de fondo. Entonces este es un tercer nivel de equilibrio de carga.

7

En la casa abierta de Google en Austin anoche, Alan Eustace mostró una imagen del centro de datos de Google en The Dalles, Oregon y dijo que era del tamaño de aproximadamente 3 campos de fútbol.

Es uno de los más nuevos, pero Google tiene varios centros de datos. No es que cada consulta vaya a la misma computadora.

Aún así, si adivina cuántas computadoras tiene Google, y cuántas consultas se realizan contra Google cada segundo, cada servidor individual debe manejar una gran cantidad de solicitudes.

Aquí hay un poco de lectura sobre cómo esto se ve facilitado:

http://research.google.com/archive/bigtable.html
http://labs.google.com/papers/gfs.html

Y justo http://research.google.com/ en general, una gran cantidad de información fresca allí.

0

También tienen servidor web personalizado, pila TCP/IP [junto con la infraestructura], leí en algún lado hace años ... Dudo si Apache o IIS o cualquier otro servidor web comercial/popular puede coincidir con ...

4

Moishe tiene razón: aunque simplemente entregar contenido web estático en la escala de Google es bastante desafiante, se entiende bastante bien y muchas otras personas hacen lo mismo.

Sin embargo, es realmente la entrega de contenido dinámico para el cual Google fue el pionero, ya que su papel que lo inició todo: The Anatomy of a Search Engine. Hay muchas técnicas ingeniosas, algunas de las cuales se han mencionado aquí, pero aún así ... Haga cualquier consulta en Google, con términos de consulta que no estén juntos, no se almacenarán en caché, y seguirá obtener un resultado establecido en un par de cientos de milisegundos: es absolutamente increíble.

para que sea aún más compleja, está la nueva funcionalidad SearchWiki, que añade contenido dinámico en cada resultado de búsqueda, y la personalización limitada de los resultados, si está conectado.

Google han sido buenos en la apertura (hasta cierto punto) la astucia que hace que todo suceda. Al final, todo se reduce a la arquitectura de todo para escalar bien horizontalmente. Así es como Google podría mantenerse al día con el crecimiento exponencial de Internet: simplemente agregue más hardware a sus granjas BigTable, Map/Reduce y Google File System. Al usar gran cantidad de hardware básico, con una buena infraestructura y administración, Google podía permitirse mantener todo el índice en la memoria, y las consultas de una máquina a otra eran más rápidas que ir al disco.

Mientras tanto, Yahoo! compraron máquinas monolíticas cada vez más grandes, hasta que Sun no pudo hacerlas más grandes y tuvieron que cambiar a Hadoop !, demasiado tarde.

¡Escalar los servidores HTTP en Google es la parte fácil!

Cuestiones relacionadas