Partager via


Efficacité des performances dans votre charge de travail IoT

Les solutions IoT incluent des composants d’appareil, de périphérie et de cloud, et vont de millions de petits appareils connectés au cloud à des solutions industrielles où quelques serveurs puissants sont des passerelles pour la connectivité cloud. Le nombre d’appareils, leur emplacement physique et géographique, ainsi que le nombre de messages qu’ils envoient ou reçoivent sont quelques-uns des facteurs qui peuvent définir l’efficacité des performances d’une charge de travail IoT.

L’efficacité des performances inclut également la capacité d’une charge de travail IoT à être mise à l’échelle efficacement pour répondre aux demandes. L’un des avantages du cloud est la disponibilité géographique et la possibilité de mettre à l’échelle les services à la demande, avec peu ou pas de temps d’arrêt des applications.

L’efficacité des performances représente les performances par rapport à l’utilisation des ressources dans les conditions indiquées. L’efficacité des performances mesure la façon dont un produit ou un système, lors de l’exécution de ses fonctions, répond aux exigences pour :

  • Comportement temporel, tel que les temps de réponse, les temps de traitement et les taux de débit.

  • Utilisation des ressources, ou quantités et types de ressources utilisées.

  • Capacité ou limites maximales.

Évaluer l’efficacité des performances dans votre charge de travail IoT

Pour évaluer votre charge de travail IoT à l’aide du pilier efficacité des performances de l’infrastructure Well-Architected, répondez aux questions sur l’efficacité des performances pour les charges de travail IoT dans azure Well-Architected Review. Une fois que l’évaluation a identifié les recommandations clés en matière d’efficacité des performances pour votre solution IoT, utilisez le contenu suivant pour faciliter l’implémentation des recommandations.

Principes de conception

Cinq piliers de l’excellence architecturale sous-tendent la méthodologie de conception des charges de travail IoT. Ces piliers servent de boussole pour les décisions de conception ultérieures dans les domaines de conception IoT clés. Les principes de conception suivants étendent le pilier qualité d’Azure Well-Architected Framework - Performance Efficiency.

Principe de conception Considérations
Conception pour la mise à l’échelle horizontale Une solution IoT peut commencer avec quelques centaines d’appareils ou de messages et atteindre des millions d’appareils et de messages par minute. Vous pouvez facilement mettre à l’échelle les services cloud pour augmenter la charge, mais la situation peut être plus complexe pour les appareils et les passerelles IoT. Les appareils IoT peuvent être conçus ou déployés avant la finalisation de la solution. L’IoT industriel ou des secteurs similaires peuvent mesurer la durée de vie des appareils en décennies. La mise à jour de la capacité en remplaçant des appareils est coûteuse. Dans ces scénarios, il est particulièrement important de planifier à l’avance.
Décalage vers la gauche sur les tests de performances Testez tôt et testez souvent pour détecter les problèmes plus tôt. N’oubliez pas la complexité d’avoir des capteurs, des appareils et des passerelles dans des emplacements géographiquement différents avec des caractéristiques, une vitesse et une fiabilité de communication différentes. Planifiez cette complexité dans vos tests et veillez à tester les scénarios d’échec tels que la déconnexion du réseau. Effectuez des tests de contrainte et de charge de tous les composants d’appareil, de périphérie et de cloud dans votre solution IoT.
Surveiller en continu les performances en production Pour surveiller différents types d’appareils dans plusieurs régions géographiques, utilisez une solution de supervision distribuée. Équilibrez la quantité d’informations surveillées et envoyées au cloud par rapport aux coûts de mémoire et de performances. Paramétrez la transmission pour les scénarios de diagnostic et surveillez à plusieurs niveaux et couches. Exposez les métriques de passerelle pour les solutions industrielles ou compatibles avec la passerelle.

Couches d’architecture IoT

