Condividi tramite


Affidabilità nel carico di lavoro IoT

I carichi di lavoro IoT, come tutti i carichi di lavoro, hanno il potenziale di malfunzionamento. Le principali considerazioni sull'affidabilità per le soluzioni IoT ben architettate sono il modo in cui è possibile rilevare rapidamente le modifiche e come è possibile riprendere le operazioni.

Le applicazioni IoT vengono spesso distribuite su larga scala e possono funzionare su reti non affidabili senza accesso permanente o visibilità nei flussi di dati end-to-end. A causa di questi fattori, è necessario progettare l'architettura IoT con disponibilità e resilienza.

La creazione di una soluzione IoT affidabile richiede un'attenta considerazione dei dispositivi, dei servizi cloud e del modo in cui interagiscono. Le scelte effettuate per l'hardware del dispositivo, la connettività e i protocolli e i servizi cloud influiscono sui requisiti di affidabilità e sulle funzionalità della soluzione.

Valutare l'affidabilità nel carico di lavoro IoT

Per valutare il carico di lavoro IoT tramite gli obiettivi del pilastro Well-Architected Framework Reliability, completare le domande di affidabilità per i carichi di lavoro IoT in Azure Well-Architected Review. Dopo aver identificato le raccomandazioni chiave sull'affidabilità per la soluzione IoT, usare il contenuto seguente per implementare le raccomandazioni.

Principi di progettazione

Cinque pilastri dell'eccellenza architettonica supportano la metodologia di progettazione del carico di lavoro IoT. Questi pilastri fungono da bussola per le successive decisioni di progettazione tra le principali aree di progettazione IoT. I principi di progettazione seguenti estendono il pilastro della qualità di Azure Well-Architected Framework - Affidabilità.

Principio di progettazione Considerazioni
Progettare dispositivi per la resilienza Progettare i dispositivi per soddisfare i requisiti di attività e disponibilità della soluzione end-to-end. Assicurarsi che il dispositivo IoT possa funzionare in modo efficiente con connettività intermittente al cloud.
Progettazione per i requisiti aziendali Le implicazioni sui costi sono inevitabili quando si introducono modifiche dell'architettura per soddisfare i contratti a livello di servizio. Ad esempio, per avere maggiore affidabilità e disponibilità elevata, è possibile implementare ridondanza tra aree e un sistema automatizzato per la scalabilità automatica. Questo compromesso deve essere valutato con attenzione.
Procedure di aggiornamento sicure e semplici Una soluzione IoT aziendale deve fornire una strategia per la gestione dei dispositivi da parte degli operatori. Gli operatori IoT richiedono strumenti e procedure di aggiornamento semplici e affidabili.
Osservazione dell'integrità dell'applicazione Definire gli indicatori a livello di servizio e gli obiettivi a livello di servizio in base all'osservabilità. Aggiungere processi per il controllo, il monitoraggio e l'avviso oltre ai servizi cloud offerti.
Disponibilità elevata e ripristino di emergenza (HA/RIPRISTINO di emergenza) per i componenti critici. Componenti hardware e software resilienti che creano ridondanza, tra cui ridondanza tra aree.
Pianificare per ottenere capacità Pianificare quote di servizio e limitazioni, latenza tra l'azione di rilevamento e stabilire i benchmark su scala di produzione per supportare il flusso di dati senza interruzioni.

Livelli di architettura IoT

I principi di progettazione dell'affidabilità consentono di chiarire le considerazioni per garantire che il carico di lavoro IoT soddisfi i requisiti nei livelli di architettura IoT fondamentali. Per ottenere l'affidabilità complessiva della soluzione, ogni livello deve avere livelli accettabili di affidabilità.

Diagramma che mostra i livelli e le attività incrociate in un'architettura IoT.

Livello dispositivo e gateway

