Skip to Content
ArchitectureArchitecture sémantique

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 └─ Alarme

Ressources 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

RelationTypeDescription
Compte → Projet1:NUn compte possède plusieurs projets
Compte → Application1:NUn compte possède plusieurs applications (indépendant des projets)
Application → Version1:NUne application contient plusieurs versions
Projet → Appareil1:NChaque appareil appartient exactement à un projet
Projet → Groupe1:NLes groupes sont limités à un projet
Appareil ↔ GroupeN:NUn appareil peut être dans plusieurs groupes ; un groupe contient plusieurs appareils
Projet → Base de données de flotte1:1Chaque projet a sa propre base de données dédiée
Projet → Tableau de bord1:NLes tableaux de bord appartiennent à un projet et interrogent sa base de données de flotte
Projet → Alarme1:NLes alarmes sont limitées à un projet et surveillent sa base de données de flotte
Appareil → Installation de version1:NUn appareil héberge des composants edge de plusieurs installations de versions
Installation de version → VersionN:1Chaque installation référence une version spécifique
Last updated on