Les principes de conception de l’efficacité des performances permettent de clarifier les considérations pour garantir que votre charge de travail IoT répond aux exigences des couches d’architecture IoT fondamentales. Les sections suivantes traitent des spécificités de la couche pour le pilier d’efficacité des performances.

Diagramme montrant les couches et les activités transversales dans l’architecture IoT.

Couche d’appareil et de passerelle

Un appareil IoT est un appareil informatique qui se connecte à une solution IoT et peut collecter, transmettre ou recevoir des données. Les passerelles sont des points de connexion entre les appareils et le cloud, ou entre IoT et d’autres composants.

Optimiser les fonctionnalités matérielles

La mise à niveau ou le remplacement du matériel est coûteux et fastidieux. Dimensionner les appareils IoT en fonction de la capacité et des fonctionnalités requises à l’avance.

Pour optimiser les fonctionnalités matérielles :

  • Exécutez des tâches intensives de calcul et d’entrée-sortie sur un matériel spécifique. Par exemple, exécutez des algorithmes machine learning (ML) sur des unités de traitement graphique (GPU) locales.

  • Optimisez les fonctionnalités matérielles existantes en utilisant des langages et des frameworks efficaces comme Embedded C et Rust Embedded. Vous pouvez utiliser le Kit de développement logiciel (SDK) Azure IoT Embedded C lors du développement pour des appareils limités, ou lorsque la majeure partie de la pile de sécurité et de communication est déjà disponible sur l’appareil.

  • Utilisez le Kit de développement logiciel (SDK) d’appareil Azure IoT pour C pour tout ce dont vous avez besoin pour vous connecter à la passerelle cloud. Les kits de développement logiciel (SDK) Azure IoT Device gèrent la traduction de messages, la gestion des erreurs et les mécanismes de nouvelle tentative nécessaires pour une connexion résiliente.

La mise à l’échelle est importante pour la couche d’appareil et de passerelle. Pour mettre à l’échelle cette couche :

  • Utilisez des passerelles comme unités d’échelle. Si votre solution ajoute des appareils ou des ressources IoT (par exemple des serveurs OPC UA ) au fil du temps, utilisez davantage de passerelles de périphérie pour ingérer les données de ces serveurs.

  • Effectuer une évaluation de la mise à l’échelle pour toutes les couches amont, y compris les passerelles cloud et les services cloud. Pour en savoir plus sur l’utilisation de plusieurs hubs IoT en tant qu’unités d’échelle pour une solution IoT, consultez Comment provisionner des appareils sur des hubs IoT.

Exécuter des charges de travail à la périphérie

En fonction des contraintes système telles que le débit réseau ou la latence, envisagez d’exécuter certaines charges de travail à la périphérie. Séparez les charges de travail par contrainte de temps et latence et temps de réponse requis. Utilisez le calcul local pour les scénarios de faible latence et de connexion intermittente. Exécuter des charges de travail à grande échelle dans le cloud.

À la périphérie, utilisez des files d’attente de priorité pour envoyer différents flux de données dans l’ordre requis. Avec les files d’attente de priorité, les messages sont envoyés par ordre de priorité, mais Azure IoT Hub journalise toujours les messages en fonction de l’ordre de réception.

Optimiser la connectivité des appareils

Tenez compte des points suivants pour optimiser la connectivité des appareils :

  • Utilisez les hubs IoT qui ont la latence la plus faible sur vos appareils. Vous pouvez avoir besoin d’IoT Hubs dans plusieurs régions lorsque les appareils doivent se connecter à partir de différents emplacements géographiques.

  • Utilisez une connexion avec état ouverte pour les communications bidirectionnelles entre les appareils et la solution IoT afin de réduire la surcharge liée à la configuration des connexions.

  • Ne connectez pas tous les appareils à la fois, par exemple après une panne de courant régionale. Utilisez un backoff exponentiel tronqué avec une gigue introduite lors de la nouvelle tentative.

Optimiser les scénarios hors connexion