Come parte della soluzione IoT complessiva, progettare i dispositivi per soddisfare i requisiti di attività e disponibilità end-to-end della soluzione. I dispositivi e i gateway sono disponibili in molti moduli. I dispositivi E i gateway IoT possono eseguire la raccolta dati, il controllo di supervisione e l'analisi perimetrale.

  • La raccolta dati connette i dispositivi ai sensori o li sottoscrive ai dati di telemetria dai sistemi downstream e esegue il push dei dati raccolti nel cloud. La progettazione della soluzione IoT deve garantire la gestione affidabile dei dispositivi e le comunicazioni affidabili dal dispositivo al cloud.

  • I dispositivi che forniscono il controllo di supervisione non solo raccogliere i dati da inviare al cloud, ma anche eseguire azioni in base a tali dati. I dispositivi inviano i dati ai computer o all'ambiente per eseguire azioni di supervisione. L'affidabilità delle applicazioni di controllo di supervisione è fondamentale.

Progettazione del dispositivo

Progettare e selezionare dispositivi IoT per funzionare in modo affidabile nelle condizioni operative previste durante la durata prevista. Un dispositivo affidabile deve eseguire in base alle specifiche hardware e software e qualsiasi errore deve essere rilevato e gestito tramite mitigazione, riparazione o sostituzione. Progettare i dispositivi per l'affidabilità, ma anche pianificare gli errori.

Ciclo di vita del dispositivo

La durata del servizio limitata influisce sull'affidabilità della soluzione. Valutare le conseguenze dell'errore del dispositivo nella soluzione e definire una strategia del ciclo di vita del dispositivo in base ai requisiti della soluzione.

La valutazione dell'impatto sugli errori del dispositivo include:

  • Gravità, ad esempio singoli punti di errori.
  • Probabilità, ad esempio tempo medio tra errori.
  • Rilevabilità, ad esempio modalità di errore ed analisi degli effetti.
  • Periodo di inattività accettabile.

Il tempo di inattività operativo accettabile determina la velocità e l'estensione della manutenzione del dispositivo. La disponibilità o la longevità del dispositivo e della fornitura di parte è una considerazione importante per il ciclo di vita del dispositivo.

Il design più modulare, più facile è scambiare parti del sistema, soprattutto se alcune parti diventano obsolete rispetto ad altre. Le soluzioni alternative o multi-origine dei componenti e delle catene di fornitura di moduli sono fondamentali per soluzioni affidabili.

Requisiti dell'ambiente

Le condizioni in cui un dispositivo opera influisce sulla sua affidabilità. Definire i requisiti ambientali e usare i dispositivi con specifiche di funzionalità appropriate. Queste specifiche includono parametri come l'intervallo di temperatura operativa, l'umidità, la classificazione IP (gress protection), l'immunità elettromagnetica (EMI) e l'immunità degli shock e delle vibrazioni.

Profilo operativo

Lo stress delle prestazioni influisce sul comportamento operativo dei dispositivi e quindi sulla loro affidabilità. Definire i profili operativi che stimano il comportamento durante la durata del dispositivo e valutare di conseguenza l'affidabilità del dispositivo. Tali profili includono modalità di operazione, ad esempio la trasmissione wireless o le modalità a bassa potenza, e le condizioni ambientali, ad esempio la temperatura, nel corso della durata del dispositivo.

In condizioni operative normali, il dispositivo e il software devono essere eseguiti in modo sicuro all'interno dei profili operativi specificati. I dispositivi devono essere in grado di eseguire il servizio ed elaborare tutti i sensori esterni e l'elaborazione dei dati necessari per la soluzione. Evitare l'esecuzione al limite delle funzionalità del dispositivo.

Normative e standard

I dispositivi per settori specifici sono soggetti a normative e standard applicabili. Definire normative e standard e assicurarsi che i dispositivi soddisfino i requisiti di conformità e conformità. Le normative includono la certificazione e il contrassegno, ad esempio FCC o CE. Gli standard includono applicazioni del settore o dell'agenzia, ad esempio ATEX e MIL-SPEC, e conformità alla sicurezza, ad esempio IEC 61508.

Livello di modellazione e gestione dei dispositivi

I servizi cloud forniscono a ogni dispositivo un'identità e gestiscono i dispositivi su larga scala. Il cloud è spesso il punto di ingresso dei dati finale per tutti i messaggi che passano dai dispositivi. Nelle soluzioni IoT i servizi cloud devono fornire affidabilità per i dispositivi IoT per integrare e trasmettere dati.

