Architecture de référence Azure IoT

Stockage Blob
Fonctions
IoT Hub
Logic Apps
Stream Analytics

Cette architecture de référence montre une architecture recommandée pour les applications IoT sur Azure utilisant des composants PaaS (Platform-as-a-Service).This reference architecture shows a recommended architecture for IoT applications on Azure using PaaS (platform-as-a-service) components.

Diagramme de l’architecture

Les applications IoT peuvent être décrites comme des éléments (appareils) envoyant des données qui génèrent des insights.IoT applications can be described as things (devices) sending data that generates insights. Ces insights génèrent des actions permettant d’améliorer une activité ou un processus.These insights generate actions to improve a business or process. Un moteur (l’élément) envoyant des données de température en est un exemple.An example is an engine (the thing) sending temperature data. Ces données sont utilisées pour déterminer si le moteur fonctionne comme prévu (l’insight).This data is used to evaluate whether the engine is performing as expected (the insight). L’insight est utilisé pour hiérarchiser de manière proactive la planification de la maintenance du moteur (l’action).The insight is used to proactively prioritize the maintenance schedule for the engine (the action).

Cette architecture de référence utilise des composants Azure PaaS (Platform-as-a-Service).This reference architecture uses Azure PaaS (platform-as-a-service) components. Une autre option recommandée permettant de générer des solutions IoT sur Azure est :Another recommended option for building IoT solutions on Azure is:

  • Azure IoT Central.Azure IoT Central. IoT Central est une solution SaaS (Software-as-a-Service) entièrement managée.IoT Central is a fully managed SaaS (software-as-a-service) solution. Elle réduit les choix techniques et vous permet de vous concentrer exclusivement sur votre solution.It abstracts the technical choices and lets you focus on your solution exclusively. Cette simplicité présente l’inconvénient que la solution est moins personnalisable qu’une solution basée sur PaaS.This simplicity comes with a tradeoff in being less customizable than a PaaS-based solution.

De façon générale, il existe deux façons de traiter les données de télémétrie : le chemin à chaud et le chemin à froid.At a high level, there are two ways to process telemetry data, hot path and cold path. La différence réside dans les exigences de latence et d’accès aux données.The difference has to do with requirements for latency and data access.

  • Le chemin à chaud analyse les données en quasi temps réel, à mesure qu’elles arrivent.The hot path analyzes data in near-real-time, as it arrives. Dans le chemin à chaud, les données de télémétrie doivent être traitées avec une latence très faible.In the hot path, telemetry must be processed with very low latency. Le chemin à chaud est généralement implémenté à l’aide d’un moteur de traitement de flux.The hot path is typically implemented using a stream processing engine. La sortie peut déclencher une alerte, ou être écrite dans un format structuré qui peut être interrogé en utilisant des outils d’analyse.The output may trigger an alert, or be written to a structured format that can be queried using analytical tools.
  • Le chemin à froid effectue un traitement par lots à des intervalles plus longs (toutes les heures ou chaque jour).The cold path performs batch processing at longer intervals (hourly or daily). Le chemin à froid fonctionne généralement sur des volumes importants de données, mais les résultats n’ont pas besoin d’être aussi rapides que ceux du chemin à chaud.The cold path typically operates over large volumes of data, but the results don't need to be as timely as the hot path. Dans le chemin à froid, les données de télémétrie brutes sont capturées puis envoyées dans un processus de traitement par lots.In the cold path, raw telemetry is captured and then fed into a batch process.

ArchitectureArchitecture

Cette architecture est constituée des composants suivants.This architecture consists of the following components. Certaines applications peuvent ne pas avoir besoin de tous les composants listés ici.Some applications may not require every component listed here.

Appareils IoT.IoT devices. Les appareils peuvent s’inscrire de manière sécurisée au cloud et peuvent se connecter au cloud pour envoyer et recevoir des données.Devices can securely register with the cloud, and can connect to the cloud to send and receive data. Certains appareils peuvent être des appareils de périphérie qui effectuent un traitement de données sur l’appareil lui-même ou dans une passerelle locale.Some devices may be edge devices that perform some data processing on the device itself or in a field gateway. Nous recommandons Azure IoT Edge pour le traitement en périphérie.We recommend Azure IoT Edge for edge processing.