Vous pouvez fournir aux appareils suffisamment d’informations et de contexte pour fonctionner sans connexion cloud et stocker des données localement, afin qu’ils puissent récupérer après des déconnexions et des redémarrages. Les stratégies suivantes prennent en charge les opérations hors connexion :

  • Vérifiez que l’appareil est capable de stocker des données localement quand l’appareil n’est pas connecté, y compris les journaux et les données de télémétrie mises en cache en fonction de la priorité.

  • Définissez une durée de vie (TTL) sur les données, afin que les données expirées soient supprimées automatiquement.

  • Ignorez les données moins importantes lorsque l’appareil n’est pas connecté, pour réduire le stockage local nécessaire et réduire le temps de synchronisation lorsque l’appareil se reconnecte.

  • Si le stockage d’appareils de périphérie atteint la capacité, utilisez une stratégie d’éviction du cache, telle que fiFO (premier entré, dernier sorti), dernier entré, premier sorti (LIFO) ou basée sur la priorité.

  • Envisagez d’utiliser un disque ou un contrôleur de disque distinct pour stocker des données, afin que le runtime ou l’application de l’appareil puisse continuer à fonctionner quand le stockage est insuffisant.

Utilisez des jumeaux d’appareil et des jumeaux de module pour synchroniser de manière asynchrone les informations d’état entre les appareils et le cloud, même lorsque les appareils ne sont pas actuellement connectés à la passerelle cloud. Les jumeaux d’appareil et de module contiennent uniquement l’état actuel à un moment donné, pas d’historique ou d’informations supprimées.

Couche d’ingestion et de communication

La couche d’ingestion et de communication des données envoie les données des appareils à la solution IoT. Les modèles de communication entre les appareils et la solution IoT sont les suivants :

  • Messages appareil-à-cloud.
  • Messages cloud-à-appareil.
  • Chargements de fichiers.
  • Jumeaux d'appareil.
  • Méthodes directes.

Optimiser l’efficacité de la messagerie

Le nombre et la taille des messages appareil-à-cloud sont un paramètre important pour l’efficacité des performances de la solution IoT. Les services Azure IoT tels que IoT Hub et Azure IoT Central définissent des limites de message par niveau, ce qui affecte les performances et le coût de la solution.

Tenez compte des recommandations de messagerie suivantes :

  • IoT Hub et IoT Central calculent le nombre de messages de quota quotidien en fonction d’une taille de message de 4 Ko. L’envoi de messages plus petits laisse une certaine capacité inutilisée. En général, utilisez des tailles de message proches de la limite de 4 Ko. Regroupez des messages appareil-à-cloud plus petits en messages plus grands pour réduire le nombre total de messages, mais tenez compte de la latence introduite lors de la combinaison de messages.

  • Évitez les communications bavardages. Pour la communication périphérique à appareil ou de module à module, ne concevez pas d’interactions qui envoient de nombreux petits messages.

  • Utilisez le traitement intégré des messages du Kit de développement logiciel (SDK) Azure IoT Edge pour le protocole AMQP (Advanced Message Queuing Protocol) pour envoyer plusieurs messages de télémétrie au cloud.

  • Utilisez le traitement par lots au niveau de l’application en combinant plusieurs messages plus petits sur l’appareil en aval et en envoyant des messages plus volumineux à la passerelle edge. Ce traitement par lots limite la surcharge de message et réduit les écritures dans le stockage sur disque de périphérie local.

  • Utilisez le multiplexage de connexion AMQP pour réduire la dépendance aux limites de connexions TCP (Transmission Control Protocol) par client sdk. Avec le multiplexage de connexion AMQP, plusieurs appareils peuvent utiliser une seule connexion TCP pour IoT Hub.

  • Utilisez des méthodes directes pour les interactions demande-réponse qui peuvent réussir ou échouer immédiatement, après un délai d’attente spécifié par l’utilisateur. Cette approche est utile pour les scénarios où le cours d’action est différent selon que l’appareil a répondu ou non.

  • Utilisez des jumeaux d’appareil pour les informations sur l’état de l’appareil, y compris les métadonnées et les configurations. IoT Hub conserve un jumeau d’appareil pour chaque appareil que vous connectez.

