Architettura del prodotto della piattaforma IoT su Google Cloud

Last reviewed 2024-08-09 UTC

I prodotti della piattaforma IoT in genere forniscono una connettività di base per i dati MQTT e HTTPS. Ti consentono inoltre di eseguire il provisioning dei dispositivi e di eseguire operazioni di autenticazione, gestione, archiviazione e visualizzazione dei dati di telemetria, elaborazione dei dati e avvisi. Le organizzazioni spesso utilizzano piattaforme IoT quando un broker MQTT autonomo non sufficiente per un caso d'uso ed è necessario un prodotto della piattaforma IoT più completo. Un La piattaforma IoT fornisce un'interfaccia unificata per la gestione di ambienti raccolta di dispositivi. Questa interfaccia è importante per molte applicazioni per dispositivi connessi e rappresenta una differenza fondamentale tra una piattaforma IoT e un broker MQTT autonomo. Questo documento illustra le considerazioni architettoniche di base e Suggerimenti da seguire prima di eseguire il deployment di un prodotto della piattaforma IoT su Google Cloud.

Il presente documento fa parte di una serie di documenti che forniscono informazioni su IoT su Google Cloud. Gli altri documenti di questa serie includono quanto segue:

Il seguente diagramma mostra un'architettura di esempio con una piattaforma IoT generica di un prodotto in esecuzione su Google Cloud.

Un'architettura di piattaforma IoT generica (il flusso di eventi è spiegato nel testo che segue.

Come mostrato nel diagramma precedente, la piattaforma IoT esegue il deployment di un broker MQTT o endpoint per la connettività dei dispositivi. La piattaforma IoT è connessa a un bilanciatore del carico di rete proxy esterno per distribuire il traffico dai dispositivi periferici. Altre applicazioni IoT possono collegarsi alla piattaforma IoT tramite Pub/Sub o utilizzando il connettore MQTT di Dataflow.

La piattaforma IoT fornisce un insieme di servizi di gestione dei dispositivi. Come mostrato nel diagramma, questi servizi sono:

  • Archivio credenziali dispositivo
  • Motore delle regole
  • Autenticazione e autorizzazione del dispositivo
  • Gestione della configurazione del dispositivo
  • Registro dei dispositivi
  • Gestione degli aggiornamenti dei dispositivi

I prodotti delle piattaforme IoT generalmente includono anche servizi quali funzionalità, interfacce di sviluppo low-code, avvisi e notifiche e altre funzionalità di analisi.

Considerazioni e scelte sull'architettura

Le seguenti sezioni descrivono le scelte architetturali che puoi selezionare di un'architettura di prodotto di una piattaforma IoT e l'impatto di queste scelte.

Endpoint di importazione

La maggior parte delle applicazioni commerciali delle piattaforme IoT include un endpoint MQTT e di solito anche un endpoint HTTPS per l'importazione dati dai dispositivi connessi.

MQTT

Una piattaforma IoT implementa un endpoint MQTT in uno dei seguenti modi:

  • Un connettore tra MQTT e un altro servizio di messaggistica
  • Un broker MQTT che implementa la specifica MQTT completa

Quando valuti le piattaforme IoT commerciali, è importante sapere quale degli approcci precedenti è stato scelto dal fornitore per il prodotto, in modo da poter determinare le implicazioni per il tuo caso d'uso.

In alcuni casi, l'endpoint MQTT connette solo i client MQTT a un backend come Kafka o Pub/Sub. Questo tipo di endpoint di solito non implementa la specifica completa del protocollo MQTT e spesso non include funzionalità quali i livelli di QoS 1 e 2 o gli abbonamenti condivisi. Il vantaggio di questo approccio è che riduce la complessità della piattaforma IoT, in quanto non è presente un'applicazione broker MQTT separata. I costi operativi sono inferiori e la manutenzione è più semplice rispetto a una piattaforma che utilizza un broker MQTT distinto. Tuttavia, a causa del supporto ridotto del protocollo MQTT più avanzato, caratteristiche, con questo approccio ci sono meno flessibilità e funzionalità per il trasporto di messaggi MQTT rispetto a un broker MQTT autonomo che implementa la specifica MQTT completa.