Passerelle cloud.Cloud gateway. Une passerelle cloud fournit un hub cloud pour que les appareils se connectent de manière sécurisée au cloud et envoient des données.A cloud gateway provides a cloud hub for devices to connect securely to the cloud and send data. Elle s’occupe aussi de la gestion des appareils et des fonctionnalités, dont la commande et le contrôle des appareils.It also provides device management, capabilities, including command and control of devices. Pour la passerelle cloud, nous recommandons IoT Hub.For the cloud gateway, we recommend IoT Hub. IoT Hub est un service cloud hébergé qui reçoit les événements des appareils en faisant office de répartiteur de messages entre les appareils et les services back-end.IoT Hub is a hosted cloud service that ingests events from devices, acting as a message broker between devices and backend services. IoT Hub fournit une connectivité sécurisée, l’ingestion des événements, la communication bidirectionnelle et la gestion des appareils.IoT Hub provides secure connectivity, event ingestion, bidirectional communication, and device management.

Provisionnement des appareils.Device provisioning. Pour l’inscription et la connexion de grands ensembles d’appareils, nous recommandons d’utiliser le service IoT Hub Device Provisioning (DPS).For registering and connecting large sets of devices, we recommend using the IoT Hub Device Provisioning Service (DPS). DPS vous permet d’attribuer des appareils à des points de terminaison Azure IoT Hub spécifiques à grande échelle et de les inscrire auprès de ces derniers.DPS lets you assign and register devices to specific Azure IoT Hub endpoints at scale.

Traitement de flux.Stream processing. Le traitement de flux analyse de grands flux d’enregistrements de données et évalue les règles pour ces flux.Stream processing analyzes large streams of data records and evaluates rules for those streams. Pour le traitement de flux, nous recommandons Azure Stream Analytics.For stream processing, we recommend Azure Stream Analytics. Stream Analytics peut exécuter une analyse complexe à grande échelle à l’aide de fonctions de fenêtrage temporel, d’agrégations de flux de données et de jonctions de sources de données externes.Stream Analytics can execute complex analysis at scale, using time windowing functions, stream aggregations, and external data source joins. Apache Spark sur Azure Databricks constitue une autre option.Another option is Apache Spark on Azure Databricks.

Le machine learning permet l’exécution d’algorithmes prédictifs sur des données de télémétrie historiques, afin de prendre en charge des scénarios tels que la maintenance prédictive.Machine learning allows predictive algorithms to be executed over historical telemetry data, enabling scenarios such as predictive maintenance. Pour le machine learning, nous recommandons Azure Machine Learning.For machine learning, we recommend Azure Machine Learning.

Le stockage du chemin à chaud contient les données qui doivent être disponibles immédiatement sur l’appareil pour la création de rapports et la visualisation.Warm path storage holds data that must be available immediately from device for reporting and visualization. Pour le stockage du chemin à chaud, nous recommandons Cosmos DB.For warm path storage, we recommend Cosmos DB. Cosmos DB est une base de données multimodèle distribuée à l’échelle mondiale.Cosmos DB is a globally distributed, multi-model database.

Le stockage de chemin à froid contient les données qui sont conservées à plus long terme et qui sont utilisées pour le traitement par lots.Cold path storage holds data that is kept longer-term and is used for batch processing. Pour le stockage de chemin à froid, nous recommandons le Stockage Blob Azure.For cold path storage, we recommend Azure Blob Storage. Les données peuvent être archivées dans le Stockage Blob à moindre coût et pour une durée indéterminée, et sont facilement accessibles pour le traitement par lots.Data can be archived in Blob storage indefinitely at low cost, and is easily accessible for batch processing.

La transformation des données manipule ou agrège le flux de données de télémétrie.Data transformation manipulates or aggregates the telemetry stream. Parmi les exemples figurent la transformation de protocole, comme la conversion de données binaires au format JSON, ou la combinaison de points de données.Examples include protocol transformation, such as converting binary data to JSON, or combining data points. Si les données doivent être transformées avant d’atteindre IoT Hub, nous recommandons d’utiliser une passerelle de protocole (non illustrée).If the data must be transformed before reaching IoT Hub, we recommend using a protocol gateway (not shown). Sinon, les données peuvent être transformées après avoir atteint IoT Hub.Otherwise, data can be transformed after it reaches IoT Hub. Dans ce cas, nous vous recommandons d’utiliser Azure Functions, qui s’intègre nativement à IoT Hub, Cosmos DB et Stockage Blob.In that case, we recommend using Azure Functions, which has built-in integration with IoT Hub, Cosmos DB, and Blob Storage.

L’intégration des processus métier effectue des actions basées sur les insights provenant des données de l’appareil.Business process integration performs actions based on insights from the device data. Cela peut inclure le stockage de messages d’information, le déclenchement d’alarmes, l’envoi d’e-mails ou de SMS, ou l’intégration à CRM.This could include storing informational messages, raising alarms, sending email or SMS messages, or integrating with CRM. Nous recommandons d’utiliser Azure Logic Apps pour l’intégration des processus métier.We recommend using Azure Logic Apps for business process integration.

