Saltar al contenido principal

Servidores de aplicaciones

Introducción​

Ejecutar múltiples servidores de aplicaciones de Passwork es una parte fundamental de la arquitectura tolerante a fallos. Ofrece alta disponibilidad, distribución de carga y posibilidad de escalado horizontal.

Beneficios clave:

  • Distribución automática del tráfico — si un servidor falla, el balanceador de carga lo elimina del grupo y redirige el tráfico a los nodos saludables
  • Distribución de carga — las solicitudes se reparten uniformemente
  • Escalado horizontal — añada más servidores para aumentar la capacidad
  • Sin tiempo de inactividad — los servidores restantes siguen funcionando cuando uno falla
  • Conmutación por error predecible — el tráfico se redirige automáticamente sin cambiar la configuración de la aplicación

Arquitectura con múltiples servidores de aplicaciones​

Descripción general​

Varios servidores de aplicaciones de Passwork funcionan en paralelo. Cada servidor es una instancia completa de Passwork con un servidor web y PHP-FPM.

nota

Los servidores de aplicaciones no intercambian datos directamente y no conocen cuántos servidores hay en el grupo; esta información no se almacena en la base de datos. Todas las solicitudes (autenticación, lecturas, escrituras, eventos) pasan a través de la conexión a la base de datos, donde los datos se almacenan y recuperan para los usuarios.

Arquitectura:

Esquema de tolerancia a fallos del servidor de aplicaciones

Componentes de un servidor de aplicaciones​

  1. Servidor web

    • Maneja las solicitudes HTTPS
    • Sirve archivos estáticos
    • Redirige las solicitudes a PHP-FPM
  2. Aplicación Passwork

    • Lógica principal de Passwork
    • Operaciones de negocio
  3. PHP-FPM (FastCGI Process Manager)

    • Ejecuta código PHP
    • Gestiona el grupo de procesos PHP
    • Se conecta a la base de datos

Balanceador de carga​

El balanceador de carga es fundamental para la tolerancia a fallos. Distribuye las solicitudes entre los servidores de aplicaciones y redirige automáticamente el tráfico cuando un servidor falla.

Funciones del balanceador de carga​

  1. Distribución de carga

    • Distribuye las solicitudes de manera uniforme
    • Soporta algoritmos como round-robin, menos conexiones, hash de IP
  2. Verificación de estado

    • Verifica periódicamente la disponibilidad del servidor
    • Elimina automáticamente los servidores con fallos del grupo
    • Devuelve los servidores al grupo después de la recuperación

Passwork expone /api/v1/app/health-check para verificar el estado del servidor de aplicaciones.

  1. Terminación SSL/TLS (opcional)
    • Descarga HTTPS en el balanceador
    • Simplifica la gestión de certificados
info

Las sesiones de usuario se almacenan en la base de datos de Passwork. Cuando un usuario es redirigido a otro servidor de aplicaciones, los tokens existentes siguen siendo válidos. No se requieren sesiones persistentes (sticky sessions) — utilice distribución uniforme del tráfico y verificaciones de estado.

Sesiones persistentes y caché​

  • Las sesiones persistentes no son necesarias: las sesiones y los tokens se almacenan en la base de datos.
  • La caché CDN/edge es adecuada para activos estáticos (CSS/JS); no almacene en caché las solicitudes API.

Opciones de balanceo de tráfico​

Elija una solución que se adapte a su infraestructura:

  • HAProxy — balanceador L4/L7 popular con configuración flexible
  • Nginx — balanceador L7 ampliamente utilizado
  • Envoy / Traefik — balanceadores L7 dinámicos con descubrimiento de servicios
  • GSLB / Balanceo de carga DNS entre sitios — para despliegues geodistribuidos
  • ADC de hardware (F5, Citrix, A10, etc.) — para entornos de alta carga o alta seguridad
aviso

No proporcionamos guías de instalación o configuración para balanceadores de carga porque dependen de la infraestructura de cada empresa.

Recomendaciones de escalado​

El escalado horizontal le permite aumentar la capacidad añadiendo servidores:

  • Comience con 2–3 servidores para una tolerancia a fallos básica
  • Añada servidores gradualmente a medida que la carga crece
  • Monitoree el rendimiento de cada servidor
  • Mantenga configuraciones idénticas en todos los servidores de aplicaciones

Limitaciones​

  • Licencia — la tolerancia a fallos está disponible con la licencia avanzada
  • Sincronización de configuración — todos los servidores deben compartir la misma configuración
  • Base de datos — todos los servidores se conectan al mismo conjunto de réplicas de MongoDB