Le condizioni di connettività dei dispositivi, tra cui upstream al cloud e downstream alle reti locali, devono essere parte della progettazione dell'affidabilità della soluzione IoT. Valutare il potenziale effetto dell'interruzione o dell'interferenza della connettività e definire di conseguenza una strategia di connettività.

La strategia di connettività deve includere robustezza, ad esempio funzionalità di fallback e gestione della disconnessione e backup del buffering per mitigare la dipendenza cloud per funzioni critiche o di sicurezza.

La progettazione, la gestione degli errori e le procedure di monitoraggio seguenti sono correlate alla connettività.

Progettazione della connettività

Una soluzione IoT deve abilitare il flusso di informazioni tra dispositivi connessi intermittentmente e servizi basati sul cloud. Assicurarsi che i dispositivi IoT possano funzionare in modo efficiente con connettività intermittente al cloud.

Le procedure consigliate includono le raccomandazioni seguenti:

  • Implementare la logica di ripetizione dei tentativi e backoff nel software del dispositivo.
  • Sincronizzare lo stato del dispositivo con il cloud.
  • Assicurarsi di poter archiviare i dati nei dispositivi se la soluzione non può tollerare la perdita di dati.
  • Usare il campionamento dei dati e le simulazioni per misurare la capacità di rete e le baseline dei requisiti di archiviazione.

Implementazione della connettività

Gli SDK dei dispositivi IoT di Azure forniscono librerie client che è possibile usare nei dispositivi o nei gateway per semplificare la connettività con i servizi IoT di Azure. È possibile usare gli SDK per instrumentare i client di dispositivi IoT che:

  • Connettersi al cloud.
  • Offrire un'esperienza di sviluppo client coerente tra piattaforme diverse.
  • Semplificare le attività di connettività comuni astraendo i dettagli dei protocolli sottostanti e dei modelli di elaborazione dei messaggi, ad esempio il backoff esponenziale con la logica di jitter e ripetizione dei tentativi.

Monitoraggio connettività

I problemi di connettività per i dispositivi IoT possono essere difficili da risolvere a causa dei molti possibili punti di errore. La logica dell'applicazione, le reti fisiche, i protocolli, l'hardware, la hub IoT di Azure e altri servizi cloud possono avere problemi.

La capacità di rilevare e individuare l'origine di un problema è fondamentale. Tuttavia, una soluzione IoT su larga scala potrebbe avere migliaia di dispositivi, quindi non è pratica controllare manualmente i singoli dispositivi. Monitoraggio di Azure e Griglia di eventi di Azure consentono di diagnosticare i problemi di connettività in hub IoT.

Risorse di connettività

Livello di inserimento e comunicazione

Il livello di inserimento e comunicazione IoT copre quote e limiti del servizio, capacità, limitazione e scalabilità automatica.

Progettazione della capacità ridondante

Quando si pianificano soglie e avvisi, considerare la latenza tra il rilevamento e l'azione eseguita. Assicurarsi che il sistema e gli operatori abbiano tempo sufficiente per rispondere alle richieste di modifica. In caso contrario, è possibile rilevare una necessità di aumentare il numero di unità, ma il sistema potrebbe non riuscire perdendo messaggi prima che l'aumento possa essere effettivo.

Pianificazione della quota di servizio

Come per tutti i servizi della piattaforma, hub IoT e il servizio device provisioning (DPS) hub IoT applicano quote e limitazioni per determinate operazioni, in modo che Azure possa offrire livelli di servizio e costi prevedibili per i propri servizi. Le quote e le limitazioni sono associate al livello di servizio e al numero di unità distribuite, in modo da poter progettare la soluzione con il numero corretto di risorse. Esaminare le quote e le limitazioni in anticipo e progettare le risorse hub IoT e DPS di conseguenza.

Benchmark su scala di produzione