La gestion des utilisateurs permet de limiter les utilisateurs ou groupes qui peuvent effectuer des actions sur des appareils, comme la mise à niveau de microprogrammes.User management restricts which users or groups can perform actions on devices, such as upgrading firmware. Elle définit également les fonctionnalités pour les utilisateurs dans les applications.It also defines capabilities for users in applications. Nous recommandons d’utiliser Azure Active Directory pour authentifier et autoriser les utilisateurs.We recommend using Azure Active Directory to authenticate and authorize users.

La surveillance de la sécurité Azure Security Center pour IoT fournit une solution de sécurité de bout en bout pour les charges de travail IoT et simplifie leur protection en fournissant une visibilité et un contrôle unifiés, une prévention des menaces adaptatives et une détection intelligente des menaces et une réponse sur les charges de travail des appareils terminaux par le biais de Edge et des clouds.Security monitoring Azure Security Center for IoT provides an end-to-end security solution for IoT workloads and simplifies their protection by delivering unified visibility and control, adaptive threat prevention, and intelligent threat detection and response across workloads from leaf devices through Edge as well as up through the clouds.

Considérations relatives à l’extensibilitéScalability considerations

Une application IoT doit être générée comme des services discrets que vous pouvez mettre à l’échelle de manière indépendante.An IoT application should be built as discrete services that can scale independently. Considérez les points de scalabilité suivants :Consider the following scalability points:

IoTHub.IoTHub. Pour IoT Hub, tenez compte des facteurs d’échelle suivants :For IoT Hub, consider the following scale factors:

  • Le quota quotidien maximal de messages dans IoT Hub.The maximum daily quota of messages into IoT Hub.
  • Le quota d’appareils connectés dans une instance IoT Hub.The quota of connected devices in an IoT Hub instance.
  • Débit d’ingestion : rapidité à laquelle IoT Hub peut ingérer les messages.Ingestion throughput — how quickly IoT Hub can ingest messages.
  • Débit de traitement : rapidité à laquelle les messages entrants sont traités.Processing throughput — how quickly the incoming messages are processed.

Chaque hub IoT est approvisionné avec un certain nombre d’unités dans un niveau spécifique.Each IoT hub is provisioned with a certain number of units in a specific tier. Le niveau et le nombre d’unités déterminent le quota quotidien maximal de messages que les appareils peuvent envoyer au hub.The tier and number of units determine the maximum daily quota of messages that devices can send to the hub. Pour plus d’informations, consultez les quotas et la limitation IoT Hub.For more information, see IoT Hub quotas and throttling. Vous pouvez effectuer un scale up d’un hub sans interrompre les opérations existantes.You can scale up a hub without interrupting existing operations.

Stream Analytics.Stream Analytics. Les tâches Stream Analytics supportent mieux la mise à l’échelle si elles sont parallèles sur tous les points du pipeline Stream Analytics, depuis l’entrée à interroger jusqu’à la sortie.Stream Analytics jobs scale best if they are parallel at all points in the Stream Analytics pipeline, from input to query to output. Une tâche entièrement parallèle permet à Stream Analytics de répartir le travail entre plusieurs nœuds de calcul.A fully parallel job allows Stream Analytics to split the work across multiple compute nodes. Sinon, Stream Analytics doit combiner les données de flux dans un seul et même endroit.Otherwise, Stream Analytics has to combine the stream data into one place. Pour plus d’informations, consultez Profiter de la parallélisation de requête dans Azure Stream Analytics.For more information, see Leverage query parallelization in Azure Stream Analytics.

IoT Hub partitionne automatiquement les messages d’appareil en fonction de l’ID de l’appareil.IoT Hub automatically partitions device messages based on the device ID. Tous les messages provenant d’un appareil particulier arrivent toujours sur la même partition, mais une seule et même partition a des messages provenant de plusieurs appareils.All of the messages from a particular device will always arrive on the same partition, but a single partition will have messages from multiple devices. Par conséquent, l’unité de parallélisation est l’ID de la partition.Therefore, the unit of parallelization is the partition ID.

Fonctions.Functions. Lors de la lecture du point de terminaison Event Hubs, il existe un nombre maximal d’instances de fonction par partition de hub d’événements.When reading from the Event Hubs endpoint, there is a maximum of function instance per event hub partition. La vitesse de traitement maximale est déterminée par la rapidité à laquelle une instance de fonction peut traiter les événements d’une partition unique.The maximum processing rate is determined by how fast one function instance can process the events from a single partition. La fonction doit traiter les messages par lots.The function should process messages in batches.

