Come scegliere una piattaforma cloud per l’IoT
L’Internet of Things (IoT) è attualmente uno dei concetti più caldi nel mondo del computing. Le piattaforme cloud che supportano IoT possono persino superare l’IoT nella scala dell’hype. Tuttavia, entrambi hanno applicazioni reali e potrebbero diventare importanti per la vostra azienda. In questo articolo definiamo le piattaforme IoT e cloud IoT , senza troppi dettagli tecnici, facciamo una panoramica delle caratteristiche che deve avere una piattaforma IoT in cloud e come sceglierne una.
La spiegazione semplice dell’IoT è che si tratta di oggetti fisici connessi a internet. Questi oggetti possono avere sensori che misurano vari parametri e inviano i loro dati tramite internet, in genere a un server remoto o “periferico” situato nella stessa area geografica. Gli oggetti possono anche ricevere indicazioni, sempre via internet, ed eseguire delle azioni in base ad esse. Generalmente, gli oggetti fisici che compongono l’IoT possono sia inviare misurazioni che ricevere istruzioni.
Per esempio, un sensore “intelligente” di umidità del suolo, installato in un campo agricolo e collegato a internet, può riportare periodicamente le sue letture. Quando il terreno è troppo asciutto si apre una valvola dell’acqua connessa a internet, quando l’umidità del suolo è adeguata, la valvola si chiude.
Il sensore di umidità e la valvola dell’acqua possono essere collegati allo stesso dispositivo o nodo “edge computing” che comunica con internet o essere collegati a nodi diversi, poiché è probabile che per un grande terreno vengano utilizzati molti sensori di umidità del suolo, ma un unico sistema di irrigazione centralizzato.
In che modo l’IoT si collega al cloud?
“Internet” non è un endpoint, ovviamente, ma un insieme di reti interconnesse che trasmettono dati. Per l’IoT, gli endpoint remoti si trovano spesso in un server in cloud anziché in un singolo server all’interno di un data center privato. L’implementazione in un cloud non è strettamente necessaria se l’obiettivo è misurare l’umidità del suolo in diversi punti, ma può essere molto utile.
Supponiamo che i sensori misurino non solo l’umidità del suolo, ma anche la sua temperatura e la temperatura e l’umidità dell’aria. Supponiamo che il server raccolga dati da migliaia di sensori e legga anche un feed di previsioni dal servizio meteorologico. L’esecuzione del server in un cloud consente di convogliare tutti i dati nello storage in cloud e utilizzarli per elaborare una previsione di apprendimento automatico per il flusso d’acqua ottimale da utilizzare. Il modello potrebbe essere sofisticato e scalabile secondo le esigenze dell’azienda che lo usa.
Inoltre, l’esecuzione in cloud offre vantaggi economici. Se i report dei sensori arrivano una volta ogni ora, il server non deve essere attivo per il resto dell’ora. In una configurazione cloud “serverless”, i dati in arrivo attivano una funzione che archivia i dati, dopo di che libera le risorse di elaborazione. Dopo un certo intervallo di tempo si attiva un’altra funzione che aggrega ed elabora i nuovi dati per modificare il flusso dell’acqua di irrigazione, se necessario. Eseguito il compito, anche questa funzione libera le risorse di calcolo.
Feedback IoT locali e remoti
Nel caso del flusso di irrigazione, il sistema funzionerà comunque se il tempo di risposta del server cloud è di un’ora. Altri sistemi sono molto meno tolleranti al ritardo.
Per esempio, consideriamo un’auto a guida autonoma: deve osservare costantemente la strada, identificare gli ostacoli e rilevare la sua posizione. Può inviare costantemente i suoi dati al cloud, ma non può dipendere da un server remoto per regolare acceleratore, freni o sterzo. Tutto ciò deve essere fatto localmente.
Questo è un presupposto essenziale dei sistemi di controllo: spingere i circuiti di feedback al livello più basso possibile. Un supervisore remoto può modificare la destinazione o il percorso da seguire, ma l’auto stessa deve gestire tutte le azioni sensibili al tempo di risposta.
Requisiti essenziali per l’IoT in cloud
Una piattaforma cloud per l’IoT deve monitorare endpoint IoT e flussi di eventi, analizzare i dati ai margini della rete e nel cloud e consentire lo sviluppo e la distribuzione delle applicazioni. Queste sono le funzioni essenziali richieste praticamente per qualsiasi implementazione IoT.
Per consentire l’analisi dei dati e lo sviluppo di applicazioni in cloud, la piattaforma IoT deve accedere allo storage cloud. Per i dispositivi e i veicoli IoT industriali, possono essere memorizzati molti dati, che saranno filtrati o aggregati per scopi di analisi a lungo termine. L’IoT industriale può anche presentare una sfida in termini di conversioni di rete e di protocollo: i controller programmabili industriali vecchio stile non erano realizzati per Ethernet e TCP/IP.
Un’altra tessera del puzzle è il trasferimento dei dati dai dispositivi periferici alla piattaforma cloud. Per le applicazioni indoor è spesso possibile utilizzare reti Ethernet cablate o Wi-Fi. Per applicazioni esterne, come lo scenario agricolo, l’uso dei dati cellulari è comune, con piani cellulari M2M (machine-to-machine) piuttosto che piani di telefonia cellulare molto più costosi.
I servizi di connettività IoT gestiti possono aiutare in questo senso. Alcuni di questi servizi riguardano principalmente la gestione di schede SIM e dati correlati; piattaforme di connettività IoT più ampie si occupano anche di sistemi operativi e agenti dei dispositivi periferici. Tuttavia fate attenzione: alcuni provider consolidati di servizi M2M hanno aggiunto “IoT” alla loro offerta, ma senza aggiungere reali funzionalità IoT.
Considerazioni sulla piattaforma IoT
Prima di scegliere una piattaforma cloud per l’IoT è necessario identificare gli obiettivi aziendali e delineare alcune architetture di monitoraggio, analisi, controllo e applicazione che potrebbero soddisfarli. E’ importante valutare l’esperienza utente, i dati e le decisioni aziendali del progetto prima di scegliere la tecnologia.
Cercate di evitare la progettazione di un dispositivo, sistema operativo, gateway, piattaforma edge, rete, protocollo di comunicazione, piattaforma cloud specifici. Esaminate prima lo scenario più ampio e le funzionalità più importanti per la vostra applicazione e scegliete di conseguenza la piattaforma che risponde meglio alle vostre esigenze. In altre parole, si tratta di un processo.
I costi del cloud IoT possono essere difficili da prevedere e facili da sottovalutare. Parte del problema è che i prezzi del cloud sono intrinsecamente complicati, e spesso l’unico modo per sapere davvero quanto costa un’applicazione cloud è eseguirla per un mese e guardare il conto. Un’altra parte del problema è che le piattaforme cloud IoT offrono generalmente uno sconto iniziale. Se fate affidamento sui prezzi iniziali, potreste avere una brutta sorpresa quando i prezzi salgono. Infine, è facile trascurare il costo dell’archiviazione dei dati ed è difficile implementare una strategia a lungo termine per scartare i dati più vecchi e non essenziali.
Un’altra parte difficile del processo è valutare le competenze disponibili in azienda. Avete esperienza nella gestione di dispositivi e sensori? In protocolli e reti di comunicazione? Nell’architettura, operazioni e gestione delle applicazioni cloud? Il vostro staff è in grado di gestire lo sviluppo di una applicazione IoT? E’ necessario assumere nuovo personale? Ci sono professionisti con le giuste competenze?
Tali valutazioni influiscono sulla scelta della piattaforma più adatta alle esigenze. Alcuni fornitori offrono piattaforme robuste, quasi complete, facilmente personalizzabili in base alle esigenze dell’applicazione. Altri forniscono alcuni degli elementi di cui avete bisogno, ma richiedono un lavoro di integrazione e personalizzazione che può essere svolto internamente o da consulenti esterni.
Va sottolineato anche il valore di un “proof of concept” per la prima implementazione IoT cloud. Come qualsiasi altro progetto che coinvolge lo sviluppo di software, è necessario mettere in conto il fallimento del primo tentativo, in modo da imparare dai propri errori e gestirlo correttamente la volta successiva.