Vai al paragrafo

Cos'è un'applicazione sensibile alla latenza?

Copia URL

Non tutte le applicazioni o gli ambienti sono in grado di soddisfare i requisiti dei carichi di lavoro leggeri e largamente distribuiti. L'edge computing è un tipo di elaborazione dei dati che avviene il più vicino possibile agli utenti o alle sorgenti di dati, al di fuori dei tradizionali cloud o datacenter centralizzati, e che viene utilizzata in svariate tipologie di architetture infrastrutturali. Da un lato, abbiamo quello che IDC definisce "edge leggero": dispositivi portatili ed economici collocati all'edge estremo della rete, dotati di risorse di elaborazione limitate come nel caso dei dispositivi mobili per l'edge computing, ovvero smartphone e tablet palmari. All'altro estremo abbiamo l"edge pesante", termine con cui si definiscono, ad esempio, le configurazioni di datacenter/uffici remoti in cui sono presenti server di grandi dimensioni, numerosi utenti e grandi volumi di transazioni di dati.

Indipendentemente dalla tipologia, la tua infrastruttura dovrà tenere conto di alcune esigenze e aspettative comuni. Sostanzialmente, per soddisfare le esigenze dei clienti e gli accordi sul livello delle prestazioni (SLA) gli utenti e i dispositivi devono poter eseguire le transazioni in tempo reale. Ciò significa che le applicazioni eseguite in questi ambienti devono rispettare parametri prestazionali molto specifici. Tali applicazioni sono chiamate applicazioni sensibili alla latenza.

Prima di approfondire cosa siano le applicazioni sensibili alla latenza, è bene definire i concetti di base:

  • Latenza è il tempo che intercorre tra il verificarsi di un evento e la sua gestione da parte di un sistema; possiamo immaginarla come il tempo necessario per andare dal punto A al punto B.
  • Larghezza di banda (o larghezza di banda della rete) è la quantità di dati che possono essere trasportati in un determinato periodo di tempo; viene in genere misurata in megabit o gigabit al secondo. La quantità totale di dati trasportati in un determinato periodo di tempo è definita throughput. A volte, è necessario trovare un compromesso tra un'elevata larghezza di banda (o throughput elevato) e una bassa latenza, perché è molto difficile ottenerle entrambe simultaneamente.
  • I pacchettisono gli elementi dati che vengono trasportati.
  • L'instabilità è la variabilità della latenza che in genere si ha quando la coerenza delle comunicazioni di rete si perde o è lenta in modo intermittente.
  • In tempo reale indica un'operazione che viene eseguita entro un intervallo di tempo specifico e definito, tipicamente misurato in millisecondi o microsecondi. Spesso utilizzata con il senso di "estremamente veloce", in tempo reale è invece una definizione più deterministica: indica un'operazione la cui esecuzione viene garantita entro determinati vincoli temporali, a prescindere da altre operazioni o carichi. Nell'elaborazione in tempo reale ogni transazione è distinta, a differenza dell'elaborazione in batch che accorpa più transazioni.
  • Nodi all'edge indica qualsiasi dispositivo o server in cui è possibile eseguire l'edge computing.

La latenza è una metrica incentrata sul tempo e misura il tempo di risposta effettivo di un sistema rispetto al tempo di risposta previsto. In genere viene utilizzata per valutare le prestazioni di rete, hardware, firmware e sistema operativo, sia singolarmente che nel complesso per l'intero sistema. Per le applicazioni sensibili alla latenza, una bassa latenza è vantaggiosa perché implica un breve ritardo tra l'avvio dell'operazione e la risposta conseguente. Una latenza più alta è più lenta e, in funzione del tipo di dati, può implicare l'eliminazione o la perdita dei pacchetti. Infine, la latenza dovrebbe essere stabile, perché un'instabilità eccessiva rende la rete inaffidabile, anche se la latenza media sembra buona.

Un esempio di applicazione ubicata all'edge e sensibile alla latenza è un'autovettura autonoma basata su intelligenza artificiale. Il computer di bordo deve riconoscere in pochi millisecondi un eventuale pedone o altro oggetto che si trova sulla strada, ed elaborare un cambiamento di direzione. Elaborazione dei dati e intelligenza artificiale devono avvenire nel veicolo, insieme alla telemetria in tempo reale, che trasmette i dati a un gateway o datacenter. L'applicazione è chiaramente critica: una risposta lenta durante l'elaborazione di una transazione con carta di credito o di una video conferenza può essere frustrante per gli utenti finali, ma un errore durante la guida autonoma mette a rischio la vita. L'Institute of Electrical and Electronic Engineers (IEEE) evidenzia la dipendenza di numerose tecnologie moderne dalle applicazioni sensibili alla latenza.

In generale, le persone immaginano la latenza come un fattore di velocità, ma è più corretto considerarla un aspetto delle prestazioni complessive del sistema. La latenza viene osservata nel tempo che intercorre tra l'inizio di un evento e il suo completamento. A seconda dell'applicazione, questi limiti temporali possono essere flessibili. Il veicolo autonomo è un esempio di limite rigido, in cui l'elaborazione deve essere immediata per non incorrere in un errore critico del sistema.

Alcuni carichi di lavoro non richiedono una bassa latenza, ovvero consentono un tempo più lungo tra l'avvio e la risposta a un'operazione. Questi carichi di lavoro si definiscono asincroni, a significare che il tempo che intercorre tra avvio e completamento non sono osservabili o sono trascurabili per gli utenti. Una latenza elevata è accettabile ad esempio per i servizi email, perché il tempo che trascorre tra l'invio e la ricezione di un messaggio non è facilmente osservabile dal destinatario finale.

Gli effetti della latenza si sommano negli ambienti complessi, che si tratti di un singolo sistema o di più sistemi che interagiscono. Indipendentemente dal fatto che le operazioni vengano completate in sequenza o in parallelo, la latenza totale delle principali operazioni può incidere sull'efficienza del sistema nel suo complesso. In questi casi, non è la velocità il fattore primario ma la coerenza, che diventa la metrica principale. Viene definita latenza deterministica, a indicare che la latenza prevista per una determinata operazione (o la latenza totale per tutte le operazioni) è prevedibile e coerente. È un aspetto chiave quando più dispositivi devono essere sincronizzati, come nel caso dei radar ad allineamento di fase o delle apparecchiature per telecomunicazioni o di quelle manifatturiere.

TLDR Dal punto di vista funzionale, un'applicazione sensibile alla latenza è un'applicazione in tempo reale. In questi casi, una latenza alta o variabile incide negativamente sulle prestazioni dell'applicazione, e le operazioni devono avvenire entro un intervallo deterministico spesso misurato in microsecondi. Queste applicazioni sono anche dette applicazioni a bassa latenza.

È importante distinguere tra applicazioni sensibili alla latenza, in cui la latenza incide sulle prestazioni ma l'applicazione è comunque funzionante, e applicazioni con latenza critica, in cui il superamento di un determinato livello di latenza è causa di errore.

Benché la latenza sia spesso descritta in termini di prestazioni di rete, le applicazioni sensibili alla latenza evidenziano come la qualità della rete non sia l'unica causa di latenza, su cui invece incide frequentemente anche il tempo di elaborazione.

Gli svariati processi virtuali che contraddistinguono la virtualizzazione e le macchine virtuali attingono tutti alle risorse della CPU e alle risorse condivise come memoria e storage. Alcune impostazioni di sistema, come la gestione del risparmio energetico e la gestione delle transazioni, possono influire sull'accesso alle risorse da parte dei vari processi.

Queste problematiche possono verificarsi negli ambienti di cloud computing. Maggiore il numero di livelli di astrazione che compongono l'ambiente hardware, più difficile sarà allocare le risorse di elaborazione e condivise in modo da ottimizzare i tempi di elaborazione e ridurre al minimo la latenza per le applicazioni principali. Provider cloud come Amazon Web Services (AWS) offrono deployment e ottimizzazioni per applicazioni sensibili alla latenza e con latenza critica.

Per l'affidabilità delle applicazioni sensibili alla latenza, l'ambiente operativo complessivo e l'hardware alla base hanno la stessa importanza della configurazione e dell'infrastruttura di rete.

L'architettura dell'edge è costituita da anelli concentrici di livelli hardware che si allontanano dal datacenter principale. Ogni livello ha un'architettura e scenari di utilizzo propri, che richiedono diverse soluzioni.

Gli anelli più esterni di un'architettura edge sono i più vicini alle interazioni che generano dati, ovvero i clienti, gli utenti o i dispositivi gestiti. Devono reagire tempestivamente al mutare delle condizioni e ai nuovi dati e sono quindi quelli in cui avviene il deployment delle applicazioni sensibili alla latenza o delle applicazioni in tempo reale. Sono anche i livelli più lontani dai data store condivisi e quelli che più probabilmente hanno hardware leggero e su piccola scala, come i tablet e dispositivi per l'Internet of Things (IoT).

In questo contesto, per garantire prestazioni costanti alle applicazioni sensibili alla latenza e agli ambienti di edge computing nel loro complesso i responsabili IT devono definire processi e policy efficaci, tra cui:

  • Adottare pipeline di sviluppo e deployment centralizzate.
  • Prevedere policy di aggiornamento e gestione coerenti, per il software e per l'hardware.
  • Integrare test delle prestazioni in tutte le pipeline.
  • Automatizzare qualsiasi operazione possibile.
  • Definire ambienti operativi standard coerenti per l'intero edge.
  • Utilizzare standard e metodologie coerenti per l'interoperabilità.

Queste procedure ottimali sono molto simili per l'IoT industriale (IIoT), l'High Performance Computing e altre architetture distribuite. Edge o IoT non sono condizioni definitive, ma costituiscono un mezzo per raggiungere un obiettivo specifico. Allo stesso modo, le applicazioni sensibili alla latenza non sono vantaggiose solo perché più veloci, ma risultano utili quando un'elaborazione dei dati più rapida consente di ottenere esperienze dei clienti più complete o di gestire in modo più sicuro ed efficiente grandi attrezzature, di reagire alle mutate condizioni operative e adattarsi a nuovi input.

Il sistema operativo è importante per gli ambienti cloud e all'edge quanto lo è per quelli fisici dei datacenter o delle sale server. Esegue le funzioni di base come il provisioning e la gestione delle risorse cruciali alle applicazioni sensibili alla latenza, oltre a soddisfare altri requisiti IT come la sicurezza e la configurazione della rete.

Con le applicazioni sensibili alla latenza, occorre valutare il volume di dati che deve essere elaborato nel datacenter o nel cloud e se non sia meglio trasferire tale attività ed eseguirla in locale. Si tratta di trovare il giusto equilibrio tra quantità dei dati e velocità.

Se i rischi legati alla latenza possono essere attribuiti all'elaborazione in locale, esistono strumenti specifici in grado di migliorare le prestazioni del sistema. Altrimenti, una serie di strumenti e tecnologie differenti permette di realizzare un'architettura che riduca gli effetti della latenza.

Come risolvere i problemi di latenza con l'architettura

A seconda dell'approccio scelto, se sono prioritarie le esigenze di latenza della rete, l'architettura edge sarà strategica al funzionamento efficiente dei servizi. In questo caso, l'architettura edge dovrà prevedere la capacità di elaborare i dati in locale all'edge, senza inviare le informazioni non elaborate al datacenter, elaborarle e poi inviare una risposta. Eseguendo l'elaborazione necessaria alle applicazioni all'edge si riduce la dipendenza dalle reti ad alta latenza.

Le funzionalità ottimizzate per l'edge di Red Hat® Enterprise Linux® for Distributed Computing permettono il deployment dei carichi di lavoro in un'architettura di cloud ibrido distribuita che include datacenter, cloud ed edge, con un ambiente operativo open source e coerente. Installabile negli endpoint e nei gateway all'edge, Red Hat Enterprise Linux for Distributed Computing permette alle applicazioni l'analisi e l'elaborazione dei dati in locale e la successiva distribuzione di aggiornamenti e dati pertinenti ai server nel cloud o nel datacenter. Si riduce così la dipendenza da reti con latenza elevata, larghezza di banda incoerente e connessioni intermittenti.

Come risolvere il problema della latenza dei sistemi

Negli ambienti sensibili alla latenza, le tempistiche hanno un'importanza strategica. Anche in presenza di architetture ben concepite, dotarsi di un sistema ad alte prestazioni per l'elaborazione locale all'edge è un'ottima strategia.

Un ambiente operativo molto flessibile soddisfa le esigenze delle applicazioni sensibili alla latenza. Red Hat Enterprise Linux for Real Time è un pacchetto speciale creato per implementare modifiche negli algoritmi e nei sottosistemi e progettato specificamente per gli ambienti sensibili alla latenza nei quali i requisiti di prevedibilità e velocità superano il normale ambito di ottimizzazione delle prestazioni.

Red Hat Enterprise Linux for Real Time include strumenti di base che supportano le principali configurazioni di ottimizzazione delle prestazioni in tempo reale:

  • Ottimizzazione delle configurazioni di hardware e memoria e delle applicazioni scritte con tecniche di programmazione simultanee.
  • Controllo dell'esecuzione di applicazioni con più processi e thread.
  • Controllo dell'idoneità di un sistema hardware.
  • Definizione del comportamento della cache.

Un vasto ecosistema a cui affidarti

In questo ambito l'ecosistema Red Hat esprime al meglio le sue potenzialità. Le configurazioni e i fornitori hardware certificati per Red Hat Enterprise Linux for Real Time e per Red Hat Enterprise Linux for Distributed Computing garantiscono l'esecuzione delle tue applicazioni edge nel pieno rispetto delle specifiche.

Inoltre, Red Hat Enterprise Linux si integra con Red Hat® OpenShift® per l'orchestrazione e il deployment dei container Kubernetes, con Red Hat® Ansible® Automation Platform per l'automazione e con Red Hat Middleware per la gestione dei processi e delle decisioni, i flussi di dati, l'integrazione e altri strumenti.

L'edge è parte integrante di una strategia che offre analisi ed esperienze quando servono. Red Hat Enterprise Linux for Real Time, Red Hat Enterprise Linux for Distributed Computing e l'intera gamma di soluzioni Red Hat sono la base perfetta per mettere in atto la tua strategia.

Keep reading

Articolo

IoT ed edge computing

La IoT richiede potenza di elaborazione vicina al dispositivo fisico o alla sorgente dei dati, e l'edge computing fornisce a livello locale le risorse di elaborazione e storage richieste dalla IoT.

Articolo

I vantaggi dell'edge computing

Per edge computing si intende l'elaborazione delle informazioni eseguita vicino all'ubicazione fisica dell'utente che elabora i dati o alla sorgente dei dati.

Articolo

I vantaggi dell'edge computing per le telecomunicazioni

L'edge computing è una priorità per i molti provider di telecomunicazioni che rinnovano le proprie reti e cercano nuove fonti di reddito.

Scopri di più sull'edge

Prodotti

Una base stabile e versatile ideale per rilasciare nuove applicazioni, virtualizzare gli ambienti e ottenere un cloud ibrido più sicuro.

Una piattaforma applicativa aziendale che offre servizi verificati per consentire la distribuzione delle app sulle infrastrutture preferite.

Un portafoglio di software enterprise ottimizzati per un deployment snello all'edge.

Risorse