Cosmos DB.Cosmos DB. Pour effectuer un scale-out d’une collection Cosmos DB, créez la collection avec une clé de partition et ajoutez cette clé de partition dans chaque document que vous écrivez.To scale out a Cosmos DB collection, create the collection with a partition key and include the partition key in each document that you write. Pour plus d’informations, consultez Bonnes pratiques lors du choix d’une clé de partition.For more information, see Best practices when choosing a partition key.

  • Si vous stockez et mettez à jour un seul document par appareil, l’ID de l’appareil est une bonne clé de partition.If you store and update a single document per device, the device ID is a good partition key. Les écritures sont réparties uniformément entre les différentes clés.Writes are evenly distributed across the keys. La taille de chaque partition est strictement limitée, car il existe un document unique pour chaque valeur de clé.The size of each partition is strictly bounded, because there is a single document for each key value.
  • Si vous stockez un document distinct pour chaque message de l’appareil, l’utilisation de l’ID de l’appareil comme clé de partition dépassera rapidement la limite de 10 Go par partition.If you store a separate document for every device message, using the device ID as a partition key would quickly exceed the 10-GB limit per partition. Dans ce cas, l’ID de message est une meilleure clé de partition.Message ID is a better partition key in that case. En général, vous inclurez quand même l’ID de l’appareil dans le document pour l’indexation et l’interrogation.Typically you would still include device ID in the document for indexing and querying.

Azure Time Series Insights (TSI) est un service d’analyse, de stockage et de visualisation pour les données de séries chronologiques, offrant des fonctionnalités telles que le filtrage et l’agrégation de type SQL, ce qui évite d’avoir à utiliser des fonctions définies par l’utilisateur.Azure Time Series Insights (TSI) is an analytics, storage and visualization service for time-series data, providing capabilities including SQL-like filtering and aggregation, alleviating the need for user-defined functions. Time Series Insights fournit un explorateur de données pour visualiser et interroger les données ainsi que des API de requête REST.Time Series Insights provides a data explorer to visualize and query data as well as REST Query APIs. Outre les données de série chronologique, TSI est également bien adapté aux solutions qui doivent interroger des agrégats sur de grands ensembles de données.In addition to time series data, TSI is also well-suited for solutions that need to query aggregates over large sets of data. Avec la prise en charge du stockage multicouche, des API riches, du modèle et de son intégration à l’écosystème IoT Azure, de l’Explorateur pour les visualisations et de l’extensibilité via Power BI, etc. TSI est notre suggestion pour le stockage et l’analyse des données de série chronologique.With support for multi layered storage, rich APIs, model and it’s integration with Azure IoT ecosystem, explorer for visualizations, and extensibility through Power BI, etc. TSI is our recommendation for time series data storage and analytics.

Considérations relatives à la sécuritéSecurity considerations

Communication fiable et sécuriséeTrustworthy and secure communication

Toutes les informations reçues d’un appareil et envoyées vers celui-ci doivent être dignes de confiance.All information received from and sent to a device must be trustworthy. À moins qu’un appareil puisse prendre en charge les fonctionnalités de chiffrement suivantes, il doit être limité aux réseaux locaux et toutes les communications d’interconnexion doivent passer par une passerelle locale :Unless a device can support the following cryptographic capabilities, it should be constrained to local networks and all internetwork communication should go through a field gateway:

  • Chiffrement des données avec un algorithme de chiffrement à clé symétrique publiquement analysé, largement implémenté et dont la sécurité a été prouvée.Data encryption with a provably secure, publicly analyzed, and broadly implemented symmetric-key encryption algorithm.
  • Signature numérique avec un algorithme de signature à clé symétrique publiquement analysé, largement implémenté et dont la sécurité a été prouvée.Digital signature with a provably secure, publicly analyzed, and broadly implemented symmetric-key signature algorithm.
  • Prise en charge soit de TLS 1.2 pour TCP ou d’autres chemins de communication basés sur les flux de données, soit de DTLS 1.2 pour les chemins de communication basés sur un datagramme.Support for either TLS 1.2 for TCP or other stream-based communication paths or DTLS 1.2 for datagram-based communication paths. La prise en charge de la gestion des certificats X.509 est facultative et peut être remplacée par le mode de clé prépartagée plus efficace en ce qui concerne le calcul et la communication pour TLS. Ce mode peut être implémenté avec une prise en charge des algorithmes AES et SHA-2.Support of X.509 certificate handling is optional and can be replaced by the more compute-efficient and wire-efficient pre-shared key mode for TLS, which can be implemented with support for the AES and SHA-2 algorithms.
  • Clés par appareil et magasin de clés pouvant être mis à jour.Updateable key-store and per-device keys. Chaque appareil doit avoir un élément de clé unique ou des jetons qui l’identifient dans le système.Each device must have unique key material or tokens that identify it toward the system. Les appareils doivent stocker la clé de manière sécurisée sur l’appareil (par exemple, à l’aide d’un magasin de clés sécurisé).The devices should store the key securely on the device (for example, using a secure key-store). L’appareil doit être en mesure de mettre à jour les clés ou les jetons régulièrement ou de façon réactive dans des situations d’urgence comme une intrusion dans le système.The device should be able to update the keys or tokens periodically, or reactively in emergency situations such as a system breach.
  • Les microprogrammes et les logiciels d’application sur l’appareil doivent autoriser les mises à jour pour permettre la réparation des failles de sécurité détectées.The firmware and application software on the device must allow for updates to enable the repair of discovered security vulnerabilities.

