Les produits de plate-forme IoT fournissent généralement une connectivité de données MQTT et HTTPS de base. Ils vous permettent également de provisionner des appareils et fournissent des fonctionnalités d'authentification et de gestion, de stockage et de visualisation de télémétrie, de traitement de données et d'alerte. Les entreprises utilisent souvent des plates-formes IoT lorsqu'un agent MQTT autonome n'est pas suffisant pour un cas d'utilisation et qu'un produit de plate-forme IoT plus complet est nécessaire. Une plate-forme IoT fournit une interface unifiée pour gérer une collection d'appareils hétérogène. Cette interface est importante pour de nombreuses applications d'appareils connectés, et il s'agit d'une différence essentielle entre une plate-forme IoT et un agent MQTT autonome. Ce document décrit les exigences et les recommandations architecturales de base avant de déployer une architecture de produits de plate-forme IoT sur Google Cloud.
Ce document fait partie d'une série de documents qui fournissent des informations sur les architectures IoT sur Google Cloud. Cette série comprend également les documents suivants :
- Présentation des architectures d'appareils connectés sur Google Cloud
- Architecture d'agent MQTT autonome sur Google Cloud
- Architecture des produits de plate-forme IoT sur Google Cloud (ce document)
- Bonnes pratiques pour l'exécution d'un backend IoT sur Google Cloud
- Architecture d'appareils sur Pub/Sub vers Google Cloud
- Bonnes pratiques pour le provisionnement et la configuration automatiques des systèmes et serveurs de périphérie et sur solution Bare Metal
Le schéma suivant montre un exemple d'architecture avec un produit de plate-forme IoT générique s'exécutant sur Google Cloud.
Comme le montre le schéma précédent, la plate-forme IoT déploie un agent MQTT ou un point de terminaison pour la connectivité de l'appareil. La plate-forme IoT est connectée à un équilibreur de charge réseau proxy externe pour distribuer le trafic depuis les appareils de périphérie. Des applications IoT supplémentaires peuvent se connecter à la plate-forme IoT via Pub/Sub ou à l'aide du connecteur MQTT Dataflow.
La plate-forme IoT fournit un ensemble de services de gestion des appareils. Comme le montre le schéma, ces services sont les suivants :
- Stockage des identifiants de l'appareil
- Moteur de règles
- Authentification et autorisation des appareils
- Gestion de la configuration des appareils
- Registre d'appareils
- Gestion des mises à jour des appareils
Les produits de plate-forme IoT incluent généralement des services tels que les doubles numériques, les interfaces de développement nécessitant peu de programmation, les fonctionnalités d'alerte et de notification, ainsi que d'autres fonctionnalités d'analyse.
Considérations et choix architecturaux
Les sections suivantes décrivent les choix architecturaux que vous pouvez faire pour une architecture de plate-forme IoT et leur impact.
Points de terminaison d'ingestion
La plupart des applications de plate-forme IoT commerciales incluent un point de terminaison MQTT et généralement un point de terminaison HTTPS pour l'ingestion de données à partir d'appareils connectés.
MQTT
Une plate-forme IoT implémente un point de terminaison MQTT de l'une des manières suivantes :
- Un connecteur entre MQTT et un autre service de messagerie
- Un agent MQTT qui implémente la spécification MQTT complète
Lorsque vous évaluez des plates-formes IoT professionnelles, il est important de savoir laquelle des approches précédentes le fournisseur a choisie pour le produit afin de pouvoir déterminer les implications pour votre cas d'utilisation.
Dans certains cas, le point de terminaison MQTT connecte uniquement les clients MQTT à un service de messagerie de backend, tel que Kafka ou Pub/Sub. Ce type de point de terminaison n'implémente généralement pas la spécification complète du protocole MQTT et n'inclut généralement pas de fonctionnalités telles que les niveaux de qualité QoS 1 et 2, ni les abonnements partagés. L'avantage de cette approche est qu'elle réduit la complexité de la plate-forme IoT, car il n'existe pas d'application d'agent MQTT distincte. Les coûts opérationnels sont réduits et la maintenance est plus simple que si la plate-forme utilisait un agent MQTT distinct. Cependant, en raison de la compatibilité réduite avec les fonctionnalités de protocole MQTT plus avancées, cette approche offre moins de flexibilité et de fonctionnalités pour le transport de messages MQTT qu'un agent MQTT autonome qui implémente la spécification MQTT complète.
D'autres plates-formes IoT fournissent un agent MQTT complet intégré, comme indiqué dans l'exemple d'architecture de ce document. Cet agent peut être l'un des agents Open Source existants ou une implémentation propriétaire. Un agent MQTT complet fournit la fonctionnalité MQTT bidirectionnelle complète décrite précédemment. Cependant, un agent complet peut ajouter de la complexité et des coûts opérationnels à la gestion de la plate-forme IoT.
HTTPS et autres protocoles complémentaires
Outre MQTT, de nombreuses plates-formes IoT fournissent davantage de points de terminaison d'ingestion de données que ceux présentés dans l'architecture principale décrite dans ce document.
HTTPS est une alternative courante au protocole MQTT pour les cas d'utilisation d'appareils connectés. Le coût de la solution est plus élevé que MQTT, mais celui-ci est davantage compatible avec les appareils mobiles (tels que les téléphones), les navigateurs Web et autres applications. Il est souvent utilisé dans certaines applications d'appareils connectés et compatible avec les plates-formes Open Source comme Eclipse Hono et de nombreux produits commerciaux.
De nombreuses applications d'appareils contraints utilisent le protocole CoAP (Contrained Application Protocol), défini dans le document RFC 7252, comme alternative à MQTT. Le CoAP cible des clients à faible consommation et peu gourmands en ressources pour les appareils et les capteurs intégrés. De nombreuses applications de plate-forme IoT commerciales fournissent également un point de terminaison CoAP.
Équilibrage de charge
Pour plus