Poiché il numero di dispositivi o volumi di dati aumenta, il gateway cloud deve ridimensionare per supportare il flusso di dati senza interruzioni. A causa della natura distribuita delle soluzioni IoT, del numero di dispositivi e del volume di dati, è importante stabilire benchmark di scalabilità per la soluzione complessiva. Questi benchmark consentono di pianificare i rischi di capacità. Usare il simulatore di telemetria del dispositivo IoT di Azure per simulare i volumi di scalabilità di produzione.

Scalabilità automatica per modificare dinamicamente le quote

Un vantaggio dell'uso dei componenti PaaS (Platform as a Service) è la possibilità di aumentare e ridurre con poco sforzo in base alle proprie esigenze. Per fornire il minor costo e il lavoro operativo, è consigliabile implementare un sistema automatizzato per aumentare e ridurre le risorse con le diverse esigenze della soluzione.

Gestione delle quote e della limitazione

Per garantire l'affidabilità della soluzione, monitorare continuamente l'utilizzo delle risorse rispetto alle quote e alle limitazioni per rilevare gli aumenti di utilizzo che indicano la necessità di ridimensionare. A seconda dei requisiti aziendali, è possibile monitorare continuamente l'utilizzo delle risorse e avvisare l'operatore quando vengono soddisfatte le soglie o implementare un sistema automatizzato per la scalabilità automatica.

Capacità e scalabilità delle risorse

Livello di trasporto

Per connettersi al servizio cloud per i dati, il controllo e la gestione, i dispositivi devono accedere a una rete. A seconda del tipo di soluzione IoT, l'affidabilità della connettività potrebbe essere responsabilità o quella del provider di servizi di rete. Le reti potrebbero avere problemi di connettività intermittenti e i dispositivi devono gestire di conseguenza il loro comportamento.

Livello DevOps

Una soluzione IoT aziendale deve fornire una strategia per gli operatori per gestire il sistema. Per affrontare l'affidabilità, la gestione e le operazioni IoT devono usare i processi DevOps per gestire gli aggiornamenti, l'osservabilità e il monitoraggio e l'implementazione di HA/RIPRISTINO di emergenza.

Aggiornamenti

L'aspetto del dispositivo delle soluzioni IoT presenta sfide rispetto alle soluzioni basate sul cloud. Ad esempio, è necessario aggiornare continuamente i dispositivi per risolvere le vulnerabilità e le modifiche dell'applicazione.

A causa della natura distribuita delle soluzioni IoT, è importante adottare criteri sicuri e sicuri per la distribuzione degli aggiornamenti. Gli operatori IoT richiedono strumenti e procedure di aggiornamento semplici e affidabili.

Una soluzione di aggiornamento del dispositivo deve supportare:

  • Implementazione graduale dell'aggiornamento tramite i controlli di raggruppamento e pianificazione dei dispositivi.
  • Supporto per gli aggiornamenti dei dispositivi A/B resilienti per il rollback facile.
  • Strumenti di gestione e creazione di report dettagliati.
  • Ottimizzazione della rete in base alla larghezza di banda disponibile.

Aggiornamento dei dispositivi per hub IoT è un servizio che consente aggiornamenti IoT (IoT) sicuri, sicuri e affidabili. Aggiornamento del dispositivo per hub IoT può raggruppare i dispositivi e specificare quali dispositivi devono ricevere un aggiornamento. Gli operatori possono visualizzare lo stato delle distribuzioni di aggiornamenti e se ogni dispositivo applica correttamente gli aggiornamenti necessari.

Se un aggiornamento ha esito negativo, l'aggiornamento del dispositivo consente agli operatori di identificare i dispositivi che non sono riusciti e visualizzare i dettagli dell'errore. La possibilità di identificare i dispositivi non riusciti può eliminare ore di tentativo di individuare manualmente l'origine degli errori.

L'aggiornamento dei dispositivi monitora lo stato delle distribuzioni e degli aggiornamenti dei dispositivi e segnala il numero di dispositivi conformi all'aggiornamento compatibile con la versione più elevata disponibile.

Osservabilità e monitoraggio