Toutefois, de nombreux appareils comportent trop de contraintes pour prendre en charge ces exigences.However, many devices are too constrained to support these requirements. Dans ce cas, une passerelle locale doit être utilisée.In that case, a field gateway should be used. Les appareils se connectent de manière sécurisée à la passerelle locale via un réseau local, et la passerelle permet une communication sécurisée vers le cloud.Devices connect securely to the field gateway through a local area network, and the gateway enables secure communication to the cloud.

Protection contre la falsification physiquePhysical tamper-proofing

Il est fortement recommandé que la conception de l’appareil intègre des fonctionnalités qui assurent une protection contre les tentatives de manipulation physique, afin de garantir l’intégrité et la fiabilité de la sécurité du système global.It is strongly recommended that device design incorporates features that defend against physical manipulation attempts, to help ensure the security integrity and trustworthiness of the overall system.

Par exemple :For example:

  • Choisissez des microcontrôleurs/microprocesseurs ou du matériel auxiliaire qui fourni un stockage sécurisé et l’utilisation d’un élément de clé de chiffrement, comme l’intégration d’un module de plateforme sécurisée (TPM).Choose microcontrollers/microprocessors or auxiliary hardware that provides secure storage and use of cryptographic key material, such as trusted platform module (TPM) integration.
  • Chargeur de démarrage sécurisé et chargement de logiciels sécurisé, ancrés dans le module de plateforme sécurisée (TPM).Secure boot loader and secure software loading, anchored in the TPM.
  • Utilisez des capteurs pour détecter les tentatives d’intrusion et les tentatives de manipulation de l’environnement de l’appareil, avec la génération d’alertes et, potentiellement, l’« auto-destruction numérique » de l’appareil.Use sensors to detect intrusion attempts and attempts to manipulate the device environment with alerting and potentially "digital self-destruction" of the device.

Pour en savoir plus sur les considérations relatives à la sécurité, consultez Architecture de sécurité de l’Internet des objets (IoT).For additional security considerations, see Internet of Things (IoT) security architecture.

Surveillance et journalisationMonitoring and logging

La journalisation et la supervision des systèmes sont utilisées pour déterminer si la solution fonctionne et pour aider à résoudre les problèmes.Logging and monitoring systems are used to determine whether the solution is functioning and to help troubleshoot problems. La supervision et la journalisation des systèmes permettent de répondre aux questions opérationnelles suivantes :Monitoring and logging systems help answer the following operational questions:

  • Les appareils ou les systèmes sont-ils dans une condition d’erreur ?Are devices or systems in an error condition?
  • Les appareils ou les systèmes sont-ils correctement configurés ?Are devices or systems correctly configured?
  • Les appareils ou les systèmes génèrent-ils des données précises ?Are devices or systems generating accurate data?
  • Les systèmes répondent-ils aux attentes des entreprises et des utilisateurs finaux ?Are systems meeting the expectations of both the business and end customers?

Les outils de journalisation et de supervision comportent généralement les quatre composants suivants :Logging and monitoring tools are typically comprised of the following four components:

  • Outils de visualisation des performances et de la chronologie du système pour superviser le système et pour le dépannage de base.System performance and timeline visualization tools to monitor the system and for basic troubleshooting.
  • Ingestion de données mises en mémoire tampon, pour mettre en mémoire tampon des données de journal.Buffered data ingestion, to buffer log data.
  • Magasin de persistance pour stocker des données de journal.Persistence store to store log data.
  • Fonctionnalités de recherche et de requête pour afficher des données de journal afin de les utiliser dans un dépannage détaillé.Search and query capabilities, to view log data for use in detailed troubleshooting.

