DRAFT — Preliminary version, do not share. · Version préliminaire, ne pas partager.

Vue d'ensemble de l'architecture

Cette page explique comment Fundamentum est conçu : comment les données circulent de vos appareils vers vos systèmes, comment la plateforme est déployée et quelles technologies stockent vos données. Elle s'adresse à vos équipes informatiques et d'architecture.

Vue d'ensemble de l'architecture de Fundamentum

Trois principes

Piloté par les événements

L'ingestion des données des appareils est découplée de leur traitement. Le broker MQTT et la Devices API acceptent les messages des appareils et les publient sur un bus d'événements ; les services qui stockent les états, suivent la connectivité, évaluent les alertes, exécutent les fonctions cloud ou alimentent Insight consomment ces événements de manière indépendante. Un consommateur lent ne ralentit jamais vos appareils, et de nouveaux traitements peuvent être ajoutés sans toucher au chemin d'ingestion.

Les mêmes événements alimentent les vues en direct du Hub et les données transmises à vos systèmes par les connecteurs.

Une seule API

Le Hub, vos applications et la CLI fun utilisent tous la même Public API, avec le même jeton et les mêmes autorisations. Tout ce que vous pouvez faire dans le Hub, vous pouvez l'automatiser. L'API est décrite par des spécifications OpenAPI publiées, ce qui vous permet de générer un client dans votre langage. Consultez Public API.

Vos systèmes gardent le contrôle

Vos systèmes obtiennent les données des appareils de trois façons :

Consultez Collecter, acheminer et transformer les données.

Points d'entrée

Point d'entrée Utilisé par Protocole
Broker MQTT Appareils et passerelles, avec votre propre client MQTT ou Fundamentum Edge MQTT 5 sur TLS, port 8883
Devices API Appareils (provisionnement, alternative HTTPS) et outils d'usine REST, /api/v3
Connect Utilisateurs et applications qui se connectent OAuth2 (Authorization Code with PKCE, Client Credentials), SSO
Public API Hub, vos applications, la CLI fun et les agents IA REST, OpenAPI
Insight Vos outils BI, tableaux de bord et notebooks SQL (protocole MySQL)
Connecteurs Vos systèmes MQTT(S), HTTPS

Le broker MQTT est le lien privé de chaque appareil avec Fundamentum, et non un broker généraliste : il n'y a aucun trafic d'appareil à appareil, et vos systèmes reçoivent les données des appareils via des connecteurs. Consultez Topics et formats de messages MQTT et Devices API v3.

Microservices par domaine

Derrière les points d'entrée, une trentaine de microservices possèdent chacun leur propre base de données. Ils s'appellent mutuellement de façon synchrone via REST et échangent des événements de manière asynchrone via le bus d'événements compatible Kafka.

Domaine Ce qu'il couvre
Identité et accès Connect (OAuth2), organisations et projets, sites et zones
Appareils Provisionnement, préenregistrement en usine, authentification des appareils, broker MQTT
Opérations Actions et commandes, capabilities, transferts de fichiers, accès à distance
Données États, connectivité (heartbeats), topics, connecteurs, alertes
Extension et analytique Fonctions cloud, Insight

Comme chaque domaine possède ses données, un domaine peut évoluer, monter en charge ou être rétabli sans entraîner les autres dans sa chute.

Le bon stockage pour chaque besoin

Besoin Technologie
Événements et streaming Bus d'événements compatible Kafka
Données transactionnelles PostgreSQL, avec sauvegardes chiffrées
Historique des états (séries temporelles) TimescaleDB
Dernières valeurs et sessions Redis
Analytique Apache Flink et Apache Doris
Micrologiciel, fichiers et plans d'étage Stockage objet compatible S3

Cloud-native, déployable partout

Une seule définition, la même plateforme dans chaque environnement

L'ensemble de la plateforme est défini sous forme de code dans git : infrastructure, packaging des services et déploiement. Une fusion déclenche un déploiement automatique, et un nouvel environnement est construit à partir de git sans aucune étape manuelle. Chaque environnement exécute les mêmes images de conteneurs et la même topologie, testées et analysées à chaque modification.

Étapes suivantes