Comprendre les quotas et la limitation de messagerie

Le niveau IoT Hub définit les limites de la passerelle cloud par unité. Le quota de messagerie définit un débit soutenu et des taux d’envoi soutenus pour le niveau. IoT Hub pouvez gérer les charges supérieures à ces quotas pendant de courtes durées afin de gérer de manière résiliente les rafales ou les dépassements de charge.

Une autre limite importante est la charge de service horaire ou quotidienne ou la limite de limitation . Les limites de limitation protègent un hub IoT contre une charge trop longue.

Les diagrammes suivants illustrent la relation entre les limites de charge, de quota et de limitation. Le diagramme de gauche montre que IoT Hub peut gérer une charge élevée soutenue ou constante jusqu’au niveau du quota pour le niveau IoT Hub. Le diagramme de droite montre que IoT Hub peut gérer la charge qui change au fil du temps, tant qu’elle n’atteint pas la limite de limitation et qu’elle n’est pas en moyenne au-dessus du quota pour le niveau IoT Hub.

Diagramme de gauche montrant une charge élevée constamment en dessous du quota. Par rapport au diagramme de droite qui montre une charge plus faible avec des pics occasionnels.

Optimiser le traitement des messages

Les messages d’un appareil ou d’une passerelle peuvent avoir besoin d’être traduits, traités ou enrichis avec plus d’informations avant le stockage. Cette étape peut prendre du temps. Il est donc important d’évaluer l’effet sur les performances. Certaines recommandations entrent en conflit, telles que l’utilisation de la compression pour optimiser le transfert de données et l’évitement du traitement cloud dans le déchiffrement des messages. Ces recommandations doivent être équilibrées et évaluées par rapport à d’autres piliers architecturaux et exigences de solution.

Pour optimiser les performances de traitement des données cloud :

  • Optimisez le format de données utilisé pour envoyer des données au cloud. Comparez les performances (et le coût) de la bande passante par rapport à l’amélioration des performances avec moins de traitement des données cloud nécessaire. Envisagez d’utiliser IoT Hub enrichissement de messages pour ajouter du contexte aux messages d’appareil.

  • Effectuez le traitement des événements critiques sur les données ingérées à mesure qu’elles arrivent, au lieu de stocker des données non traitées et de demander des requêtes complexes pour acquérir les données. Pour le traitement des événements critiques dans le temps, tenez compte des impacts de l’arrivée tardive et du fenêtrage. Évaluez en fonction du cas d’usage, par exemple la gestion critique des alarmes et l’enrichissement des messages.

  • Sélectionnez le niveau de IoT Hub approprié, De base ou Standard, en fonction des exigences de la solution. Tenez compte des fonctionnalités que le niveau de base ne prend pas en charge.

  • Sélectionnez le bon IoT Hub taille de niveau 1, 2 ou 3, ainsi que le nombre d’instances en fonction du débit des données, des quotas et des limitations d’opération. Pour IoT Central, sélectionnez le niveau approprié : Standard 0, Standard 1 ou Standard 2, en fonction du nombre de messages envoyés d’appareils vers le cloud.

  • Envisagez d’utiliser Azure Event Grid pour le routage d’événements publish-subscribe. Pour plus d’informations, consultez React pour IoT Hub des événements à l’aide d’Event Grid pour déclencher des actions et Comparer le routage des messages et Event Grid pour IoT Hub.

Hiérarchiser les données

Certaines données que les appareils envoient au cloud peuvent être plus importantes que d’autres données. La classification et la gestion des données en fonction de la priorité sont une bonne pratique pour l’efficacité des performances.