Altre piattaforme IoT forniscono un broker MQTT completo come parte della piattaforma, come mostrata nell'architettura di esempio mostrata in questo documento. Questo intermediario potrebbe essere uno di i broker open source esistenti o l'implementazione di un broker proprietario. Un broker MQTT completo fornisce la funzionalità MQTT bidirezionale completa descritta in precedenza, ma un broker completo può aggiungere complessità e costi operativi alla gestione della piattaforma IoT.

HTTPS e altri protocolli supplementari

Oltre a MQTT, molte piattaforme IoT forniscono più endpoint per l'importazione dati rispetto a quelle mostrate nell'architettura principale descritta in questo documento.

HTTPS è un protocollo alternativo comune a MQTT per i casi d'uso di dispositivi connessi. Ha un overhead più elevato rispetto a MQTT, ma è supportato più ampiamente dai dispositivi mobili come gli smartphone, dai browser web e da altre applicazioni. È usato di frequente in alcune applicazioni dei dispositivi connessi ed è supportato piattaforme come Eclipse Hono e molti prodotti commerciali.

Molte applicazioni limitate sui dispositivi utilizzano (CoAP, definito in RFC 7252) come alternativa a MQTT. CoAP punta sui costi ridotti e sulle dimensioni ridotte per dispositivi e sensori incorporati. Molte applicazioni di piattaforme IoT commerciali forniscono anche un endpoint CoAP.

Bilanciamento del carico

Per saperne di più sulla scelta del bilanciatore del carico più adatto alle tue esigenze consulta la sezione sul bilanciamento del carico dell'architettura del broker MQTT standalone su Google Cloud perché queste considerazioni sono applicabili anche in questo caso.

Autenticazione del dispositivo e gestione delle credenziali

La gestione delle credenziali e dell'autenticazione dei dispositivi è una parte fondamentale del il funzionamento di una piattaforma IoT. I metodi di autenticazione supportati dai dispositivi connessi a internet variano notevolmente in base alle applicazioni e ai fattori di forma dei dispositivi. È importante selezionare il metodo di autenticazione appropriato per il caso d'uso target e implementare correttamente lo schema di autenticazione scelto.

A differenza di un broker MQTT autonomo, una piattaforma IoT offre servizi integrati gestire identità e credenziali dei dispositivi. La maggior parte delle piattaforme IoT utilizza l'autenticazione del certificato client X.509, l'autenticazione basata su token JWT (spesso combinata con OAuth 2.0) e l'autenticazione tramite nome utente e password. Alcune piattaforme supportano anche l'integrazione con un provider di autenticazione LDAP esterno.

Per alcuni dispositivi con limitazioni, l'autenticazione JWT o con nome utente e password potrebbe essere più appropriata, in quanto questi schemi richiedono meno risorse su un dispositivo connesso. Quando utilizzi l'autenticazione JWT o tramite nome utente e password, è importante criptare la connessione di rete distintamente dall'autenticazione mTLS, perché una connessione criptata non è obbligatoria per nessuno di questi metodi di autenticazione. L'autenticazione tramite certificato X.509, invece, consuma più risorse sul dispositivo connesso, ma in genere viene utilizzata in una connessione criptata con mTLS e pertanto offre un elevato livello di sicurezza.

Provisioning delle credenziali di autenticazione sul dispositivo periferico in fase di produzione anche il tempo è una parte importante dello schema di autenticazione dei dispositivi connessi, ma non rientra nell'ambito di questo documento.

Per ulteriori informazioni sull'autenticazione e sulla gestione delle credenziali, consulta Best practice per l'esecuzione di un backend IoT su Google Cloud.

Gestire i dispositivi connessi

In genere, i dispositivi connessi pubblicano eventi di telemetria e informazioni sullo stato sulla piattaforma tramite uno degli endpoint di importazione, ad esempio MQTT. Se utilizzi una piattaforma IoT multiprotocollo, i dispositivi possono comunicare utilizzando uno qualsiasi dei protocolli supportati.