Les systèmes de supervision fournissent des insights sur l’intégrité,la sécurité, la stabilité et les performances d’une solution IoT.Monitoring systems provide insights into the health, security, and stability, and performance of an IoT solution. Ces systèmes peuvent également fournir une vue plus détaillée, en enregistrant les changements de configuration des composants et en fournissant les données de journalisation extraites qui peuvent permettre de détecter des failles de sécurité potentielles, améliorer le processus de gestion des incidents et aider le propriétaire du système à résoudre les problèmes.These systems can also provide a more detailed view, recording component configuration changes and providing extracted logging data that can surface potential security vulnerabilities, enhance the incident management process, and help the owner of the system troubleshoot problems. Les solutions de supervision complètes incluent la possibilité de demander des informations concernant des sous-systèmes spécifiques ou l’agrégation sur plusieurs sous-systèmes.Comprehensive monitoring solutions include the ability to query information for specific subsystems or aggregating across multiple subsystems.

Le développement de systèmes de supervision doit commencer par définir des critères pour l’intégrité des opérations, la conformité à la réglementation et l’audit.Monitoring system development should begin by defining healthy operation, regulatory compliance, and audit requirements. Les métriques collectées peuvent inclure ce qui suit :Metrics collected may include:

  • Appareils physiques, appareils de périphérie et composants d’infrastructure signalant les changements de configuration.Physical devices, edge devices, and infrastructure components reporting configuration changes.
  • Applications signalant les changements de configuration, les journaux d’audit de sécurité, les taux de demandes, les temps de réponse, les taux d’erreur et les statistiques de nettoyage de la mémoire pour les langages managés.Applications reporting configuration changes, security audit logs, request rates, response times, error rates, and garbage collection statistics for managed languages.
  • Bases de données, magasins de persistance et caches signalant les performances des requêtes et en écriture, les changements de schéma, le journal d’audit de sécurité, les verrous ou blocages, les performances d’index, le processeur, la mémoire et l’utilisation de disque.Databases, persistence stores, and caches reporting query and write performance, schema changes, security audit log, locks or deadlocks, index performance, CPU, memory, and disk usage.
  • Services managés (IaaS, PaaS, SaaS et FaaS) générant des rapports sur les métriques d’intégrité et les changements de configuration qui affectent les performances et l’intégrité des systèmes dépendants.Managed services (IaaS, PaaS, SaaS, and FaaS) reporting health metrics and configuration changes that impact dependent system health and performance.

La visualisation des métriques de supervision avertit les opérateurs des instabilités du système et facilitent la réponse aux incidents.Visualization of monitoring metrics alert operators to system instabilities and facilitate incident response.

Suivi des données de télémétrieTracing telemetry

Le suivi des données de télémétrie permet à un opérateur de suivre l’évolution d’un élément de télémétrie à partir de sa création par le biais du système.Tracing telemetry allows an operator to follow the journey of a piece of telemetry from creation through the system. Le suivi est important pour le débogage et la résolution des problèmes.Tracing is important for debugging and troubleshooting. Pour les solutions IoT qui utilisent Azure IoT Hub et les SDK IoT Hub Device, les datagrammes de suivi peuvent provenir des messages cloud-à-appareil et être inclus dans le flux de données de télémétrie.For IoT solutions that use Azure IoT Hub and the IoT Hub Device SDKs, tracing datagrams can be originated as Cloud-to-Device messages and included in the telemetry stream.

JournalisationLogging

Les systèmes de journalisation sont déterminants pour comprendre les actions ou les activités qu’une solution a effectuées et les défaillances qui se sont produites. De plus, ils peuvent aider à corriger ces défaillances.Logging systems are integral in understanding what actions or activities a solution has performed, failures that have occurred, and can provide help in fixing those failures. Les journaux d’activité peuvent être analysés pour comprendre et résoudre des conditions d’erreur, améliorer les caractéristiques de performances et garantir la conformité aux règles et réglementations applicables.Logs can be analyzed to help understand and remedy error conditions, enhance performance characteristics, and ensure compliance with governing rule and regulations.

Bien que la journalisation en texte brut ait moins d’impact sur les coûts de développement initiaux, elle est plus difficile à analyser/lire par un ordinateur.Though plain-text logging is lower impact on upfront development costs, it is more challenging for a machine to parse/read. Nous vous recommandons d’utiliser une journalisation structurée, car les informations collectées sont à la fois analysables par un ordinateur et lisibles par l’homme.We recommend structured logging be used, as collected information is both machine parsable and human readable. La journalisation structurée ajoute un contexte situationnel et des métadonnées aux informations du journal.Structured logging adds situational context and metadata to the log information. Dans la journalisation structurée, les propriétés sont de première classe, sous la forme de paires clé/valeur ou avec un schéma fixe pour améliorer les fonctionnalités de recherche et de requête.In structured logging, properties are first class citizens formatted as key/value pairs, or with a fixed schema, to enhance search and query capabilities.