Par exemple, un capteur de thermostat envoie la température, l’humidité et d’autres données de télémétrie, mais envoie également une alarme lorsque la température est en dehors d’une plage définie. Le système classe le message d’alarme comme une priorité plus élevée et le gère différemment de la télémétrie de température.

Tenez compte des recommandations suivantes pour la classification et la gestion des données :

  • Utilisez IoT Edge files d’attente de priorité pour vous assurer que les données importantes sont hiérarchisées lors de l’envoi à IoT Hub. IoT Edge met en mémoire tampon les messages en l’absence de connectivité, mais une fois la connexion restaurée, envoie d’abord tous les messages mis en mémoire tampon dans l’ordre de priorité, suivis de nouveaux messages.

  • Utilisez IoT Hub routage des messages pour séparer les itinéraires pour différentes priorités de données en fonction du cas d’usage. IoT Hub routage des messages ajoute une latence.

  • Enregistrez et envoyez des données de faible priorité à des intervalles plus longs, ou à l’aide de chargements par lots ou de fichiers. La détection des programmes malveillants sur les fichiers chargés augmente la latence.

  • Séparez les messages en fonction des contraintes de temps. Par exemple, envoyez des messages à IoT Hub directement en cas de contrainte de temps et utilisez le chargement de fichiers via IoT Hub ou le transfert de données par lots, comme Azure Data Factory s’il n’existe aucune contrainte de temps. Vous pouvez utiliser le module d’objet blob IoT Edge pour le chargement de fichiers.

Couche de gestion et de modélisation des appareils

Différents types d’appareils peuvent se connecter à une solution IoT, et une solution IoT peut se connecter à de nombreux appareils et passerelles en même temps. Outre la connexion et la configuration des appareils et des passerelles, la solution IoT doit comprendre les données que les appareils et les passerelles capturent et ingèrent, et doit transférer et contextualiser ces données.

Les composants IoT peuvent utiliser différents protocoles, connectivité, fréquences d’ingestion de données et modèles de communication. La solution IoT doit être en mesure de gérer quels appareils et passerelles sont connectés et comment ils sont configurés.

Pour gérer les appareils et les configurations à des fins d’efficacité des performances :

  • Optimisez le dimensionnement en fonction de la charge des appareils et des messages.

  • Connaître le nombre de messages que la passerelle cloud peut gérer, en fonction du niveau et du nombre d’unités.

  • Tenir compte des anomalies dans le débit soutenu en raison de la distribution des données, de la saisonnalité et de l’éclatement.

  • Utilisez plusieurs passerelles cloud lorsque la solution IoT doit gérer des millions d’appareils. Utilisez DPS pour affecter des appareils à Des hubs IoT.

Approvisionner des appareils avec DPS

Utilisez DPS pour configurer une connexion à un hub IoT pendant l’approvisionnement, lorsque la connexion IoT Hub n’est plus disponible ou pendant le redémarrage de l’appareil.

  • Utilisez la stratégie de distribution pondérée uniformément DPS pour ajuster le poids pour l’approvisionnement, en fonction du cas d’usage. Pour plus d’informations, consultez Comment la stratégie d’allocation affecte des appareils à IoT Hubs.

  • Envisagez de provisionner des appareils vers la solution IoT sur une période de temps, distribuée ou dans des lots plus petits, pour équilibrer la charge et le quota DPS. Lors de l’intégration dans des lots, planifiez les lots et les chronologie de migration globale. Tenir compte des limites DPS en nombre d’opérations, d’inscriptions d’appareils et de connexions maximales par minute, y compris la latence et les nouvelles tentatives.

  • Utilisez DPS pour allouer des appareils à IoT Hubs dans différentes régions en fonction de la latence.

  • Utilisez une stratégie de mise en cache pour les chaîne de connexion DPS afin de réduire les opérations de reconnexion DPS.

Gérer les appareils en aval

