Saltar al contenido principal

Arquitectura de alto nivel

Este diagrama presenta el flujo de datos de extremo a extremo, desde la instrumentación de campo hasta las interfaces de operación. No expone detalles de implementación interna (puertos, IPs, secretos de configuración ni rutas de sistema de archivos) — el objetivo es comunicar la arquitectura funcional, no el mapa de despliegue.

Flujo de datos

Componentes clave

ComponenteRol
EMQX 5.8Broker MQTT; recibe telemetría de todos los instrumentos de campo.
apps/ingestConsumidor NestJS; valida señales, aplica el adaptador imperial→SI y escribe en TimescaleDB.
packages/calc-engineMotor MPMS puro TypeScript (sin dependencias de framework); pipeline de 18 etapas TOV→GOV→GSV→NSV→Masa.
TimescaleDBPostgres con hypertable de series de tiempo; almacena telemetría, snapshots y eventos.
apps/apiAPI NestJS; expone REST y WebSocket para la interfaz de usuario; orquesta laboratorio, custodia y reportes.
apps/webFrontend Next.js 16 + React 19; dashboard SCADA, módulos de laboratorio, custodia e ingeniería.
Keycloak 26Proveedor de identidad OIDC/SSO; gestión de roles y autoridades granulares (RBAC).
MinIOAlmacenamiento de objetos on-premise; tickets PDF/A, adjuntos de laboratorio, backups de reportes.

Despliegue

TankOS se despliega on-premise mediante Docker Compose en un servidor single-node dentro de la red del cliente. No requiere conectividad a internet para su operación normal. Ningún dato sale de la infraestructura del cliente.

Para instalaciones que requieran alta disponibilidad o despliegue distribuido, existe un Helm chart opcional para Kubernetes — aunque el caso base (y el más común) es el single-node Docker Compose.