Architecture sémantique
Cette page décrit le modèle de données d’IronFlock : les ressources fondamentales et comment elles se rapportent les unes aux autres. Tandis que la Vue d’ensemble de l’architecture couvre les couches physiques du système (edge, cloud, broker de messages), cette page se concentre sur la structure logique — les relations entre projets, appareils, applications et données.
Vue d’ensemble des entités
Compte
├─ Application
│ └─ Version
└─ Projet
├─ Appareil ──────────┐
│ └─ Composant edge de l'app
├─ Groupe ────────────┘
├─ Installation de version
├─ Base de données de flotte
│ └─ Tables de données
├─ Tableau de bord
└─ AlarmeRessources fondamentales
Compte
Un compte est l’identité de niveau supérieur — une personne ou organisation connectée à IronFlock. Un compte possède des projets et des applications.
Application
Une application est un paquet logiciel déployable. Les applications appartiennent à un compte, pas à un projet — une seule application peut être installée dans de nombreux projets différents.
Version
Une version est une construction immuable et versionnée d’une application. Seules les versions en état READY peuvent être installées sur des appareils. Les versions sont immuables — pour modifier le comportement d’une application, une nouvelle version est publiée.
Projet
Un projet est la frontière d’isolation principale. Tout ce qui se trouve dans un projet — appareils, groupes, installations, données, tableaux de bord, alarmes — est invisible pour les autres projets. Chaque projet a son propre realm WAMP sur le broker de messages, une base de données de flotte dédiée et son propre ensemble d’appareils, groupes, installations, tableaux de bord et alarmes.
Appareil
Un appareil est une machine Linux physique ou virtuelle exécutant l’agent IronFlock. Chaque appareil appartient exactement à un projet. Un appareil peut héberger des composants edge de plusieurs installations de versions simultanément et peut être membre de plusieurs groupes.
Groupe
Un groupe est une collection logique d’appareils au sein d’un projet, utilisée pour les opérations en masse. Un appareil peut appartenir à plusieurs groupes (plusieurs-à-plusieurs). Lorsqu’une version est installée sur un groupe, chaque appareil membre reçoit une installation qui peut soit hériter de la configuration du groupe, soit la remplacer localement.
Installation de version
Une installation de version est l’instance en cours d’exécution d’une version spécifique sur un appareil spécifique. Lorsqu’elle est installée via un groupe, l’installation de chaque appareil peut hériter ou remplacer la configuration du groupe, fournissant des valeurs par défaut à l’échelle de la flotte avec des exceptions par appareil.
Base de données de flotte
Chaque projet a une base de données de flotte dédiée — une base de données PostgreSQL avec l’extension TimescaleDB pour les données de séries temporelles. Les composants edge sur les appareils publient la télémétrie via WAMP, le service FleetDB l’écrit dans la base de données du projet, et les données sont interrogeables par les tableaux de bord, le service de requête IA et les outils externes.
Tableau de bord
Un tableau de bord visualise les données de la base de données de flotte du projet. Les tableaux de bord appartiennent à un projet et peuvent combiner des données de plusieurs applications et appareils en une seule vue.
Alarme
Une alarme est une règle d’alerte basée sur des seuils au sein d’un projet. Les alarmes surveillent les données dans la base de données de flotte et déclenchent des notifications lorsque les conditions sont remplies.
Résumé des relations
| Relation | Type | Description |
|---|---|---|
| Compte → Projet | 1:N | Un compte possède plusieurs projets |
| Compte → Application | 1:N | Un compte possède plusieurs applications (indépendant des projets) |
| Application → Version | 1:N | Une application contient plusieurs versions |
| Projet → Appareil | 1:N | Chaque appareil appartient exactement à un projet |
| Projet → Groupe | 1:N | Les groupes sont limités à un projet |
| Appareil ↔ Groupe | N:N | Un appareil peut être dans plusieurs groupes ; un groupe contient plusieurs appareils |
| Projet → Base de données de flotte | 1:1 | Chaque projet a sa propre base de données dédiée |
| Projet → Tableau de bord | 1:N | Les tableaux de bord appartiennent à un projet et interrogent sa base de données de flotte |
| Projet → Alarme | 1:N | Les alarmes sont limitées à un projet et surveillent sa base de données de flotte |
| Appareil → Installation de version | 1:N | Un appareil héberge des composants edge de plusieurs installations de versions |
| Installation de version → Version | N:1 | Chaque installation référence une version spécifique |