Une solution IoT est horizontalement évolutive si elle a plusieurs passerelles ou appareils de périphérie par site ou emplacement et des appareils en aval qui peuvent se connecter à l’une de ces passerelles ou appareils de périphérie.

  • Utilisez plusieurs passerelles et périphériques de périphérie en mode de traduction lorsque le nombre d’appareils en aval, leurs messages et leur taille changent au fil du temps et que leur protocole ou message doit être traduit. Les passerelles et les périphériques de périphérie en mode de traduction peuvent traduire des protocoles ou des messages vers et depuis des appareils en aval, mais un mappage est nécessaire pour trouver la passerelle à laquelle un appareil en aval est connecté. Tenir compte de l’ajout de la traduction de messages et de la mise en mémoire tampon au niveau de la passerelle ou de l’appareil edge lorsque vous utilisez le mode de traduction.

  • Utilisez plusieurs passerelles et périphériques de périphérie en mode transparent pour connecter en aval des appareils MQTT (Message Queue Telemetry Transport) ou AMQP lorsque leur nombre peut changer au fil du temps par site ou par emplacement. Les passerelles et les périphériques de périphérie en mode transparent peuvent connecter des appareils MQTT/AMQP pour une communication bidirectionnelle. Tenir compte de l’ajout de la mise en mémoire tampon des messages, du stockage et de la configuration au niveau de la passerelle ou de l’appareil edge lorsque vous utilisez le mode transparent.

Dans le cadre d'une couche de transport

La couche de transport gère les connexions entre un appareil et la solution IoT, en transformant les messages IoT en packages réseau et en les envoyant sur le réseau physique. Les solutions IoT utilisent généralement les protocoles de connexion AMQP et MQTT.

Optimiser l’utilisation des ressources

La connexion entre un appareil et le cloud doit être sécurisée, fiable et évolutive pour gérer le nombre ciblé d’appareils et de messages.

  • Utilisez une connexion avec état ouvert d’un appareil à la passerelle cloud. IoT Hub est optimisé pour gérer des millions de connexions avec état ouvert à l’aide des protocoles MQTT, AMQP ou WebSocket. Conservez les connexions ouvertes aux appareils pour réduire la surcharge liée aux négociations de sécurité, à l’authentification et à l’autorisation. Cette pratique améliore les performances et réduit considérablement la bande passante requise.

  • Utilisez un protocole AMQP qui prend en charge le multiplexage de plusieurs canaux sur une seule connexion pour réduire le nombre de connexions ouvertes requises par la passerelle cloud. En utilisant le multiplexing, une passerelle transparente peut connecter plusieurs appareils feuilles à l’aide de leurs propres canaux sur une seule connexion.

  • Utilisez les modèles de passerelle cloud des jumeaux d’appareil et de module pour échanger de manière asynchrone des informations d’état entre les appareils et le cloud.

  • Configurez DPS pour déplacer l’état de l’appareil lorsqu’un appareil se connecte à une autre passerelle cloud.

Optimiser la communication des données

Le nombre et la taille des messages appareil à cloud affectent les performances et le coût. L’évaluation de la communication des données est essentielle à l’efficacité des performances de votre charge de travail IoT.

  • Utilisez un format de données et un encodage efficaces qui n’utilisent pas une bande passante étendue pour envoyer des données au cloud. Pour les réseaux à faible bande passante, envisagez d’utiliser un format compressé ou binaire, mais comprenez la surcharge liée à la décompression ou à la conversion des données dans le cloud.

  • Envisagez de stocker des données volumineuses localement et de les charger toutes les heures ou tous les jours.

  • Regroupez de nombreux petits messages appareil-à-cloud en moins de messages plus volumineux pour réduire le nombre total. Toutefois, n’envoyez pas uniquement des messages volumineux, mais équilibrez la taille moyenne des messages et le débit.

Couche de stockage

