In diesem Artikel wird eine Bereitstellungsstempelstrategie erläutert, um das Hochskalieren der Anzahl verbundener Geräte in einer IoT-Lösung (Internet of Things, Internet der Dinge) zu unterstützen. In diesem Artikel wird außerdem ausführlich beschrieben, wie IoT-Geräte und -Anwendungen zwischen Bereitstellungsstempeln bereitgestellt werden.
Die Bereitstellungsstempelstrategie für IoT-Lösungen basiert auf dem Entwurfsmuster Bereitstellungsstempel. Bereitstellungsstempel sind Einheiten, die aus heterogenen Komponenten bestehen, die eine definierte Gerätepopulation unterstützen. Durch Bereitstellungsstempel wird die Anzahl verbundener IoT-Geräte durch das Replizieren von Stempeln hochskaliert, anstatt verschiedene Teile einer Lösung unabhängig voneinander hochskalieren zu müssen.
Vorteile des Bereitstellungsstempels:
- Platzieren und Verteilen von Geräten anhand von Kriterien wie Geoabhängigkeit, Lebenszyklus oder Releasestatus
- Begrenzen der Auswirkungen von Ausfällen oder Dienstbeeinträchtigungen auf bestimmte Stempel
- Bereitstellen neuer Features, Funktionen und Architekturänderungen für bestimmte Stempel, die diese unterstützen können
- Unterstützen einer Geräteverwaltungsstrategie über mehrere Generationen durch Ausrichten von Funktionen und Diensten auf bestimmte Gerätepopulationen
- Bereitstellen eines Skalierungs- und Kostenmodells basierend auf Stempeln, um künftiges Wachstum vorhersehbar zu gestalten
Architektur für IoT-Bereitstellungsstempel
Laden Sie eine Visio-Datei dieser Architektur herunter.
Das obige Diagramm veranschaulicht eine Bereitstellungsstempelstrategie für Azure IoT. Diese Lösung erstellt atomische Stempel, die jeweils aus Folgendem bestehen:
- Azure IoT Hub-Instanz
- Routingendpunkten wie Azure Event Hubs
- Verarbeitungskomponenten
Stempel sollten immer so entworfen werden, dass explizite Kapazitäten unterstützt werden. Bedenken Sie beim Ermitteln der richtigen Anzahl der zu unterstützenden Geräte, wie viel Kommunikationsdatenverkehr von den Geräten erwartet wird. In dieser Lösung unterstützt jeder Stempel optimal eine definierte Gerätepopulation von 1.000 bis 1.000.000 Geräten. Wenn die Gerätepopulation zunimmt, werden entsprechend dem Wachstum Stempelinstanzen hinzugefügt
Verschieben von Geräten und Anwendungen zwischen Stempeln
Bereitstellungsstempel sind für atomische Bereitstellungen vorgesehen. Manchmal müssen jedoch Gerätepopulationen zwischen den Stempeln verschoben werden. Beispielsweise müssen Sie eventuell:
- Verschieben von Gerätepopulationen von Teststempeln in Produktionsstempel im Rahmen eines Releasezyklus
- Verschieben von Geräten und Benutzern in einen anderen Stempel im Rahmen der Ausfallwartung in einem Hochverfügbarkeitsszenario
- Vornehmen eines Lastausgleichs zum gleichmäßigeren Verteilen der Gerätepopulation auf Stempel
Verschieben von Geräten zwischen Hubs
Wenn die Stempelkomponenten nur die Gerät-zu-Cloud-Richtung umfassen, ist es für eine Migration von Geräten von einem Stempel zu einem anderen ausreichend, die Geräte zwischen Hubs zu verschieben. Azure IoT Hub Device Provisioning Service (DPS) bietet eine Möglichkeit zum Verschieben von Geräten zwischen IoT Hub-Instanzen. Wenn Sie in Ihrer Stempelstrategie DPS verwenden möchten, machen Sie sich mit den Konzepten und der Terminologie von IoT Hub Device Provisioning Service (DPS) vertraut.
Hinweis
DPS verwendet Registrierungs-IDs, wohingegen IoT Hub Geräte-IDs verwendet. Diese IDs sind häufig identisch, können sich jedoch unterscheiden. Wenn Sie Geräte mit den DPS-APIs abfragen oder verwalten, verwenden Sie unbedingt die Registrierungs-IDs.
Verschieben von Geräten und Anwendungen zwischen eigenständigen Stempeln
Wenn die Bereitstellungsstempel Web-Front-Ends oder API-Anwendungen enthalten, die über IoT Hub kommunizieren, müssen diese Komponenten ebenfalls zu neuen Hubs migriert werden, um weiterhin mit den verschobenen Geräten zu kommunizieren. Sie können ganze Anwendungen und Geräte zwischen Stempeln verschieben.
Wenn jeder Stempel eine End-to-End-Anwendung umfasst, kann Azure Traffic Manager den Datenverkehr von einem Stempel zu einem anderen verschieben. Diese Strategie umfasst das Erstellen mehrerer Stempel, die jeweils die gesamte Anwendung mit einer eigenen URL enthalten. Ganze Populationen von Geräten und Anwendungsbenutzern werden von einem Stempel in einen anderen verschoben.
Für diese vollständig eigenständige Strategie gilt:
- Einfache Implementierung
- Geeignet als Teil einer Hochverfügbarkeitsstrategie
- Hilfreich beim Migrieren von Geräten und Benutzern von Test- und zu Produktionsumgebungen
Laden Sie eine Visio-Datei dieser Architektur herunter.
Das obige Diagramm zeigt den Prozess des Verschiebens einer Gruppe von Geräten von Stempel 1 in Stempel 2:
- Geräte beziehen den IoT Hub-Endpunkt über DPS, wenn dieser unbekannt oder nicht mehr gültig ist.
- Wenn Geräte in Stempel 2 verschoben werden, verweist Traffic Manager die Anwendungs-URL auf die Instanz von Anwendung 2.
- DPS verschiebt eine ganze Gruppe von Geräten von einem Stempel in einen anderen.
- Jeder Anwendungsstempel enthält das Anwendungs-Front-End und verweist auf die diesem Stempel entsprechende IoT Hub-Instanz.
Verschieben von Geräten zwischen Stempeln hinter einem einzelnen App-Gateway
Wenn ein einzelnes Anwendungs-Front-End mehrere Gerätestempel unterstützt, muss das Anwendungs-Front-End die Zuordnung von Geräten zu Hubs dynamisch aktualisieren, um die Kommunikation zwischen der Cloud und den Geräten zu gewährleisten. Zur Unterstützung von Geräten, die in verschiedene Stempel und IoT Hub-Instanzen verschoben werden, können Gateways einen Zwischenspeicherungsmechanismus für die Zuordnung von Geräten zu Hubs verwenden. Dienstclients können eine freigegebene Suchroutine verwenden, um Geräteaufrufe dynamisch zu erkennen und zu neuen IoT Hub-Instanzen zu migrieren.
Laden Sie eine Visio-Datei dieser Architektur herunter.
In diesem Modell verwendet das Gateway einen Cache zum Zuordnen von Geräten zu IoT Hub-Instanzen. Dabei wird der zwischengespeicherte Endpunkt als Standard verwendet. Wenn in einem Fehler angegeben wird, dass das Gerät nicht gefunden wurde, fragt das Gateway über das DPS-Dienst-SDK die jeweilige Geräteregistrierung ab und ermittelt, welche IoT Hub-Instanz das Gerät jetzt verwendet. Das Gateway aktualisiert dann den Cache mit der neuen Zuordnung.
Nachfolgend finden Sie einige Überlegungen zu dieser Strategie:
Durch das Zwischenspeichern in einer freigegebenen Suche wird das erneute Aushandeln von Endpunkten bei jedem Aufruf vermieden, jedoch kann der Cacheendpunkt möglicherweise ausfallen. Ein sekundärer Cache oder ein Ausweichplan zur Neuaushandlung mit DPS kann die Zuverlässigkeit der Lösung verbessern.
Während die Geräteregistrierung durchgeführt wird, ist das Gerät nicht erreichbar. Verwenden Sie DPS-APIs wie Get Device Registration State (Geräteregistrierungsstatus abrufen), um die zugewiesene IoT Hub-Instanz des Geräts und seinen aktuellen Registrierungsstatus abzurufen.
Wenn nur Geräte vorhanden sind, werden diese von der IoT Hub-Instanz getrennt, wenn sie von einem Stempel in einen anderen verschoben werden. Im Fall von Anwendungen und Geräten tritt der Fehler auf, wenn die App versucht, das Gerät über die IoT Hub-Instanz zu erreichen.
Beitragende
Dieser Artikel wird von Microsoft gepflegt. Er wurde ursprünglich von folgenden Mitwirkenden geschrieben:
Hauptautor:
- Jason Wadsworth | Principal Software Engineer
Nächste Schritte
- IoT-Geräte, -Plattform und -Anwendungen
- Befehle zwischen IoT-Anwendung und -Gerät
- Entwurfsmuster für Bereitstellungsstempel