Aggiornamenti differenziali

La distribuzione degli aggiornamenti ai dispositivi IoT su larga scala può essere vincolata dalla larghezza di banda, dalla connettività e dalle dimensioni del contenuto degli aggiornamenti. Questi vincoli sono particolarmente problematici per i dispositivi connessi tramite reti cellulari o reti a consumo.

Gli aggiornamenti delta (detti anche aggiornamenti differenziali o diff) in Device Update per hub IoT aiutano a superare questo vincolo consentendo ai dispositivi di scaricare solo le differenze tra due versioni di un aggiornamento anziché l'intero aggiornamento. Questo approccio riduce la quantità di dati trasferiti a ogni dispositivo e, in molti scenari, consente ai dispositivi di scaricare gli aggiornamenti più rapidamente, soprattutto nelle reti vincolate o a consumo.

Una distribuzione singola può includere più aggiornamenti differenziali per gestire parchi di dispositivi che partono da versioni diverse.

Quando usare gli aggiornamenti differenziali

Gli aggiornamenti differenziali sono particolarmente utili quando le differenze tra le versioni di origine e di destinazione rappresentano una piccola parte dell'aggiornamento completo. In questi casi, il payload delta è significativamente più piccolo dell'aggiornamento completo, il che riduce il consumo di larghezza di banda e può migliorare l'efficienza di download, soprattutto su flotte di grandi dimensioni che operano su reti con larghezza di banda limitata o variabile.

Quando la maggior parte del contenuto degli aggiornamenti cambia tra le versioni, il delta potrebbe offrire un risparmio di larghezza di banda limitato. In questi scenari, l'uso diretto dell'aggiornamento completo potrebbe essere più semplice da generare e gestire.

Gli aggiornamenti differenziali scambiano ulteriore spazio di archiviazione e elaborazione su dispositivo per ridurre l'utilizzo della rete. I dispositivi devono mantenere un aggiornamento di origine in locale per applicare un delta ed eseguire calcoli aggiuntivi per ricostruire la versione di destinazione, che può influire sul tempo totale di aggiornamento a seconda delle funzionalità del dispositivo. Considera questi compromessi quando decidi se gli aggiornamenti differenziali si adattano ai vincoli della tua flotta.

Formati di aggiornamento supportati

L'implementazione attuale degli aggiornamenti differenziali in Device Update per hub IoT supporta gli aggiornamenti basati su immagine recapitati nel formato SWUpdate (SWU). Microsoft fornisce questa funzionalità come implementazione di riferimento, incluso il codice sorgente per la generazione dei delta e la logica di ricostruzione sul dispositivo. Questa implementazione di riferimento illustra in che modo gli aggiornamenti differenziali possono essere integrati in un flusso di lavoro di aggiornamento dei dispositivi e possono essere estesi o adattati per supportare altri formati di aggiornamento o approcci differenziali e di ricostruzione alternativi in base alle esigenze.

Come funzionano gli aggiornamenti differenziali

Un aggiornamento delta è un pacchetto di aggiornamento compatto che contiene solo le differenze tra due versioni di un aggiornamento:

  • La versione di origine è la versione attualmente installata nel dispositivo.
  • La versione di destinazione è la versione che si vuole che il dispositivo venga eseguito.

Invece di scaricare la versione di destinazione completa, il dispositivo scarica l'aggiornamento differenziale e lo combina con la versione di origine già presente nel dispositivo per ricostruire l'aggiornamento completo di destinazione prima dell'installazione.

Prima della distribuzione, si generano aggiornamenti differenziali usando gli strumenti di riferimento forniti da Microsoft e li si importa in Device Update insieme all'aggiornamento di destinazione completo.

Poiché un aggiornamento differenziale dipende dalla versione di origine, la versione di origine corrispondente deve essere disponibile nel dispositivo. L'agente di Aggiornamento dispositivi memorizza in genere nella cache gli aggiornamenti installati in precedenza per un uso futuro. Se necessario, puoi anche precaricare le versioni sorgente sul dispositivo prima della distribuzione.

Il diagramma seguente illustra questo processo a livello generale. Nel dispositivo, l'aggiornamento differenziale viene applicato scaricando un artefatto delta, combinandolo con una versione di origine memorizzata nella cache per ricostruire l'aggiornamento di destinazione completo e quindi installando tale aggiornamento.

Diagramma del flusso di aggiornamento differenziale del dispositivo: l'artefatto delta più l'immagine di origine memorizzata nella cache ricostruisce l'immagine di destinazione, quindi la installa.

Contenuto della distribuzione

Una distribuzione che usa gli aggiornamenti differenziali deve includere:

  • Aggiornamento completo del target.

  • Uno o più aggiornamenti differenziali, ciascuno generato per una specifica transizione da una versione di origine a una di destinazione. Per gestire i dispositivi in versioni iniziali diverse, includere un aggiornamento differenziale per ogni versione di origine che si vuole supportare (ad esempio, un delta v1 → v3 per i dispositivi nella versione 1 e una versione 2 → delta v3 per i dispositivi nella versione 2, entrambi destinati alla versione 3).

Includere sempre l'aggiornamento completo di destinazione in modo che i dispositivi senza una versione di origine compatibile possano comunque raggiungere la versione di destinazione. Questa inclusione significa che l'aggiunta di aggiornamenti differenziali a una distribuzione non comporta rischi aggiuntivi: i dispositivi che non possono usare il percorso differenziale installano comunque l'aggiornamento completo.

Per istruzioni dettagliate su come generare e importare aggiornamenti differenziali, vedere Deploy delta updates with Device Update for hub IoT.