Considérations relatives à DevOpsDevOps considerations

Utilisez l'IaC (Infrastructure as code).Use the Infrastructure as code (IaC). L'IaC assure la gestion de l'infrastructure (réseaux, machines virtuelles, équilibreurs de charge et topologie de connexion) avec une approche déclarative.IaC is the management of infrastructure (networks, virtual machines, load balancers, and connection topology) with a declarative approach. Les modèles doivent être dotés d’une version et inclus dans le pipeline de mise en production.Templates should be versioned and part of the release pipeline. Les processus de déploiement les plus fiables sont automatisés et idempotents.The most reliable deployment processes are automated and idempotent. L'une des méthodes consiste à créer le modèle Azure Resource Manager pour approvisionner les ressources IoT et l'infrastructure.One way is to create Azure Resource Manager template for provisioning the IoT resources and the infrastructure.

Pour automatiser le déploiement de l'infrastructure, vous pouvez utiliser Azure DevOps Services, Jenkins ou d'autres solutions CI/CD.To automate infrastructure deployment, you can use Azure DevOps Services, Jenkins, or other CI/CD solutions. Azure Pipelines fait partie d'Azure DevOps Services et exécute des builds, tests et déploiements automatisés.Azure Pipelines is part of Azure DevOps Services and runs automated builds, tests, and deployments.

Envisagez d'échelonner vos charges de travail en déployant à différentes étapes et en exécutant des validations à chaque étape avant de passer à la suivante ; vous pourrez ainsi envoyer (push) les mises à jour de vos environnements de production de manière hautement contrôlée tout en réduisant les problèmes de déploiement imprévus.Consider staging your workloads by deploying to various stages and running validations at each stage before moving on to the next one; that way you can push updates to your production environments in a highly controlled way and minimize unanticipated deployment issues. Déploiement Blue-Green et Mises en production Canary sont les stratégies de déploiement recommandées pour mettre à jour les environnements de production.Blue-green deployment and Canary releases are recommended deployment strategies for updating live production environments. Prévoyez également une bonne stratégie de restauration en cas d'échec d'un déploiement ; par exemple, vous pouvez relancer automatiquement un déploiement antérieur réussi à partir de votre historique de déploiement. Le paramètre --rollback-on-error d'Azure CLI en est un bon exemple.Also consider having a good rollback strategy for when a deployment fails; for example you could automatically redeploy an earlier, successful deployment from your deployment history, the --rollback-on-error flag parameter in Azure CLI is good example.

Envisagez de superviser votre solution à l'aide d'Azure Monitor.Consider monitoring your solution by using Azure Monitor. Azure Monitor est la principale source de supervision et de journalisation de l'ensemble de vos services Azure. Il fournit des informations de diagnostic pour les ressources Azure.Azure Monitor is the main source of monitoring and logging for all your Azure services, it provides diagnostics information for Azure resources. Par exemple, vous pouvez superviser les opérations qui ont lieu dans votre hub IoT.You can for example, monitor the operations that take place within your IoT hub. Azure Monitor prend en charge des métriques et des événements spécifiques, ainsi que des services, schémas et catégories destinés aux journaux de diagnostic Azure.There are specific metrics and events that Azure Monitor supports, as well as services, schemas, and categories for Azure Diagnostic Logs.

Pour plus d'informations, consultez la section DevOps de Microsoft Azure Well-Architected Framework.For more information, see the DevOps section in Microsoft Azure Well-Architected Framework.

Considérations relatives au coûtCost considerations

En règle générale, utilisez la calculatrice de prix Azure pour estimer les coûts.In general, use the Azure pricing calculator to estimate costs. D'autres considérations sont décrites dans la section Coûts de Microsoft Azure Well-Architected Framework.Other considerations are described in the Cost section in Microsoft Azure Well-Architected Framework.

Il existe des moyens d’optimiser les coûts associés aux services utilisés dans cette architecture de référence.There are ways to optimize costs associated the services used in this reference architecture.

Azure IoT HubAzure IoT Hub

Dans cette architecture, IoT Hub est la passerelle cloud qui ingère les événements des appareils.In this architecture, IoT Hub is the cloud gateway that ingests events from devices. La facturation d’IoT Hub varie selon le type d’opération.IoT Hub billing varies depending on the type of operation. Les opérations de création, mise à jour, insertion et suppression sont gratuites.Create, update, insert, delete are free. Les opérations réussies, telles que les messages appareil-à-cloud et cloud-à-appareil, sont facturées.Successful operations such as device-to-cloud and cloud-to-device messages are charged.