Les différents types de données collectées et référencées dans une solution IoT nécessitent souvent des types de stockage spécialisés et optimisés pour différents scénarios sur les appareils, les passerelles et le cloud. Les données qui doivent être disponibles dans plusieurs régions géographiques à l’échelle mondiale ou locale et, dans certains cas, répliquées pour optimiser la latence, augmentent la complexité du stockage IoT.

  • Utilisez une base de données de série chronologique pour stocker des données de série chronologique qui ont des horodatages et des valeurs. Enrichissez les données de télémétrie de série chronologique avec des colonnes pour le filtrage, par exemple CustomerID, RoomID ou d’autres colonnes spécifiques au cas d’usage.

  • Utilisez le stockage de l’appareil et de la passerelle pour la mise en cache des données, ou pour conserver les données lorsqu’elles sont déconnectées. Comptez l’espace de stockage requis. Ne conservez pas toutes les données, mais utilisez un sous-échantillonnage, stockez uniquement des agrégats ou stockez des données pendant des périodes limitées.

  • Envisagez de séparer l’ingestion des données et le stockage pour le traitement des événements des besoins de stockage de création de rapports et d’intégration.

  • Utilisez le type de stockage de données qui répond aux besoins en débit, taille, période de rétention, volume de données, exigences CRUD et réplication régionale nécessaires. Par exemple, Azure Data Lake Storage, Azure Data Explorer, Azure SQL et Azure Cosmos DB.

Couche de traitement et d’analytique des événements

Vous pouvez traiter les données que les appareils génèrent avant de les envoyer à ou au sein de la solution IoT. Le traitement des données peut inclure la traduction, la contextualisation, le filtrage et le routage, ou des analyses plus avancées telles que l’analyse des tendances ou la détection d’anomalies.

Optimiser le traitement de la périphérie par rapport au traitement cloud

Exécutez des charges de travail en temps réel et en quasi-temps réel, ou un traitement de petite taille, optimisé et à faible latence avec des contraintes de temps, sur des appareils ou à la périphérie à l’aide du calcul local. Exécutez des charges de travail plus volumineuses ou d’autres charges de travail qui ont des données ajoutées ou externes, ou des dépendances de calcul, dans le cloud.

Par exemple, exécutez un algorithme de Machine Learning à la périphérie pour compter les personnes dans un flux vidéo et envoyer un événement contenant le nombre au cloud. Utilisez le cloud pour comparer les tendances entre différentes usines.

Exécutez des charges de travail d’analytique à la périphérie à l’aide du module Stream Analytics Edge. Par exemple, vous pouvez exécuter la détection d’anomalie à la périphérie et étiqueter les événements envoyés au cloud avec l’anomalie détectée. Lorsque vous exécutez des analyses en périphérie, comptez de la latence supplémentaire, de l’arrivée tardive et de l’impact du fenêtrage.

Tenez compte de la surcharge d’une charge de travail de périphérie avec de nombreux appareils en aval connectés. Le nœud de périphérie doit transférer ou traiter tous les messages et gérer la mise en cache de toutes les données s’il existe une connectivité cloud intermittente. Validez l’impact sur les performances de votre solution en effectuant des tests avec le maximum planifié d’appareils et de messages en aval par nœud de périphérie. Tenez compte de l’impact sur les performances que la traduction ou l’enrichissement des messages peut avoir sur le traitement des événements en périphérie, IoT Hub ou cloud.

Classer des charges de travail individuelles

Séparez les charges de travail par contrainte de temps et latence requise et temps de réponse, par exemple réponse en secondes par lot par heure. Les systèmes matériels hybrides sur puce (SoC) peuvent prendre en charge les charges de travail au niveau de l’appareil.

À la périphérie, utilisez des files d’attente de priorité pour séparer différents flux de données avec des priorités et une durée de vie différentes. Par exemple, les alarmes doivent toujours être envoyées en premier, mais avoir une durée de vie inférieure à la télémétrie.

