Sitio web único en varios servidores

Sitio web único en varios servidores

Perdóneme si estoy usando terminología incorrecta. Intenté buscar mi pregunta, pero no estoy muy seguro de cómo expresarla en términos lo suficientemente simples como para realizar una búsqueda. encontréesta publicaciónyesta publicaciónque son relevantes, pero no responden mis preguntas exactas.

Para los sitios web que requieren una gran cantidad de servidores para ejecutarlo, ¿cómo se almacena y administra el código de la aplicación (dejando de lado la base de datos por ahora)? Para simplificar, digamos que serverfault.com tiene 10 servidores alimentándolo. ¿Los 10 servidores tienen exactamente el mismo código o ciertas partes del código se dividirían en diferentes servidores? Si todos tienen exactamente el mismo código, ¿qué herramientas utilizan los administradores para asegurarse de que los servidores contengan exactamente el mismo código? Me imagino que si un servidor contiene un código diferente, pueden suceder cosas malas.

Ahora, para la base de datos... Si tiene una gran cantidad de datos en un sistema de almacenamiento basado en SQL, ¿cómo se administra? ¿Las tablas mismas están divididas en varios servidores o, en general, sería algo así como que los usuarios de la tabla obtienen este servidor, las publicaciones de la tabla obtienen este servidor, etc.? ¿Cómo afronta esto un gigante del tamaño de Facebook o Twitter?

Configuré mi primer servidor ejecutando Apache en Ubuntu en una microinstancia de AWS. ¿Existe alguna herramienta gratuita que pueda consultar para intentar hacer esto? Encontré balanceadores de carga en AWS, pero las descripciones tratan más sobre cómo ejecutarlos, no sobre cómo se almacenan y/o recuperan los datos en sí.

Gracias

Respuesta1

Esto es algo que se llama equilibrio de carga. Un equilibrador de carga redirige las solicitudes a varios servidores, que tienen exactamente el mismo código cargado.

En cuanto a la base de datos, esto generalmente se hace replicando la base de datos en múltiples servidores y dividiendo los datos en múltiples bases de datos. (por ejemplo, las "cosas de Facebook" del usuario A se almacenan en el servidor de base de datos A, el usuario B almacena sus datos en el servidor B, y así sucesivamente)

Si quieres saber más, aquí tienes una colección de cosas para Facebook y su arquitectura: https://stackoverflow.com/questions/3533948/facebook-architecture

Entonces, para tu escenario:

  • Cargue el mismo código en múltiples servidores
  • Configurar un equilibrador de carga

información relacionada