Per gestire l'affidabilità complessiva della soluzione e definire le procedure di avviso, è necessario monitorare ogni componente della soluzione IoT. Tutti i servizi IoT di Azure pubblicano le metriche che descrivono l'integrità e la disponibilità dei servizi. Per stabilire l'osservabilità end-to-end, considerare anche le metriche necessarie sul lato dispositivo. Usare queste metriche come parte del monitoraggio complessivo dell'affidabilità della soluzione.

Il monitoraggio e la diagnostica delle applicazioni IoT sono cruciali per la disponibilità e la resilienza. Se si verifica un errore, è necessario sapere che non è riuscito, quando non è riuscito e perché. Monitorando l'operazione di un'applicazione E dei dispositivi IoT in uno stato integro, è possibile rilevare e risolvere i problemi di affidabilità.

Per attenuare i problemi che influiscono sull'affidabilità dell'applicazione IoT, è necessario essere in grado di acquisire log e segnali che consentono di rilevare i problemi nelle operazioni end-to-end. Usare la registrazione e il monitoraggio per determinare se una soluzione IoT funziona come previsto e consente di risolvere i problemi relativi ai componenti della soluzione.

Le azioni seguenti supportano l'osservabilità per le soluzioni IoT:

  • Stabilire un meccanismo per raccogliere e analizzare le metriche e gli avvisi delle prestazioni.
  • Configurare dispositivi, servizi cloud e applicazioni per raccogliere e connettersi con Monitoraggio di Azure.
  • Usare dashboard e avvisi in tempo reale per monitorare i servizi back-end di Azure.
  • Definire ruoli e responsabilità per il monitoraggio e l'azione sugli eventi e sugli avvisi. Per altre informazioni, vedere Ruoli, responsabilità e autorizzazioni.
  • Implementare il monitoraggio continuo.

Monitoraggio di Azure

Monitoraggio di Azure è la piattaforma di monitoraggio e visualizzazione consigliata per le soluzioni Azure IoT. È possibile configurare dispositivi, servizi cloud e applicazioni, indipendentemente dal percorso di distribuzione, per eseguire il push dei messaggi di log direttamente o tramite connettori predefiniti in Monitoraggio di Azure.

  • Usare l'integrazione predefinita delle metriche di Monitoraggio di Azure per il monitoraggio remoto dei dispositivi IoT Edge. Per abilitare questa funzionalità nei dispositivi, aggiungere il modulo di raccolta metriche di IoT Edge alla distribuzione e configurarlo per raccogliere e trasportare le metriche dei moduli in Monitoraggio di Azure.

  • Con Monitoraggio di Azure è possibile monitorare lo stato dell'ambiente hub IoT, assicurarsi che sia in esecuzione correttamente e verificare che i dispositivi non siano limitati o che si verifichino problemi di connessione. hub IoT fornisce metriche di utilizzo, ad esempio il numero di messaggi usati e il numero di dispositivi connessi. È possibile inoltrare questi dati a Monitoraggio di Azure per l'analisi e per avvisare altri servizi.

  • Se la soluzione usa Azure IoT Central, è possibile usare le metriche IoT Central per valutare l'integrità dei dispositivi connessi e le esportazioni di dati attivi. Le applicazioni IoT Central abilitano le metriche per impostazione predefinita, che è possibile accedere dall'portale di Azure. Monitoraggio di Azure espone e offre diversi modi per interagire con queste metriche.

  • Monitoraggio di Azure offre analisi log personalizzate per facilitare la scomposizione di eventi e record in singoli campi per l'indicizzazione e la ricerca.

  • Implementare dashboard in tempo reale e avvisi di Monitoraggio di Azure per monitorare i servizi back-end di Azure. Gli avvisi notificano in modo proattivo le condizioni specifiche nei dati di monitoraggio, in modo da poter identificare e risolvere i problemi prima che i clienti li riscontrino. È possibile impostare avvisi su metriche, log e log attività.

Application Insights è una funzionalità di Monitoraggio di Azure che fornisce la gestione estendibile delle prestazioni delle applicazioni e il monitoraggio per le app Web attive. Se la soluzione IoT usa applicazioni personalizzate Servizio app di Azure, servizio Azure Kubernetes o Funzioni di Azure, è possibile usare Application Insights per il monitoraggio e l'analisi delle app.

