Il Fog Computing nell'Internet of Things
Il Cloud Computing è stato ed è tutt'ora un trend tecnologico in forte sviluppo e ampiamente utilizzato per l'elaborazione, la condivisione e la distribuzione dei dati.
Negli anni ha mostrato però delle problematiche, in particolare relativamente ai tempi di latenza, ovvero il tempo che occorre ad un pacchetto dati di andare da un punto ad un altro della rete.
Questo problema è sentito soprattutto in quelle applicazioni dove si cercano tempi di latenza bassi per avere risultati real-time, come in molte applicazioni dell'Internet of Things.
Per questo si sono cercate nel tempo altre tipologie di soluzioni.
Tra queste troviamo il Fog Computing.
In questo articolo cerco di spiegare in modo semplice cosa sia questo tipo di tecnologia e come si differenzia con il Cloud Computing.
Che cosa è il fog computing?
Prima di tutto partiamo dalla traduzione di questo concetto: fog sta per nebbia che si contrappone a cloud che invece sta per nuvola.
Come la nebbia si trova più in basso rispetto alla nuvola, praticamente a livello del terreno, così il Fog Computing si trova ai livelli più bassi della rete rispetto al Cloud Computing.
Il Fog Computing si trova quindi più vicino alle cose che producono e agiscono sui dati, implementato su dispositivi aventi capacità di elaborazione, archiviazione e connettività di rete, chiamati Fog Node.
Rispetto al Cloud Computing, il Fog Computing si trova quindi tra i dispositivi terminali della rete (smartphone, tablet, smart devices etc.) e i tradizionali data center del Cloud computing.
Questa tecnologia permette attraverso l’elaborazione dei dati con i Fog Node di limitare l’enorme traffico dei dati generato, ad esempio, da dispositivi di Internet of Things.
Permettendo così di accedere e memorizzare sui data center remoti solo le informazioni finali.
In questo modo, si riducono i tempi di risposta per ottenere i risultati da utilizzare in base ai dati acquisiti e si risolvono a prescindere problemi di latenza dovuti alla instabilità o alla scarsa larghezza di banda delle connessioni internet.
Infatti il Cloud Computing si basa su data center centralizzati, così come centralizzati sono i server che gestiscono la potenza di calcolo e la memoria: un’architettura pensata per l’archiviazione e l’analisi approfondita più che per la gestione dei dati in tempo reale.
Questa centralizzazione significa che tutti i terminali e i sensori devono collegarsi al server del data center e mettersi in coda per attendere sia che venga presa in carico la domanda di elaborazione sia che le venga data una risposta.
Questi tempi di attesa vengono detti tempi di latenza e in un’architettura puramente cloud si allungano, non consentendo una reazione in tempo reale del sistema. Cosa che il Fog Computing può fare, grazie alla sua architettura.
Gli elementi che reggono questa infrastruttura sono Smart device o server di prossimità, quelli che abbiamo chiamato Fog Node, in grado di elaborare velocemente i dati in modo da consentire alle risorse che ne avevano fatto richiesta di proseguire anche in una elaborazione più complessa o di disporre di dati in real-time.
Quale è la differenza con l'edge computing?
Molti di voi avranno sentito parlare di Edge Computing ed io stesso in post precedenti io stesso ne ho parlato.
Spesso le due infrastrutture di rete vengono erroneamente confuse e considerate come sinonimi.
L’Edge e il Fog Computing sono entrambe tecnologie di prossimità, ossia basate sull’elaborazione dei dati vicino alla fonte di generazione. La differenza tra le due è determinata proprio dall’esatta collocazione di questa potenza di elaborazione.
Quale è dunque la differenza tra Fog computing ed Ddge computing?
Il Fog Computing è situato a livello della rete LAN, dove i dati provenienti dai sensori vengono elaborati da un Fog Node, mentre l’Edge Computing è integrato all’interno dei dispositivi terminali e delle piattaforme di elaborazione.
Inoltre, il Fog Computing, a differenza dell’Edge Computing, ha una struttura di rete più complessa composta da più livelli di Fog Node ed è capace di gestire oltre alle prestazioni di elaborazione anche: il networking, il controllo e l’immagazzinamento dei dati (archiviazione) in cloud.
Che cosa fa nella pratica?
Il Fog Computing è quindi un’architettura di rete distribuita che collega il Cloud alle sorgenti di dati generate dai dispositivi IoT.
È composta da nodi di calcolo detti Fog Node che costituiscono dei mini data center decentralizzati: i nodi Fog pre-elaborano i dati ricevuti dai dispositivi IoT e smistano le informazioni che devono salire sulla nuvola per ulteriori analisi e quelle che invece possono essere analizzate localmente, ai margini (“edge”, in inglese) della rete.
In pratica, il Fog Computing controlla le prestazioni, la latenza e l’efficienza della rete, scegliendo cosa gestire nei suoi Fog Node e cosa invece inoltrare direttamente al cloud, effettuando delle valutazioni in base allo stato della rete.
Nel suo algoritmo decisionale tiene conto di tutti quei fattori che possono influenzare il corretto funzionamento della rete o una eventuale congestione, come: la larghezza di banda dei collegamenti, la capacità di archiviazione, la gestione di eventi di guasto o perfino minacce alla sicurezza.
In base ai valori che rileva, decide cosa mandare ai margini della rete per avere dei risultati più velocemente e cosa invece può essere mandato al cloud per un'elaborazione più lenta.
Conclusioni: quali sono i vantaggi e gli svantaggi?
Concludo questo articolo specificando quali sono i vantaggi e gli svantaggi di questa architettura di rete.
I vantaggi dati da questa tecnologia si possono riassumere con la sigla SCALE: Security, Cognition, Agility,Latency and Efficiency.
- Security: Sicurezza aggiuntiva per garantire transazioni sicure e affidabili.
- Cognition: Consapevolezza degli obiettivi incentrati sul cliente per consentire l’autonomia.
- Agility: -innovazione rapida e scalabilità economica nell’ambito di una infrastruttura comune
- Latency: Elaborazione in tempo reale e controllo del sistema cyber-fisico.
- Efficiency: Pooling dinamico delle risorse locali inutilizzate da dispositivi degli utenti finali partecipanti.
Se, però, la riduzione del traffico dati verso il cloud consente un notevole risparmio sui costi, anche di banda, uno svantaggio del Fog Computing è che necessita di maggiori costi hardware, perché deve avere unità di calcolo supplementari per pre-elaborare e gestire localmente i dati.
Come tutte le tecnologie, necessita quindi di un'attenta analisi prima di essere applicata e la sua applicazione dipende dall'ambito dove si vuole operare.
Nel prossimo post parlerò di alcuni ambiti di utilizzo di questa architettura.