Consigliamo alla tua organizzazione di utilizzare una piattaforma IoT con le seguenti funzionalità:

  • Aggiornamenti del software e del sistema: la distribuzione e il rollback di aggiornamenti di firmware, software e applicazioni sui dispositivi connessi. Questi aggiornamenti solitamente comportano anche lo spazio di archiviazione e la gestione degli aggiornamenti stessi.
  • Aggiornamenti della configurazione: il caricamento, lo stoccaggio e il rollback degli aggiornamenti alla configurazione delle applicazioni di cui è stato eseguito il deployment sui dispositivi connessi.
  • Creazione e gestione delle credenziali: creazione di nuove credenziali del dispositivo, invio di queste credenziali al dispositivo connesso, controllo delle attività e dei tentativi di accesso al dispositivo e revoca delle credenziali compromesse o scadute al momento opportuno.
  • Motore di regole ed elaborazione dei dati: definizione ed esecuzione di regole basate sui dati e di altri passaggi di elaborazione dei dati. Questa funzionalità spesso include un qualche tipo di interfaccia low-code per definire regole e pipeline di elaborazione dei dati.

Carichi di lavoro di backend

La maggior parte delle piattaforme IoT fornisce i propri servizi di archiviazione e trasporto interni dei dati per connetterti ai carichi di lavoro di backend diverse applicazioni. AMQP, RabbitMQ e Kafka vengono comunemente utilizzati per fornire servizi interni il trasporto dei dati. Tutti questi possono essere collegati a Pub/Sub utilizzando l'SDK Pub/Sub. Puoi anche utilizzare un sistema di database integrato come PostgreSQL per archiviare i dati nella piattaforma. In molti casi, la piattaforma IoT può essere configurato per l'utilizzo diretto di uno dei prodotti Cloud Storage, Cloud SQL, Firebase o BigQuery.

Se la piattaforma IoT dispone di un broker MQTT completo, anche le applicazioni di backend possono comunicare con i dispositivi utilizzando la funzionalità MQTT della piattaforma. Se l'applicazione supporta MQTT, può connettersi al broker come abbonato. Se non è presente il supporto MQTT, Apache Beam fornisce un driver MQTT, che consente l'integrazione bidirezionale con Dataflow e con altri implementazioni di Beam.

Casi d'uso

Le sezioni seguenti descrivono scenari di esempio in cui una piattaforma IoT è una scelta di architettura migliore di un broker MQTT autonomo o di una connessione diretta a Pub/Sub.

Gestione di smart appliance

Le applicazioni che gestiscono più elettrodomestici smart sono adatte a una piattaforma IoT. Un esempio di applicazione di questo tipo è una piattaforma per gestire la cucina come lavastoviglie e macchinetta del caffè. In genere, questi dispositivi si connettono a un'applicazione basata su cloud direttamente tramite Wi-Fi o tramite un gateway locale che utilizza Bluetooth Low Energy (BLE) o un altro protocollo locale. Le funzionalità di gestione di una piattaforma IoT sono importanti in questo caso, monitorare lo stato di ogni dispositivo, gestire gli aggiornamenti software e la sicurezza patch e l'acquisizione dell'attività del dispositivo per fornire informazioni critiche produttore e cliente. Queste funzionalità esulano dall'ambito MQTT di base. Per lo meno, un repository di informazioni sul dispositivo, un database dello stato del dispositivo, un datastore di telemetria e un'interfaccia di analisi sono tutti fondamentali per creare una piattaforma di elettrodomestici intelligenti di successo.

Logistica e monitoraggio delle risorse

Per un'applicazione per la logistica e il monitoraggio degli asset, un prodotto della piattaforma IoT offre una funzionalità più completa rispetto a un broker MQTT di base, perciò è una scelta migliore questo caso d'uso. Monitorare lo stato attuale e passato e la posizione di un Il parco risorse di asset dipende da un solido database dello stato dei dispositivi e da un'identità completamente gestito di Google. Quando vengono implementati, i nuovi asset devono essere collegati alla piattaforma con il minor numero di problemi possibile e successivamente monitorati durante tutto il loro ciclo di vita. In molti casi, l'applicazione raccoglie anche altre informazioni dei sensori sull'asset, ad esempio temperatura, umidità e pressione atmosferica locali oppure dati di posizionamento e accelerazione 3D per rilevare movimenti o cadute imprevisti. Tutti questi dati devono essere importati e associati all'asset corretto per l'analisi in qualsiasi applicazione di backend, pertanto la gestione completa dei dispositivi fornita dalla piattaforma IoT è una funzionalità importante.

Passaggi successivi