Application Insights può:

  • Rilevare automaticamente anomalie nelle prestazioni.
  • Diagnosticare i problemi con potenti strumenti di analisi.
  • Mostra cosa fanno effettivamente gli utenti con le tue app.
  • Aiuta a migliorare continuamente le prestazioni e l'usabilità delle app.

Monitoraggio continuo

L'integrazione continua e la distribuzione continua (CI/CD) è una procedura DevOps che offre software in modo più rapido e affidabile per offrire valore continuo agli utenti. Il monitoraggio continuo (CM) è un concetto simile che incorpora il monitoraggio in tutte le fasi e i componenti di un ciclo DevOps.

Cm garantisce continuamente l'integrità, le prestazioni e l'affidabilità delle app e dell'infrastruttura man mano che passano attraverso lo sviluppo, la produzione e il rilascio ai clienti. Per altre informazioni, vedere:

Monitoraggio delle risorse

Disponibilità elevata/ripristino di emergenza per componenti critici

Durante la progettazione e la compilazione della soluzione IoT, è necessario soddisfare il contratto di servizio per il ripristino degli errori nello stack di soluzioni. Il contratto di servizio deve guidare l'utente in merito ai componenti critici del sistema che richiedono disponibilità elevata/ripristino di emergenza. Esistono più approcci, dalla ridondanza nello stack di soluzioni IoT alla ridondanza per livelli specifici. Il costo è anche una considerazione importante da valutare rispetto all'importanza di soddisfare i contratti di servizio.

  • I servizi Azure IoT hanno definito obiettivi di tempo di attività e disponibilità. Esaminare i contratti di servizio per i servizi Azure IoT che fanno parte della soluzione per verificare se soddisfano gli obiettivi di attività. Ad esempio, hub IoT di Azure ha un contratto di servizio del 99,9%, il che significa che è necessario pianificare per 1 minuto e 36 secondi di potenziale tempo di inattività al giorno. L'SDK di hub IoT di Azure offre logica configurabile predefinita per gestire i tentativi e il backoff.

  • Prendere in considerazione l'interruzione degli obiettivi di attività in due categorie: gestione dei dispositivi e operazioni di inserimento dati. Ad esempio, potrebbe essere fondamentale che un dispositivo invii correttamente i dati a un hub IoT, anche se i servizi di gestione dei dispositivi non sono disponibili. Per altre informazioni, vedere le funzionalità di affidabilità hub IoT di Azure SDK.

  • Prendere in considerazione l'uso di hardware ridondante per sensori, alimentazione e archiviazione. L'hardware ridondante consente ai dispositivi di funzionare se non è disponibile un componente critico. L'hardware può anche essere utile per i problemi di connettività. Ad esempio, è possibile usare un approccio di archiviazione e inoltro per i dati quando la connettività non è disponibile. Questa funzionalità è incorporata in Azure IoT Edge.

  • I dispositivi devono anche essere in grado di gestire interruzioni del cloud. L'associazione di aree di Azure offre una strategia di disponibilità elevata/ripristino di emergenza per hub IoT che soddisfa molti requisiti del contratto di servizio. Se l'associazione di aree non è sufficiente, prendere in considerazione l'implementazione di un hub IoT secondario. È anche possibile usare dps per evitare configurazioni hardcoded hub IoT nei dispositivi. Se l'hub IoT primario diventa inattivo, dps può assegnare i dispositivi a un hub diverso.

  • Prendere in considerazione l'implementazione di un modello di messaggio heartbeat per i dispositivi che si prevede siano online nella maggior parte dei casi. Questo modello usa una route di hub IoT personalizzata con Analisi di flusso di Azure, App per la logica di Azure o Funzioni di Azure per determinare se un heartbeat non è riuscito. È possibile usare l'heartbeat per definire gli avvisi di Monitoraggio di Azure che esecuno azioni in base alle esigenze.

Risorse di disponibilità elevata/ripristino di emergenza

Passaggi successivi