Cómo diseñar un sistema de alta disponibilidad

Cómo diseñar un sistema de alta disponibilidad

Supongamos que tengo algunas aplicaciones web y también algunas aplicaciones de escritorio ejecutándose en un servidor en un entorno de producción.

En un entorno de producción, no se tolera ni siquiera un minuto de inactividad. Actualmente sólo conozco HA Cluster systemcuál se utiliza para este fin. Me gustaría saber si esta es la única forma de evitar el apagado del sistema o, aparte de esto, ¿se utilizan otras formas?

¿Qué utilizan las grandes empresas como Google para la alta disponibilidad, ya que tampoco toleran ni un segundo de inactividad?

Gracias

Respuesta1

Básicamente, desea tener una conmutación por error automática para cada servicio necesario para ejecutar su aplicación.

Una solución podría ser el siguiente enfoque descrito:

  1. Keepalived instalado en ambos sistemas.
  2. HAProxy como Loadbalancer con conmutación por error a HAP LB 2. Monitoreado por keepalived
  3. Apache/NGINX detrás de HAP. Si uno falla, HAP lo monitoreará y lo redireccionará a Apache/NGINX en el otro servidor.
  4. MySQL Master/Replicación Master, carga balanceada y monitoreada sobre HAP

Básicamente, HAProxy distribuye la carga en su sistema y solo la reenvía a uno de los servicios si está en funcionamiento.

La arquitectura que está buscando podría verse así:

ingrese la descripción de la imagen aquí

Respuesta2

Depende: para cada aplicación y cada nivel del modelo OSI se debe crear su propio sistema HA.

Pero para empezar, puedes aprender sobre ha-proxy, keepalived y nginx con backend.

Respuesta3

El sistema es tan fuerte como su eslabón más débil.

En un entorno de producción típico habría múltiples de todo. Un pequeño clúster web puede consistir en un equilibrador de carga, varios servidores proxy inversos, varios servidores http, nodos de base de datos maestro/esclavo o maestro/maestro. En esta configuración, el equilibrador de carga único sería el eslabón débil; si muere, nada funciona. Los entornos más grandes replican esto pero a mayor escala.

En última instancia, el diseño de la red dependerá del uso previsto.

información relacionada