Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Bereitstellung von Updates auf IoT-Geräten im großen Maßstab kann durch Bandbreite, Konnektivität und Größe von Updateinhalten eingeschränkt werden. Diese Einschränkungen sind besonders schwierig für Geräte, die über Mobilfunk- oder getaktete Netzwerke verbunden sind.
Delta-Updates (auch als differenzielle Updates oder Diff-Updates bezeichnet) in Device Update für IoT Hub helfen, diese Einschränkung zu beheben, indem Geräte nur die Unterschiede zwischen zwei Versionen eines Updates anstelle des vollständigen Updates herunterladen können. Dieser Ansatz reduziert die Menge der an jedes Gerät übertragenen Daten und ermöglicht es Geräten in vielen Szenarien, Updates schneller herunterzuladen, insbesondere bei eingeschränkten oder getakteten Netzwerken.
Eine einzelne Bereitstellung kann mehrere Delta-Updates umfassen, um Flotten zu unterstützen, bei denen Sich Geräte auf unterschiedlichen Startversionen befinden.
Wann Delta-Updates verwendet werden sollen
Delta-Updates sind besonders vorteilhaft, wenn die Unterschiede zwischen quell- und Zielversionen einen kleinen Teil des vollständigen Updates darstellen. In diesen Fällen ist die Delta-Nutzlast deutlich kleiner als das vollständige Update, wodurch der Bandbreitenverbrauch reduziert und die Downloadeffizienz verbessert werden kann, insbesondere bei großen Flotten, die auf eingeschränkten oder variablen Netzwerken arbeiten.
Wenn sich der großteil der Updateinhalte zwischen Versionen ändert, kann das Delta begrenzte Bandbreiteneinsparungen bieten. In diesen Szenarien ist die direkte Verwendung des vollständigen Updates möglicherweise einfacher zu generieren und zu verwalten.
Delta-Updates tauschen zusätzlichen Speicher und mehr Verarbeitung auf dem Gerät gegen eine geringere Netzwerknutzung ein. Geräte müssen ein Quellupdate lokal beibehalten, um ein Delta anzuwenden und zusätzliche Berechnungen durchzuführen, um die Zielversion zu rekonstruieren, was sich je nach Gerätefunktionen auf die Gesamtaktualisierungszeit auswirken kann. Berücksichtigen Sie diese Nachteile, wenn Sie entscheiden, ob Delta-Updates den Einschränkungen Ihrer Flotte entsprechen.
Unterstützte Updateformate
Die aktuelle Implementierung von Delta-Updates im Geräteupdate für IoT Hub unterstützt imagebasierte Updates, die im SWUpdate-Format (SWU) bereitgestellt werden. Microsoft stellt diese Funktionalität als Referenzimplementierung bereit, einschließlich des Quellcodes für die Deltagenerierung und die Logik für die geräteinterne Rekonstruktion. Diese Referenzimplementierung veranschaulicht, wie Delta-Updates in einen Geräteaktualisierungsworkflow integriert werden können und bei Bedarf erweitert oder angepasst werden können, um andere Updateformate oder alternative Delta- und Wiederaufbauansätze zu unterstützen.
Funktionsweise von Delta-Updates
Ein Delta-Update ist ein kompaktes Updateartefakt, das nur die Unterschiede zwischen zwei Versionen eines Updates enthält:
- Die Quellversion ist die aktuell auf dem Gerät installierte Version.
- Die Zielversion ist die Version, die das Gerät ausführen soll.
Anstatt die vollständige Zielversion herunterzuladen, lädt das Gerät das Delta-Update herunter und kombiniert es mit der Quellversion, die bereits auf dem Gerät vorhanden ist, um das vollständige Zielupdate vor der Installation zu rekonstruieren.
Vor der Bereitstellung generieren Sie Delta-Updates mit Microsoft bereitgestellten Referenztools und importieren sie zusammen mit dem vollständigen Zielupdate in das Geräteupdate.
Da ein Delta-Update von der Quellversion abhängt, muss die entsprechende Quellversion auf dem Gerät verfügbar sein. Der Geräteupdate-Agent speichert in der Regel zuvor installierte Updates für die zukünftige Verwendung zwischen. Bei Bedarf können Sie Quellversionen auch vor der Bereitstellung vorab auf dem Gerät bereitstellen.
Das folgende Diagramm veranschaulicht diesen Prozess auf hoher Ebene. Auf dem Gerät wird das Delta-Update angewendet, indem ein Delta-Artefakt heruntergeladen und mit einer zwischengespeicherten Quellversion kombiniert wird, um das vollständige Zielupdate zu rekonstruieren und dann dieses Update zu installieren.
Bereitstellungsinhalte
Eine Bereitstellung, die Delta-Updates verwendet, muss Folgendes umfassen:
Die vollständige Zielaktualisierung.
Ein oder mehrere Delta-Updates, die jeweils für einen bestimmten Versionsübergang von einer Quell- zu einer Zielversion generiert wurden. Um Geräte mit unterschiedlichen Startversionen zu bedienen, schließen Sie ein Delta-Update für jede Quellversion ein, die Sie unterstützen möchten (z. B. ein v1 → v3-Delta für Geräte auf v1 und ein v2-→ v3-Delta für Geräte auf v2, beide für v3).
Schließen Sie immer das vollständige Zielupdate ein, damit Geräte ohne kompatible Quellversion weiterhin die Zielversion erreichen können. Diese Einbeziehung bedeutet, dass das Hinzufügen von Delta-Updates zu einer Bereitstellung kein zusätzliches Risiko darstellt – Geräte, die den Deltapfad nicht verwenden können, installieren weiterhin das vollständige Update.
Schrittweise Anleitungen zum Generieren und Importieren von Delta-Updates finden Sie unter Deploy delta updates with Device Update for IoT Hub.
Gerätespezifische Auswertung
Wenn eine Bereitstellung ausgeführt wird, wertet der Geräteupdate-Agent auf jedem Gerät basierend auf dem aktuellen Zustand des Geräts den anzuwendenden Updatepfad aus.
Für jedes Gerät:
Der Geräteupdate-Agent bestimmt, ob das Gerät über ein zwischengespeichertes Quellupdate verfügt, das mit einem der Delta-Updates in der Bereitstellung kompatibel ist.
Wenn ein kompatibles Delta-Update verfügbar ist:
Das Gerät lädt das Delta-Update herunter.
Der Delta-Prozessor rekonstruiert das vollständige Zielupdate, indem das Delta-Update mit dem zwischengespeicherten Quellupdate auf dem Gerät kombiniert wird.
Der Updatehandler installiert das rekonstruierte Update.
Wenn kein kompatibles Delta-Update verfügbar ist, lädt das Gerät das vollständige Zielupdate herunter und installiert es.
Jedes Gerät führt diese Auswertung unabhängig aus. Daher folgen Geräte in derselben Bereitstellung möglicherweise unterschiedlichen Updatepfaden, je nachdem, welche zwischengespeicherte Quellaktualisierung auf dem Gerät vorhanden ist und welche Delta-Updates verfügbar sind.
Ein Gerät wendet pro Bereitstellung höchstens ein Delta-Update an. Delta-Updates werden nicht sequenziert angewendet, um die Zielversion zu erreichen. Daher muss jedes Delta-Update generiert werden, um direkt von einer Quellversion zur Zielversion zu wechseln. Wenn kein kompatibles Delta verfügbar ist, installiert das Gerät das vollständige Zielupdate.
Components
Delta-Updates basieren auf mehreren Komponenten auf dem Gerät, um Updates zu rekonstruieren und zu installieren.
Geräteaktualisierungs-Agent: Koordiniert den Updatelebenszyklus auf dem Gerät, einschließlich der Auswertung verfügbarer Updates, herunterladen von Inhalten, koordinierender Installation und Berichterstellung an den Dienst.
Delta-Prozessor: Eine Erweiterung, die das vollständige Zielupdate auf dem Gerät rekonstruiert, indem das heruntergeladene Delta-Update mit der lokal verfügbaren Quellversion kombiniert wird.
Updatehandler: Führt die Installation des Updates auf dem Gerät aus. Unterschiedliche Handler unterstützen unterschiedliche Updateformate.
Unterstützte Szenarios
Delta-Updates unterstützen eine Reihe von Bereitstellungsszenarien, von einfachen Einzelversionsupgrades bis hin zu komplexeren Flottenrollouts, bei denen sich Geräte auf unterschiedlichen Startversionen befinden. Wenn ein Gerät den Deltapfad nicht verwenden kann, installiert es stattdessen das vollständige Zielupdate, sodass jedes Gerät in der Bereitstellung die Zielversion erreichen kann.
Aktualisierung von Geräten mit derselben Version
Alle Geräte in der Bereitstellung befinden sich in derselben Quellversion. Sie generieren ein einzelnes Delta-Update zwischen der Quellversion und der Zielversion, und jedes Gerät wendet es an, um das Ziel zu erreichen.
Beispielsweise befinden sich alle Geräte auf v2. Die Bereitstellung enthält ein Delta-Update für v2 → v3 und das vollständige v3-Update . Jedes Gerät wendet das Delta an, um v3 zu erreichen.
Aktualisierung einer Flotte mit gemischten Versionen
Geräte in der Flotte führen unterschiedliche Startversionen aus. Eine einzelne Bereitstellung kann mehrere Delta-Updates und das vollständige Zielupdate enthalten, sodass jedes Gerät basierend auf seiner aktuellen Version den entsprechenden Pfad verwendet. Jedes Gerät wendet ein Delta-Update direkt auf die Zielversion an oder installiert das vollständige Update, wenn kein kompatibles Delta verfügbar ist.
Beispielsweise zielt eine Bereitstellung auf v3 ab und enthält ein Delta von v1 auf v3, ein Delta von v2 auf v3 und die vollständige v3-Aktualisierung. Geräte auf v1 wenden das v1 → v3-Delta an. Geräte mit v2 wenden das v2→v3-Delta an. Geräte auf jeder anderen Version installieren das vollständige v3-Update.
Überlegungen
Gerätespeicherkapazität: Delta-Updates erfordern, dass eine Quellversion auf dem Gerät verfügbar ist. Der Geräteupdate-Agent speichert zuvor installierte Updates zwischen, sodass Geräte genügend Speicherkapazität benötigen, um diese zwischengespeicherten Versionen zusätzlich zum für neue Updates benötigten Speicherplatz beizubehalten.
Mehrere Delta-Updateartefakte: Bereitstellungen, die Delta-Updates unterstützen, umfassen das vollständige Zielupdate und eine oder mehrere Delta-Updatedateien. Um Geräte mit unterschiedlichen Startversionen zu bedienen, fügen Sie ein Delta-Update für jede Quellversion ein, die Sie unterstützen möchten, wobei jedes Delta direkt von der Quelle zur Zielversion geht.
Auswahl des Pfads pro Gerät: Innerhalb derselben Bereitstellung folgen Geräte möglicherweise unterschiedlichen Updatepfaden, je nachdem, welche Delta-Updates für ihre aktuelle Quellversion verfügbar sind. Dies ist das erwartete Verhalten.
Nächste Schritte
Informationen zum Generieren und Bereitstellen von Delta-Updates finden Sie unter: