Dispositivos Edge y Agente
Los dispositivos edge son los nodos de ejecución principales en IronFlock. Cada dispositivo es una máquina compatible con Linux — un PC industrial, Raspberry Pi, NVIDIA Jetson, gateway, o cualquier hardware con kernel Linux — que ejecuta el agente IronFlock y una o más aplicaciones containerizadas con Docker.
El Agente IronFlock
El agente es un binario ligero escrito en Go que se ejecuta en el dispositivo y se encarga de:
- Gestión de contenedores — Inicia, detiene y monitoriza contenedores Docker para todas las apps instaladas
- Conectividad WAMP — Mantiene una conexión WebSocket persistente y cifrada con el broker de mensajes central
- Actualizaciones OTA — Recibe y aplica actualizaciones para el propio agente, el sistema operativo host y las aplicaciones instaladas
- Tunneling — Proporciona acceso remoto seguro a los servicios del dispositivo (HTTP, SSH, VNC, TCP, UDP) a través de túneles de proxy inverso — sin necesidad de puertos abiertos
- Gestión de red — Configura conexiones Wi-Fi, LAN y LTE en el dispositivo
El agente es el único componente de IronFlock que se ejecuta directamente en el sistema operativo host. Todo lo demás se ejecuta dentro de contenedores Docker.
Operación autónoma
Los dispositivos edge están diseñados para operar independientemente de los servicios centrales. Si la conexión de red se cae:
- Las apps continúan ejecutándose — Todas las aplicaciones containerizadas siguen operando normalmente
- Las apps pueden almacenar datos en búfer — La telemetría se encola localmente y se envía a FleetDB cuando se restablece la conectividad
Esta autonomía es una decisión de diseño fundamental. En entornos industriales, la fiabilidad de la red no puede garantizarse, y las aplicaciones edge no deben depender de una conexión cloud para su operación principal.
Qué se ejecuta en el dispositivo
┌─────────────────────────────────────────┐
│ Linux Host OS │
│ │
│ ┌─────────────────────────────────┐ │
│ │ IronFlock Agent │ │
│ │ (conectividad, OTA, túneles) │ │
│ └────────────┬────────────────────┘ │
│ │ │
│ ┌────────────┴────────────────────┐ │
│ │ Docker Runtime │ │
│ │ │ │
│ │ ┌─────────┐ ┌─────────┐ │ │
│ │ │ App A │ │ App B │ ... │ │
│ │ │ (OPC UA │ │ (Lógica │ │ │
│ │ │ reader) │ │ propia) │ │ │
│ │ └─────────┘ └─────────┘ │ │
│ └─────────────────────────────────┘ │
└─────────────────────────────────────────┘
│ (solo WSS saliente)
▼
WAMP Message BrokerCada app se ejecuta en su propio contenedor con sus propias dependencias. Las apps pueden escribirse en cualquier lenguaje de programación — Python, Go, Rust, Node.js, C++, o cualquier cosa que funcione en un contenedor Docker.
Hardware soportado
IronFlock soporta cualquier dispositivo Linux con soporte Docker:
| Plataforma | Arquitectura | Ejemplos |
|---|---|---|
| PCs industriales | x86_64 | Beckhoff, Advantech, Kontron, Dell Edge |
| Ordenadores de placa única | ARM64, ARMv7 | Raspberry Pi 4/5, BeagleBone |
| Aceleradores IA | ARM64 | NVIDIA Jetson Nano, Orin, Xavier |
| Gateways | ARM64, x86_64 | Teltonika, Moxa, Advantech |
| Hardware personalizado | ARM (v5, v6, v7), ARM64, x86_64 | Cualquier dispositivo Linux con Docker |
Aprovisionamiento de dispositivos
Los dispositivos pueden añadirse a IronFlock de varias formas:
- Flashear con FlockFlasher — Use la aplicación de escritorio FlockFlasher para escribir IronFlock OS en el almacenamiento del dispositivo. El dispositivo arranca con el agente preconfigurado y se conecta automáticamente.
- Instalar el agente — En un sistema Linux existente, instale el binario del agente y proporcione un archivo de configuración (archivo
.flock) con las credenciales del dispositivo. - Pre-registro OEM — Registre los números de serie de los dispositivos con antelación. Cuando el dispositivo se enciende y se conecta, se asigna automáticamente al proyecto correcto.
Modelo de comunicación
Por defecto, los dispositivos edge solo realizan conexiones salientes. El agente se conecta al broker de mensajes WAMP a través de un WebSocket cifrado (WSS) y no necesita escuchar en ningún puerto. Esto significa:
- No se requieren reglas de firewall entrantes en el dispositivo o su red por defecto
- El dispositivo no es descubrible ni direccionable desde internet
- El acceso remoto se proporciona a través de túneles inversos — iniciados por el dispositivo, no por el operador
Sin embargo, los puertos del dispositivo pueden abrirse selectivamente cuando sea necesario — por ejemplo para exponer un HMI local, API REST, u otro servicio ejecutándose en el dispositivo. El acceso a puertos se configura y gestiona a través de la UI de IronFlock.
Consulte Seguridad para la arquitectura de seguridad completa.