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 seguenti:

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 è collegata a un bilanciatore del carico di rete proxy esterno per distribuire il traffico dai dispositivi edge. Ulteriori applicazioni IoT possono connettersi alla piattaforma IoT tramite Pub/Sub o Connettore Dataflow MQTT.

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
  • Registry del dispositivo
  • Gestione degli aggiornamenti del dispositivo

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à nell'IoT in quanto non esiste un'applicazione di 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 per le funzionalità del protocollo MQTT più avanzate, questo approccio comporta una minore flessibilità e funzionalità per il trasporto dei 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 mostrato nell'architettura di esempio in questo documento. Questo intermediario potrebbe essere uno di i broker open source esistenti o l'implementazione di un broker proprietario. Un Il broker MQTT fornisce la funzionalità MQTT bidirezionale completa descritta in precedenza, ma un broker a tutto tondo 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 dei 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 funzionamento di una piattaforma IoT. I metodi di autenticazione supportati dallo strumento variano notevolmente tra le applicazioni e i fattori di forma. È 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 fornisce servizi integrati per gestire l'identità e le credenziali dei dispositivi. La maggior parte delle piattaforme IoT utilizza il client X.509 autenticazione mediante certificati per autenticazione, autenticazione basata su token JWT (spesso combinato con OAuth 2.0) e l'autenticazione di 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 JWT o nome utente e password autenticazione, è importante crittografare la connessione di rete separatamente all'autenticazione mTLS, perché una connessione crittografata richiesta da uno di questi metodi di autenticazione. Certificato X.509 L'autenticazione, invece, consuma più risorse sul dispositivo connesso, ma viene generalmente utilizzato in una connessione criptata con mTLS e quindi fornisce 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, vedi 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 nei attraverso la piattaforma attraverso uno degli endpoint di importazione, come MQTT. Se una piattaforma IoT multiprotocollo, i dispositivi possono comunicare utilizzando protocolli supportati.

Consigliamo alla tua organizzazione di utilizzare una piattaforma IoT con quanto segue: funzionalità:

  • Aggiornamenti del software e del sistema: la distribuzione e il rollback di aggiornamenti di firmware, software e applicazioni sui dispositivi connessi. Questi aggiornamenti di solito comportano anche l'archiviazione e la gestione degli aggiornamenti stessi.
  • Aggiornamenti della configurazione: pubblicazione, archiviazione e rollback dei aggiornamenti alla configurazione delle applicazioni di cui è stato eseguito il deployment sui dispositivi connessi.
  • Creazione e gestione delle credenziali:la creazione di un nuovo dispositivo. le credenziali, la relativa consegna al dispositivo connesso controllo dei tentativi di accesso e dell'attività al dispositivo, nonché revoca compromesse o scadute al momento giusto.
  • 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 le proprie funzionalità di archiviazione e trasporto dei dati interni che ti consentono di connetterti ai carichi di lavoro e alle applicazioni di backend. AMQP, RabbitMQ e Kafka vengono comunemente utilizzati per fornire il trasporto interno 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 supporta MQTT, l'applicazione può connettersi al broker come sottoscrittore. 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 seguenti sezioni descrivono scenari di esempio in cui una piattaforma IoT una scelta architetturale migliore rispetto a un broker MQTT autonomo o a una connessione diretta in Pub/Sub.

Gestione di elettrodomestici smart

Le applicazioni che gestiscono più appliance smart sono adatte a un ambiente IoT completamente gestita. Un esempio di questa applicazione è una piattaforma per gestire gli elettrodomestici da cucina come lavastoviglie e macchine da 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 degli asset

Per un'applicazione di logistica e monitoraggio delle risorse, un prodotto della piattaforma IoT offre funzionalità più complete di un broker MQTT di base, quindi è una scelta migliore per questo caso d'uso. Il monitoraggio dello stato e della posizione attuali e passati di un gran numero di asset dipende da un solido sistema di gestione delle identità e di un database dello stato dei dispositivi. 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 con l'asset corretto per l'analisi in qualsiasi applicazione di backend, quindi la completa gestione dei dispositivi fornita dalla piattaforma IoT è un'importante funzionalità.

Passaggi successivi