resources/views/pages/frontend/docs/uml-despliegue-infraestructura.md
Última modificación: 24 Oct, 2026

5.1 Despliegue: Arquitectura Física

Este diagrama modela la topología de despliegue e infraestructura física de Mañuti, detallando la interconexión de redes, demonios de sistema operativo y puertos de transporte en un clúster de alta disponibilidad.


1. Explicación y Semántica del Diagrama

El esquema refleja la segregación en capas de servicio:

  • Capa Web (Ingress & Reverse Proxy):
    • Nginx: Termina el cifrado HTTPS en el puerto 443. Deriva peticiones convencionales al socket UNIX de PHP-FPM y solicitudes WebSocket al puerto interno 8080.
  • Capa de Aplicación y Demonios:
    • PHP-FPM (Laravel 12): Ejecuta la lógica web de forma síncrona.
    • Supervisor: Gestiona permanentemente los procesos de fondo (horizon y reverb:start).
  • Capa de Datos y Almacenamiento:
    • MariaDB (Puerto 3306): Persistencia relacional primaria (Datos transaccionales, RBAC, Catálogos).
    • Redis (Puerto 6379): Almacenamiento en memoria para sesiones, caché y broker de colas.
    • MongoDB (Puerto 27017): Base de datos NoSQL para auditoría forense inmutable.

2. Cómo se Lee este Diagrama

  • Los bloques subgraph representan servidores o contenedores independientes.
  • Las flechas indican el protocolo y puerto de comunicación utilizado (e.g., TCP:3306, FastCGI, HTTPS).

3. Implementación en el Framework Mañuti

  • Configuración Nginx: /etc/nginx/sites-available/framedev.
  • Supervisores: /etc/supervisor/conf.d/horizon.conf y reverb.conf.
  • Conexiones de Base de Datos: Mapeadas a variables de entorno en .env.

4. Diagrama Mermaid

flowchart LR
    %% Nodos de Cliente
    subgraph Cliente ["Cliente"]
        NavegadorWeb["Navegador Web"]
    end

    %% Servidor de Aplicaciones
    subgraph AppServer ["Servidor de Aplicaciones"]
        Nginx["Nginx Web Server"]
        PHP["PHP-FPM (Laravel 12)"]
        Supervisor["Supervisor Daemon"]
        Horizon["Horizon Workers"]
    end

    %% Capas de Datos y Caché
    subgraph DBServer ["Servidor de Base de Datos"]
        MariaDB[("MariaDB (SQL)")]
    end

    subgraph NoSQLServer ["Servidor NoSQL"]
        Mongo[("MongoDB (Audit)")]
    end

    subgraph CacheServer ["Servidor de Caché"]
        Redis[("Redis (In-Memory)")]
    end

    %% Conexiones
    NavegadorWeb -->|"HTTPS (443)"| Nginx
    Nginx -->|"FastCGI (Unix Socket)"| PHP
    
    PHP -->|"TCP:3306 (Data)"| MariaDB
    PHP -->|"TCP:6379 (Session/Cache)"| Redis
    PHP -->|"Gestiona"| Supervisor
    
    Supervisor -->|"Spawns Processes"| Horizon
    
    Horizon -->|"Pop Jobs"| Redis
    Horizon -->|"Write Logs (TCP:27017)"| Mongo
    Horizon -->|"Read State"| MariaDB

Enlaces Relacionados

Edita este documento en >> uml-despliegue-infraestructura.md
← Volver a la Landing Page