Valutazione per dispositivo

Quando viene eseguita una distribuzione, l'agente di Aggiornamento dispositivi in ogni dispositivo valuta il percorso di aggiornamento da applicare in base allo stato corrente del dispositivo.

Per ogni dispositivo:

  1. L'agente di Aggiornamento dispositivo determina se il dispositivo dispone di un aggiornamento di origine memorizzato nella cache compatibile con uno degli aggiornamenti differenziali nella distribuzione.

  2. Se è disponibile un aggiornamento differenziale compatibile:

    • Il dispositivo scarica l'aggiornamento differenziale.

    • Il processore Delta ricostruisce l'aggiornamento completo di destinazione combinando l'aggiornamento differenziale con l'aggiornamento di origine memorizzato nella cache del dispositivo.

    • Il gestore dell'aggiornamento installa l'aggiornamento ricostruito.

  3. Se non è disponibile alcun aggiornamento differenziale compatibile, il dispositivo scarica e installa l'aggiornamento di destinazione completo.

Ogni dispositivo esegue questa valutazione in modo indipendente. Di conseguenza, i dispositivi nella stessa distribuzione potrebbero seguire percorsi di aggiornamento diversi a seconda dell'aggiornamento di origine memorizzato nella cache nel dispositivo e quali aggiornamenti differenziali sono disponibili.

A un dispositivo viene applicato al massimo un aggiornamento delta per ogni distribuzione. Gli aggiornamenti differenziali non vengono applicati in sequenza per raggiungere la versione di destinazione, quindi ogni aggiornamento differenziale deve essere generato per passare direttamente da una versione di origine alla versione di destinazione. Se non è disponibile alcun delta compatibile, il dispositivo installa l'aggiornamento di destinazione completo.

Componenti

Gli aggiornamenti differenziali si basano su diversi componenti del dispositivo per ricostruire e installare gli aggiornamenti.

  • Agente aggiornamento dispositivi: Orchestra il ciclo di vita degli aggiornamenti nel dispositivo, inclusa la valutazione degli aggiornamenti disponibili, il download di contenuto, il coordinamento dell'installazione e la creazione di report dei risultati al servizio.

  • Processore delta: un'estensione che ricostruisce sul dispositivo l'aggiornamento di destinazione completo combinando l'aggiornamento differenziale scaricato con la versione di origine disponibile localmente.

  • Gestore aggiornamenti: Esegue l'installazione dell'aggiornamento nel dispositivo. I gestori diversi supportano formati di aggiornamento diversi.

Scenari supportati

Gli aggiornamenti delta supportano una gamma di scenari di distribuzione, da semplici aggiornamenti a versione singola a implementazioni più complesse della flotta in cui i dispositivi si trovano in versioni iniziali diverse. Se un dispositivo non può usare il percorso differenziale, installa invece l'aggiornamento di destinazione completo, in modo che ogni dispositivo nella distribuzione possa raggiungere la versione di destinazione.

Aggiornamento dei dispositivi nella stessa versione

Tutti i dispositivi nella distribuzione si trovano nella stessa versione di origine. Si genera un singolo aggiornamento differenziale tra la versione di origine e la versione di destinazione e ogni dispositivo lo applica per raggiungere la destinazione.

Ad esempio, tutti i dispositivi sono nella versione 2. La distribuzione include un aggiornamento delta per v2 → v3 e l'aggiornamento completo v3. Ogni dispositivo applica il delta per raggiungere la versione 3.

Aggiornamento di una flotta di versioni miste

I dispositivi della flotta eseguono versioni iniziali diverse. Una singola distribuzione può includere più aggiornamenti differenziali e l'aggiornamento completo di destinazione, quindi ogni dispositivo utilizza il percorso appropriato in base alla versione corrente. Ogni dispositivo applica un aggiornamento differenziale che porta direttamente alla versione di destinazione oppure installa l'aggiornamento completo se non è disponibile alcun aggiornamento differenziale compatibile.

Ad esempio, una distribuzione è destinata alla versione 3 e include un delta v1 → v3 , un delta v2 → v3 e l'aggiornamento v3 completo. I dispositivi nella versione 1 applicano il delta v1 → v3. I dispositivi su v2 applicano il delta v2 → v3. I dispositivi in qualsiasi altra versione installano l'aggiornamento v3 completo.

Considerazioni

Capacità di archiviazione del dispositivo: Gli aggiornamenti differenziali richiedono che una versione di partenza sia disponibile sul dispositivo. L'agente di Aggiornamento dispositivi memorizza nella cache gli aggiornamenti installati in precedenza, quindi i dispositivi necessitano di capacità di archiviazione sufficiente per conservare queste versioni memorizzate nella cache oltre allo spazio necessario per i nuovi aggiornamenti.

Più artefatti di aggiornamento differenziale: Le distribuzioni che supportano gli aggiornamenti differenziali includono l'aggiornamento completo di destinazione e uno o più file di aggiornamento differenziale. Per supportare dispositivi con versioni iniziali diverse, includi un aggiornamento delta per ogni versione di origine che vuoi supportare, in modo che ogni aggiornamento delta passi direttamente dalla versione di origine a quella di destinazione.

Selezione del percorso per dispositivo: All'interno della stessa distribuzione, i dispositivi possono seguire percorsi di aggiornamento diversi a seconda degli aggiornamenti differenziali disponibili per la versione di origine corrente. Questo comportamento è previsto.

Passaggi successivi

Per generare e distribuire aggiornamenti differenziali, vedere: