Vai al contenuto

Cos’è l’edge computing e quali differenze con il cloud computing

All’inizio c’erano i grandi computer. Nell’epoca di Unix, abbiamo imparato a collegarci a quel computer usando terminali poco intelligenti (non dotati di processori di calcolo) che non facevano altro attendere risposte da questi grandi computer. Poi arrivarono i personal computer, elaboratori dotati di CPU intelligente, dove i calcoli venivano svolti direttamente sul PC.

Al giorno d’oggi, siamo nell’era del Cloud Computing. Molti possiedono ancora personal computer, ma li usiamo principalmente per accedere a servizi centralizzati come Dropbox, Gmail, Office 365, etc. Nelle nostre case siamo ormai abituati a utilizzare dispositivi come Amazon Echo, Google Chromecast e Apple TV sono alimentati da contenuti e “intelligenza” che si trovano nel cloud, al contrario di quanto succedeva 15/20 anni fa con le enciclopedie racchiuse in DVD (come Encarta) dove tutto il sapere era contenuto all’interno dei dishi.

La cosa davvero sorprendente del cloud computing è che la maggior parte delle aziende al mondo si affida a pochi fornitori di cloud, per quanto riguarda l’infrastruttura, l’hosting, l’apprendimento automatico e la potenza di calcolo. Questi fornitori li conosciamo tutti: Amazon, Microsoft, Google e IBM. Basti pensare che Amazon, il più grande tra questi provider, nel 2017 possedeva il 47% del mercato.

Ma le cose stanno forse cambiando: dal Cloud Computing, si sta velocemente passando all’Edge Computing.

L’Edge Computing è già in uso tutt’intorno a noi: dai dispositivi “indossabili” come lo smartwatch, alle auto con guida autonoma, ai computer che analizzano il flusso del traffico. Altri esempi includono l’analisi della rete di utilità intelligente, il monitoraggio della sicurezza delle piattaforme petrolifere, l’ottimizzazione dei video in streaming e la gestione delle colture con i droni. Oggi, meno del 10% dei dati generati viene creato ed elaborato ai “margini”, ma, secondo Gartner.com, entro il 2025, crescerà al 75%.

Cos’è l’Edge Computing

Spiegare l’Edge Computing a un pubblico non tecnico può essere difficile, perchè non esiste una definizione ufficiale e perché questo tipo di elaborazione dei dati può avvenire in un molteplice numero di modi e configurazioni.

In parole povere diciamo che l’Edge Computing è la pratica di acquisire, elaborare e analizzare i dati vicino a dove vengono creati. Edge Computing riguarda l’elaborazione dei dati a livello locale mentre il Cloud Computing riguarda l’elaborazione dei dati in un data center o cloud pubblico.

Collocare le risorse di elaborazione più vicino all’utente o al dispositivo, ai margini della rete per l’appunto (edge), piuttosto che in un data center cloud iperscale che potrebbe trovarsi a migliaia di chilometri di distanza nel “nucleo” della rete, migliora i ritardi dovuti alla latenza e fornisce una maggiore elaborazione dei dati vicino alla fonte.

Un esempio reale di edge computing è l’uso della realtà virtuale e aumentata. La realtà virtuale e aumentata spesso soffrono di larghezza di banda insufficiente e latenza elevata. È comune per le persone che usano queste tecnologie trovare ritardi che peggiorano l’immersione nell’esperienza utente (UX). I videogiochi multiplayer ad esempio, implementano numerose tecniche per mitigare il ritardo vero e percepito tra sparare a qualcuno e sapere se e quando hai perso (perchè vieni ucciso…).

Il problema della Latenza

Se un Computer A deve chiedere qualcosa al Computer B che è posto dall’altra parte della terra, nonostante la velocità della luce, prima di poter fare qualsiasi cosa, l’utente del Computer A percepisce un ritardo nella risposta chiamato latenza. Questa latenza è dovuta alla trasmissione dei dati da un capo all’altro, nonostante i dati viaggino a velocità della luce. E non abbiamo considerato i ritardi dovuti ai calcoli che il computer B deve effettuare.

Un altro esempio di latenza: avete presente i brevi istanti di attesa dopo aver fatto clic su un link di una pagina web?

La latenza risulta ancora più evidente per gli assistenti vocali: in genere devono risolvere le richieste nel cloud e il tempo di andata e ritorno può essere molto evidente. Ad esempio Google Home (ma anche Alexa di Amazon) deve elaborare le tue parole, inviare una rappresentazione compressa al cloud, il cloud deve decomprimere quella rappresentazione ed elaborarla – il che potrebbe comportare l’uso di un’altra API da qualche parte, quindi il cloud invia i dati all’assistente vocale e finalmente l’utente può ascoltare la risposta. Amazon, per limitare i ritardi dovuti alla latenza, sta lavorando sui propri processori AI: più elaborazione si può eseguire sul dispositivo Echo, meno il dispositivo Echo deve fare affidamento sul cloud. Questo si traduce in risposte più rapide, meno costi di elaborazione sul server di Amazon e, presumibilmente, se il lavoro viene svolto in locale il rispetto della privacy ne potrebbe giovare, ammesso che Amazon non voglia ficcanasare deliberatamente…

Dove contano le prestazioni dell’Edge Computing?

Consideriamo il caso delle auto intelligenti come le Tesla. La distribuzione degli aggiornamenti del software di navigazione ai veicoli durante la notte è un’ottima cosa per il cloud computing. Ma la decisione di deviare a sinistra o a destra per evitare di investire un pedone che attraversa la strada probabilmente deve essere presa in modo indipendente dal cloud e deve essere presa da un computer di bordo: non è certo il momento di aspettare che un server in un data center remoto risponda di non dover centrare il pedone in pieno!

I sistemi di traffico in rete potrebbero svolgere un ruolo produttivo ai margini della rete, come i “nodi” collocati in semafori e torri cellulari. Ad esempio, se un guidatore sta guidando contromano lungo un’autostrada, un nodo potrebbe dire alle auto in prossimità di prendere alternative in modo da evitare un possibile scontro. L’uso di nodi in prossimità ridurrebbe la latenza e produrrebbe una risposta in pochi millisecondi.

Il concetto è che le cose che richiedono prestazioni in tempo reale tendono ad essere fatte in Edge computing. Se il nostro ipotetico sistema autonomo di traffico veicolare operasse su reti mobili 5G, la larghezza di banda e la bassa latenza di tale tecnologia di rete accelererebbero la connettività ai veicoli e ai sensori stradali. Ma una volta che il segnale raggiunge il nodo di rete mobile più vicino, che dovrebbe succedere? Vorremmo che i dati venissero elaborati proprio lì sulla strada – o il più vicino possibile – in modo che il messaggio di prevenzione delle collisioni possa arrivare alle auto mentre c’è ancora la possibilità di salvarsi la vita ed evitare lo scontro.

Quali sono i vantaggi dell’Edge Computing?

Tradizionalmente, il cloud computing si è concentrato sulla centralizzazione dei servizi in pochi grandi data center. La centralizzazione ha permesso alle risorse di essere altamente scalabili e condivise in modo più efficiente mantenendo il controllo e la sicurezza aziendale.

L’Edge computing risolve i casi d’uso che non possono essere adeguatamente affrontati da un approccio centralizzato tipico del cloud computing, spesso a causa di requisiti di rete o altri vincoli. Si concentra su diversi piccoli nodi di elaborazione che riducono i costi di rete, evitano vincoli di larghezza di banda, riducono i ritardi di trasmissione, limitano gli errori del servizio e controllano meglio il movimento di dati sensibili (si pensi alla proliferazione di segreti d’azienda o alle politiche di privacy). I tempi di caricamento sono ridotti a poche centinaia di millisecondi e i servizi online distribuiti più vicino agli utenti consentono funzionalità di cache sia dinamiche che statiche.

Per gli utenti finali ciò significa un’esperienza più rapida e coerente. Per aziende e fornitori di servizi ciò significa applicazioni a bassa latenza e ad alta disponibilità con monitoraggio in tempo reale.