
Supongamos que la infraestructura de un sitio web es muy complicada y está completamente distribuida (probablemente como la mayoría de las grandes empresas web).
¿Estoy en lo cierto al pensar que aunque existen todos estos servidores web adicionales para manejar múltiples solicitudes de clientes, todavía hay una única "máquina" a la que los usuarios deben ingresar? Supongo que esta máquina será la que esté físicamente asociada a la dirección IP.
Lo pregunto porque necesito saber si, en lugares donde existen sistemas distribuidos, todavía hay un único punto de falla, generalmente el nodo de control o, en este ejemplo, la máquina conectada a la Internet pública. Seguramente no puede haber dos máquinas conectadas a Internet, ya que tendrían que tener direcciones IP diferentes.
Es posible que esta "máquina" no sea un servidor en sí, pero tal vez sea una pieza de equipo de Cisco. Sólo necesito saber si, en el mundo real, estos sistemas distribuidos todavía tienen una sección particular en la que dependen de la integridad de un dispositivo electrónico.
Respuesta1
Puede haber, pero no es necesario, una máquina por la que pasan todas las solicitudes; a menudo, esta máquina se denominaequilibrador de carga. Sin embargo, si cada solicitud que realiza un cliente es independiente, o si el front-end distribuido puede comunicarse con un back-end distribuido que está sincronizado, un cliente puede comunicarse con una máquina diferente para cada solicitud que realiza.
Todo lo que debe suceder es que el cliente proporcione a la máquina independiente toda la información que necesita para completar la solicitud por sí solo, o que el servidor realice una consulta a una base de datos distribuida de back-end contra un token (a menudo una cookie para sitios web). ) y el servidor puede continuar donde lo dejó la otra máquina.
Respuesta2
Para responder tu pregunta,No, puedes construir una infraestructura de sitio web sin puntos únicos de falla.
La operación por turnos de DNS permite asociar varias IP con un único nombre de dominio; cada una de estas interfaces puede a su vez hablar conagrupadosistemas backend, donde hay múltiples copias independientes de las bases de datos, que se sincronizan continuamente.
Jeff Atwood en realidadblogueadosobre el trabajo de Netflix para hacer que su sistema sea impermeable a puntos únicos de falla, incluido un demonio que desactiva aleatoriamente los servicios/instancias que utilizan para realizar pruebas.
Respuesta3
Algunos ejemplos:
Los mismos principios se pueden aplicar a cualquier sistema front-end, como un equilibrador de carga cuyo trabajo es distribuir solicitudes HTTP entrantes a los nodos de servidores web en una granja de servidores.
Respuesta4
Puede haber (y a menudo hay) varias direcciones IP diferentes asociadas con un único nombre de dominio. Por ejemplo, google.com actualmente resuelve (para mí) lo siguiente:
Name: google.com
Address: 173.194.34.129
Name: google.com
Address: 173.194.34.130
Name: google.com
Address: 173.194.34.131
Name: google.com
Address: 173.194.34.132
Name: google.com
Address: 173.194.34.133
Name: google.com
Address: 173.194.34.134
Name: google.com
Address: 173.194.34.135
Name: google.com
Address: 173.194.34.136
Name: google.com
Address: 173.194.34.137
Name: google.com
Address: 173.194.34.142
Name: google.com
Address: 173.194.34.128
El comportamiento del navegador web varía, pero generalmente probará una dirección IP al azar y pasará a otra si no recibe respuesta de la primera. Así que aquí no hay ningún punto único de fracaso.