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.
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 :
- transmises dès leur arrivée, via des connecteurs vers votre propre broker MQTT ou point de terminaison HTTPS ;
- à la demande, via la Public API (dernières valeurs et historique des états) ;
- en SQL, via Insight.
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
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.
- Haute disponibilité et mise à l'échelle automatique. Le plan de contrôle est redondant, et l'infrastructure comme les services s'adaptent automatiquement à la charge.
- Charges de travail isolées. Chaque type de charge de travail (services de la plateforme, fonctions cloud, bus d'événements, bases de données, analytique) s'exécute sur ses propres ressources, et des ressources peuvent être dédiées à un seul client si nécessaire.
- Indépendant du fournisseur. Fundamentum s'exécute sur un ordinateur portable, avec l'ensemble de la pile démarré en une seule commande pour le développement et les démonstrations, ainsi que sur n'importe quel cloud public, de la préproduction à la production.
- À venir : l'exécution sur vos propres serveurs, dans votre centre de données, ainsi qu'une instance dédiée qui vous est réservée, dans le cloud ou sur site.
Étapes suivantes
- Sécurité et confiance : comment les appareils, les utilisateurs et la plateforme sont protégés.
- Fonctionnalités : ce que la plateforme vous permet de faire.
- Concepts clés : projets, registres, appareils et topics.