Cet article présente une stratégie d’empreinte de déploiement qui prend en charge le scale-up d’un nombre d’appareils connectés dans une solution IoT (Internet des objets). L’article décrit également en détail comment déployer des appareils et des applications IoT sur plusieurs empreintes de déploiement.
La stratégie d’empreinte de déploiement pour les solutions IoT est basée sur le modèle de conception Empreinte de déploiement. Les empreintes de déploiement sont des unités composées de composants hétérogènes qui prennent en charge une population d’appareils définie. Les empreintes de déploiement effectuent le scale-up d’un nombre d’appareils IoT connectés en répliquant les empreintes, plutôt qu’en effectuant un scale-up indépendant pour différentes parties d’une solution.
Avantages de l’empreinte de déploiement :
- Vous pouvez placer et distribuer des appareils selon des critères tels que la géodépendance, le cycle de vie ou l’état de publication.
- Vous pouvez limiter l’impact des pannes ou des dégradations de services sur certaines empreintes.
- Vous pouvez déployer des nouvelles fonctionnalités et des modifications architecturales sur les empreintes qui les prennent en charge.
- Vous disposez d’une gestion multigénération des appareils en alignant les fonctionnalités et les services sur les populations d’appareils spécifiées.
- Vous disposez d’un modèle de mise à l’échelle et de coût basé sur les empreintes permettant de s’adapter aux prévisions de croissance.
Architecture des empreintes de déploiement IoT
Téléchargez un fichier Visio de cette architecture.
Le diagramme ci-dessus montre une stratégie d’empreinte de déploiement pour Azure IoT. Cette solution crée des empreintes atomiques qui se composent chacune des éléments suivants :
- Une instance Azure IoT Hub
- Des points de terminaison de routage comme Azure Event Hubs
- Des composants de traitement
Les empreintes doivent toujours être conçues pour prendre en charge des capacités explicites. Pour déterminer le nombre d’appareils à prendre en charge, prenez en compte la quantité de trafic de communication attendue pour ces appareils. Dans cette solution, chaque empreinte prend en charge de manière optimale une population d’appareils définie comprenant entre 1 000 et 1 000 000 d’appareils. À mesure que la population d’appareils grandit, l’ajout d’instances d’empreintes permet de s’adapter à cette croissance.
Déplacer des appareils et des applications d’une empreinte vers une autre
Même si les empreintes de déploiement sont conçues pour les déploiements atomiques, vous pouvez avoir besoin de déplacer des populations d’appareils entre les empreintes. Par exemple, vous pourriez avoir besoin de :
- Déplacez des populations d’appareils à partir d’empreintes de test vers des empreintes de production dans le cadre d’un cycle de mise en production.
- Déplacez des appareils et des utilisateurs vers une autre empreinte pour une atténuation des pannes dans le cadre d’un scénario de haute disponibilité.
- Équilibrez la charge pour distribuer les populations d’appareils plus uniformément entre les empreintes.
Déplacer des appareils d’un hub vers un autre
Si les composants d’empreintes englobent uniquement le comportement appareil-à-cloud, le déplacement des appareils entre les hubs est suffisant pour migrer les appareils d’une empreinte vers une autre. Le service Azure IoT Hub Device Provisioning (DPS) permet de déplacer des appareils entre les instances IoT Hub. Pour utiliser le service DPS dans une stratégie d’empreinte, familiarisez-vous avec la terminologie IoT Hub Device Provisioning et les concepts associés.
Notes
DPS utilise des ID d’inscription, tandis qu’IoT Hub utilise des ID d’appareil. Ces ID ont souvent la même valeur, mais peuvent être différents. Lorsque vous interrogez ou gérez des appareils avec les API DPS, veillez à utiliser les ID d’inscription.
Déplacer des appareils et des applications entre des empreintes autonomes
Si les empreintes de déploiement comprennent des front-ends web ou des applications API qui communiquent via IoT Hub, ces composants doivent également migrer vers de nouveaux hubs pour continuer à communiquer avec les appareils qui ont été déplacés. Vous pouvez déplacer des applications et des appareils entiers entre les empreintes.
Lorsque chaque empreinte englobe une application de bout en bout, Azure Traffic Manager peut déplacer le trafic d’une empreinte à une autre. Cette stratégie implique la création de plusieurs empreintes, chacune contenant l’application entière avec sa propre URL. Les populations entières d’appareils et d’utilisateurs d’applications sont déplacées d’une empreinte vers une autre.
Cette stratégie entièrement autonome est :
- Simple à implémenter.
- Approprié dans le cadre d’une stratégie de haute disponibilité.
- Utile pour la migration des appareils et des utilisateurs d’un environnement de test vers un environnement de production.
Téléchargez un fichier Visio de cette architecture.
Le diagramme précédent montre le processus de déplacement d’un ensemble d’appareils de l’empreinte 1 vers l’empreinte 2 :
- Les appareils acquièrent le point de terminaison IoT Hub avec DPS s’il est inconnu ou n’est plus valide.
- Quand les appareils sont déplacés vers l’empreinte 2, Traffic Manager pointe l’URL d’application vers l’instance Application 2.
- DPS déplace un ensemble complet d’appareils d’une empreinte vers une autre.
- Chaque empreinte d’application contient le front-end de l’application et référence l’instance IoT Hub correspondant à cette empreinte.
Déplacer des appareils entre les empreintes derrière une passerelle d’application unique
Lorsqu’une application front-end prend en charge plusieurs empreintes d’appareils, le front-end d’application doit mettre à jour de manière dynamique son mappage appareil-à-hub pour maintenir la communication cloud-à-appareil. Pour prendre en charge le déplacement d’appareils vers des empreintes et des instances IoT Hub différentes, les passerelles peuvent utiliser un mécanisme de mise en cache pour le mappage appareil-à-hub. Les clients de service peuvent utiliser une routine de recherche partagée pour détecter et migrer dynamiquement les appels d’appareil vers de nouvelles instances IoT Hub.
Téléchargez un fichier Visio de cette architecture.
Dans ce modèle, la passerelle utilise un cache pour mapper les appareils aux instances IoT Hub et elle utilise par défaut le point de terminaison mis en cache. Si la passerelle reçoit une erreur d’appareil introuvable, elle utilise le SDK du service DPS pour interroger l’inscription de l’appareil et déterminer quelle instance IoT Hub est actuellement utilisée par l’appareil. La passerelle met ensuite à jour le cache avec le nouveau mappage.
Voici quelques-uns des points à prendre en compte pour cette stratégie :
Même si la mise en cache d’une recherche partagée évite la renégociation des points de terminaison à chaque appel, il est possible que le point de terminaison du cache échoue. Un cache secondaire ou un plan de secours de renégociation avec DPS peut améliorer la fiabilité de la solution.
Si l’inscription de l’appareil est en cours, l’appareil n’est pas accessible. Utilisez les API DPS comme Get Device Registration State pour récupérer l’instance IoT Hub attribuée à l’appareil et son état d’inscription actuel.
Dans le cas d’un appareil seul, les appareils sont déconnectés d’IoT Hub lorsqu’ils passent d’une empreinte à une autre. Dans une configuration de type « application-à-appareil », l’erreur se produit lorsque l’application tente de contacter l’appareil via IoT Hub.
Contributeurs
Cet article est géré par Microsoft. Il a été écrit à l’origine par les contributeurs suivants.
Auteur principal :
- Jason Wadsworth | Ingénieur logiciel principal
Étapes suivantes
- Appareils IoT, plateformes IoT et applications
- Commandes application-à-appareil
- Modèle de conception des empreintes de déploiement