Architecture
IronFlock est un système distribué avec deux couches : des appareils edge autonomes qui exécutent des applications au point d’exploitation, et des services centraux qui fournissent le stockage de données à l’échelle de la flotte, les tableaux de bord, l’IA et la coordination. Un broker de messages en temps réel connecte l’ensemble.
Ce n’est ni une plateforme purement edge ni une plateforme purement cloud. C’est les deux — et l’architecture est conçue pour que chaque couche fasse ce qu’elle fait le mieux.
Comment le système s’assemble
┌─────────────────────────────────────────────────────────┐ ┌──────────┐
│ Services centraux │ │ Appareil │
│ │ │ virtuel │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌────────┐ │ │┌────────┐│
│ │ FleetDB │ │ Backend │ │ Service │ │ Web │ │ ││Service ││
│ │ Cluster │ │ Service │ │ IA │ │ UI │ │ ││personnalisé││
│ │(Timescale│ │ │ │ │ │ │ │ │└────────┘│
│ │ DB) │ │ │ │ │ │ │ │ │ Agent │
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ └───┬────┘ │ └────┬─────┘
│ │ │ │ │ │ │
│ └─────────────┴──────┬──────┴────────────┘ │ │
│ │ │ │
│ ┌───────┴───────┐ │ │
│ │ Broker WAMP ├────────────────────────────┘
│ │ de messages │ │
│ └───────┬───────┘ │
│ │ │
└────────────────────────────┼────────────────────────────┘
│
┌──────────────┼─────────────┐
│ │ │
┌───────┴──┐ ┌───────┴──┐ ┌──────┴───┐
│ Appareil │ │ Appareil │ │ Appareil │
│ Edge 1 │ │ Edge 2 │ │ Edge 3 │
│┌────────┐│ │┌────────┐│ │┌────────┐│
││ Apps ││ ││ Apps ││ ││ Apps ││
││(Docker)││ ││(Docker)││ ││(Docker)││
│└────────┘│ │└────────┘│ │└────────┘│
│ Agent │ │ Agent │ │ Agent │
└──────────┘ └──────────┘ └──────────┘Les trois couches
1. Appareils edge — Exécuteurs autonomes d’applications
Les appareils edge sont les nœuds d’exécution principaux d’IronFlock. Chaque appareil exécute un agent léger et une ou plusieurs applications conteneurisées (Docker). Les appareils sont autonomes : ils continuent de fonctionner même lorsqu’ils sont déconnectés des services centraux, et ils se reconnectent automatiquement lorsque le réseau est rétabli.
Les appareils edge peuvent être n’importe quel matériel compatible Linux — Raspberry Pi, PC industriels, NVIDIA Jetson, passerelles x86 ou cartes ARM personnalisées.
Ce qui s’exécute sur les appareils edge :
- L’agent IronFlock — gère le cycle de vie de l’appareil, gère les mises à jour OTA, exécute les conteneurs et maintient la connexion au broker de messages
- Vos applications — déployées comme conteneurs Docker dans n’importe quel langage de programmation. Ces applications collectent des données des automates et capteurs, exécutent la logique de contrôle, servent des IHM locaux, exécutent des modèles IA ou font tout ce qu’une application Linux peut faire
Les appareils edge n’initient que des connexions sortantes par défaut — aucun port entrant n’a besoin d’être ouvert. Cependant, les ports des appareils peuvent être sélectivement ouverts si nécessaire, par exemple pour exposer une IHM locale ou un point d’accès API. Voir Appareils edge et agent pour plus de détails.
2. Services centraux — Données, UI et intelligence à l’échelle de la flotte
La couche centrale fournit des capacités qui nécessitent une vue à l’échelle de la flotte ou une infrastructure persistante. Chaque service central est indépendamment évolutif — les services peuvent être mis à l’échelle horizontalement pour gérer des flottes croissantes sans se gêner mutuellement :
- FleetDB — Un cluster de bases de données PostgreSQL/TimescaleDB qui stocke toutes les données de télémétrie collectées depuis les appareils. Chaque projet obtient sa propre instance de base de données isolée avec des tables et des identifiants dédiés.
- Service Backend — Gère les appareils, projets, applications, comptes utilisateur, versions et toutes les opérations au niveau de la flotte.
- Service FleetDB — Traite les flux de données entrants des appareils, gère les transformations de données, sert les données de tableau de bord en temps réel et gère l’évaluation des alarmes.
- Service IA — Orchestre les conversations d’agents IA, ajoutant et supprimant dynamiquement des agents spécialisés selon l’évolution de la conversation.
- Web UI — Le panneau de contrôle basé sur le navigateur où les opérateurs gèrent leur flotte, visualisent les tableaux de bord, configurent les alarmes, développent des applications et interagissent avec l’assistant IA.
- Registre de conteneurs — Stocke les images Docker pour toutes les applications, permettant le déploiement OTA vers n’importe quel appareil de la flotte.
3. Appareils virtuels — Nœuds de calcul centraux personnalisés
En plus des appareils edge physiques, IronFlock vous permet de provisionner des appareils virtuels — des nœuds de calcul hébergés dans le cloud qui rejoignent votre projet aux côtés de votre flotte physique. Un appareil virtuel exécute le même agent IronFlock qu’un appareil physique, participe au même routage de messages et peut exécuter n’importe quelle application conteneurisée.
Utilisations courantes des appareils virtuels :
- Exécuter des services de flotte centraux comme Grafana, Node-RED, Netdata ou Jupyter qui nécessitent une perspective à l’échelle de la flotte
- Héberger des pipelines de traitement de données qui agrègent des données de plusieurs appareils physiques
- Exécuter des services d’inférence IA trop intensifs en calcul pour le matériel edge
- Agir comme des ponts de protocole connectant des systèmes externes (SAP, ERP, API cloud) à votre projet IronFlock
Voir Appareils virtuels pour plus de détails.
Le broker de messages — La colle
Tous les composants d’IronFlock communiquent via un broker de messages WAMP (Web Application Messaging Protocol) central. Le broker fournit :
- Messagerie pub/sub en temps réel — Les appareils publient la télémétrie, les tableaux de bord s’abonnent aux données en direct, les applications communiquent de manière bidirectionnelle
- RPC (appels de procédures distantes) — Le service IA appelle des fonctions côté appareil, le backend déclenche des opérations de conteneurs sur les appareils, les opérateurs envoient des commandes
- Isolation par projet — Chaque combinaison projet-application obtient son propre realm de messagerie isolé cryptographiquement. Les appareils d’un projet ne peuvent pas voir les messages d’un autre
- Authentification — Chaque connexion au broker nécessite des identifiants valides
Voir Broker de messages (WAMP) pour plus de détails.
Options de déploiement
| Mode | Services centraux | Appareils edge | Cas d’usage |
|---|---|---|---|
| Cloud (par défaut) | Cloud géré par IronFlock | Connexion via Internet | La plupart des déploiements |
| Appliance | Boîtier préconfiguré sur site — fait aussi office d’edge device | Connexion via réseau local | Constructeurs de machines / OEM |
| Cloud privé | Votre DMZ / VPC / datacenter | Connexion via réseau local | Air-gapped, réglementé |
Voir Options de déploiement pour une comparaison complète des trois modèles.