Les messages appareil-à-cloud envoyés avec succès sont facturés en blocs de 4 Ko une fois entrés dans IoT Hub.Device-to-cloud messages sent successfully are charged in 4-KB chunks on ingress into IoT Hub. Par exemple, un message de 6 Ko est facturé 2 messages.For example, a 6-KB message is charged as two messages.

IoT Hub conserve les informations d’état de chaque appareil connecté dans un document JSON de jumeau d’appareil.IoT Hub maintains state information about each connected device in a device twin JSON document. Les opérations de lecture à partir d’un document de jumeau d’appareil sont facturées.Read operations from a device twin document are charged.

IoT Hub offre deux niveaux : De base et Standard.IoT Hub offers two tiers: Basic and Standard.

Envisagez d’utiliser le niveau Standard si votre architecture IoT utilise des fonctionnalités de communication bidirectionnelle.Consider using the Standard tier if your IoT architecture uses bi-directional communication capabilities. Ce niveau offre également une édition gratuite qui est la plus adaptée aux tests.This tier also offers a free edition that is most suited for testing purposes.

Si vous avez uniquement besoin d’une communication unidirectionnelle entre les appareils et le cloud, utilisez le niveau De base qui est moins cher.If you only need uni-directional communication from devices to the cloud, use the Basic tier, which is cheaper.

Pour plus d’informations, consultez Tarifs IoT Hub.For more information, see IoT Hub Pricing.

Azure Stream AnalyticsAzure Stream Analytics

Azure Stream Analytics est utilisé pour le traitement de flux et l’évaluation des règles.Azure Stream Analytics is used for stream processing and rules evaluation. Azure Stream Analytics est facturé en fonction du nombre d’unités de streaming (SU) par heure, qui prend en compte le calcul, la mémoire et le débit nécessaires pour traiter les données.Azure Stream Analytics is priced by the number of Streaming Units (SU) per hour, which takes into compute, memory, and throughput required to process the data. Azure Stream Analytics sur IoT Edge est facturé par travail.Azure Stream Analytics on IoT Edge is billed per job. Vous commencez à être facturé quand un travail Stream Analytics est déployé sur des appareils, quel que soit l’état du travail : en cours d’exécution, en échec ou arrêté.Billing starts when a Stream Analytics job is deployed to devices regardless of the job status, running, failed, or stopped.

Pour plus d’informations, consultez Tarification Stream Analytics.For more information about pricing, see Stream Analytics pricing.

Azure FunctionsAzure Functions

Azure Functions est utilisé pour transformer les données une fois qu’elles ont atteint le hub IoT.Azure Functions is used to transform data after it reaches the IoT Hub. Côté budget, il est recommandé d’utiliser un plan de consommation parce que vous payez uniquement pour les ressources de calcul que vous utilisez.From a cost perspective, the recommendation is to use consumption plan because you pay only for the compute resources you use. La consommation de ressources vous est facturée par seconde chaque fois qu’un événement déclenche l’exécution de la fonction.You are charged based on per-second resource consumption each time an event triggers the execution of the function. Le traitement de plusieurs événements en une seule exécution ou par lots peut réduire les coûts.Processing several events in a single execution or batches can reduce cost.

Azure Logic AppsAzure Logic Apps

Dans cette architecture, Logic Apps est utilisé pour l’intégration des processus métier.In this architecture, Logic Apps is used for business process integration.

Les tarifs de Logic Apps reposent sur le modèle de paiement à l’utilisation.Logic apps pricing works on the pay-as-you-go model. Les déclencheurs, les actions et les exécutions de connecteur sont comptabilisés chaque fois qu’une application logique s’exécute.Triggers, actions, and connector executions are metered each time a logic app runs. Toutes les actions qui réussissent et échouent, notamment les déclencheurs, sont considérées comme des exécutions.All successful and unsuccessful actions, including triggers, are considered as executions.

Par exemple, votre application logique traite 1 000 messages par jour.For instance, your logic app processes 1000 messages a day. Un workflow de cinq actions coûte moins de 6 USD.A workflow of five actions will cost less than $6.

Pour plus d’informations, consultez Tarifs Logic Apps.For more information, see Logic Apps pricing.

Stockage des donnéesData Storage

Pour le stockage froid, Stockage Blob Azure est l’option la plus rentable.For cold path storage, Azure Blob Storage is the most cost-effective option.

Pour le stockage chaud, pensez à utiliser Azure Cosmos DB.For warm path storage, consider using Azure Cosmos DB. Pour plus d’informations, consultez Tarification Cosmos DB.For more information, see Cosmos DB pricing.

Étapes suivantesNext steps