Dans le cloud, vous pouvez utiliser des groupes de consommateurs sur Azure Event Hubs pour séparer différents flux de données et gérer et mettre à l’échelle les alarmes différemment de la télémétrie. Vous pouvez également utiliser des itinéraires IoT Hub pour séparer différents flux de données, avec un filtrage et des points de terminaison distincts. IoT Hub routage des messages ajoute une latence. Utilisez Event Hubs, Azure Event Grid ou Azure Service Bus pour distribuer les charges de travail tout en vous protégeant contre la contre-pression dans le cloud.

Les règles de routage IoT Hub trop complexes peuvent affecter le débit, en particulier les règles de routage avec des filtres JSON de corps de message, où chaque message doit être désérialisé et analysé.

Gérer un volume élevé de données cloud

Pour optimiser l’efficacité des performances pour les données cloud volumineuses :

  • Utilisez l’intégration de service prête à l’emploi entre IoT Hub et des destinations de données telles que Azure Data Lake Storage et Azure Data Explorer qui sont déjà optimisées pour un débit hautes performances.

  • Utilisez le Kit de développement logiciel (SDK) Event Hubs pour développer une ingestion personnalisée à partir d’un hub IoT avec le processeur d’événements inclus. Le processeur d’événements peut rééquilibrer les appareils et les hôtes.

  • Utilisez le nombre approprié de partitions IoT Hub et de groupes de consommateurs pour le nombre de lecteurs de données simultanés et le débit requis.

  • Séparez le stockage nécessaire pour l’ingestion des données et le traitement des événements du stockage nécessaire à la création de rapports et à l’intégration.

  • Utilisez le stockage de données qui répond aux besoins en fonction du débit requis, de la taille, de la période de rétention, du volume de données, des exigences CRUD et de la réplication régionale. Par exemple, Azure Data Lake Storage, Azure Data Explorer, Azure SQL ou Azure Cosmos DB. Pour plus d’informations, consultez Sélectionner un magasin de données Azure pour votre application.

Couche d’intégration

La couche d’intégration connecte une solution IoT à d’autres services et applications métier.

  • Séparez le pipeline d’ingestion de solution IoT du traitement d’intégration. Assurez-vous que les requêtes ou les charges complexes de la couche d’intégration n’affectent pas les performances d’ingestion des données.

  • Utilisez des API bien définies et avec version pour accéder aux données et aux commandes IoT.

  • Évitez aux utilisateurs finaux de créer des requêtes définies par l’utilisateur sur le stockage de données IoT. Envisagez d’utiliser des magasins de données distincts pour l’intégration et pour la création de rapports.

Couche DevOps

Utilisez les mécanismes DevOps suivants pour optimiser l’efficacité des performances :

  • Registre connecté pour la mise en cache locale et le déploiement d’images conteneur.

  • IoT Hub de mettre à jour les déploiements sur plusieurs appareils à la fois, y compris les appareils et les passerelles.

  • Jumeaux d’appareil et jumeaux de module pour mettre à jour les configurations des appareils de manière évolutive et efficace.

  • Tests de performances, y compris les tests de contrainte et de charge pour répliquer l’environnement de production, tels que l’emplacement et les appareils hétérogènes.

Surveillance

Utilisez Azure Monitor pour collecter des métriques IoT Hub avec des alertes pour les métriques critiques. Configurez des alertes Azure Monitor en fonction des limites d’échelle actuelles, telles que les messages appareil-à-cloud envoyés par seconde. Définissez l’alerte sur un pourcentage de la limite, par exemple 75 %, pour la notification préalable des limites de scalabilité à venir. Configurez également des alertes Azure Monitor pour les journaux et les métriques, telles que le nombre d’erreurs de limitation.

Définissez des alertes du service Azure Service Health pour déclencher des notifications en cas de modifications IoT Hub status.

Étapes suivantes