1 dic 2017

CDN & Video: Cos'è il Content Delivery Network?

il Video streaming e il delivery è un processo che richiede un uso intensivo di risorse 

La complessità del processo è legata ai vari network attraverso i quali uno stream video deve passare e alla qualità stessa del video. I bitrate più elevati e le alte risoluzioni richiedono naturalmente che vi sia una maggiore informazione relativa al flusso che verrà inviato all’utente finale. Per queste ragioni non è consigliabile trasmettere un video broadcast utilizzando il proprio server.


Per molte aziende il server può risultare un vero e proprio collo di bottiglia aggiungendo inutili costi di scaling dell’infrastruttura; ecco perchè è consigliabile utilizzare servizi di content delivery network (CDN).

Il Processo di Delivery 


Prima di spiegare che cosa è una CDN, può essere importante approfondire il processo di Delivery in modo da capire meglio la sua utilità. Lo streaming video permette il trasferimento tramite IP di diverse risorse di varie dimensioni che passano da un server vero dispositivi di ricezione.

Per facilitare il trasporto i contenuti vengono divisi in pacchetti (chunck) e rimodulati in fase di ricezione e visualizzazione. Mentre i dati possono essere teoricamente trasportati alla velocità della luce, nella realtà ci sono diversi ostacoli che provocano un ritardo (delay o  latenza) tra mittente e ricevente.

Latenza 


La latenza è il tempo che impiega il contenuto a raggiungere la destinazione. Questo tempo dipende dalla distanza del server e dal numero di pacchetti inviati, nonchè dall’infrastruttura e connettività. Per esempio, qualcuno dagli Stati Uniti che accede ai contenuti di un server situato in Giappone avrà una latenza maggiore se accedesse ad un server negli USA. Inoltre il delivering può essere one-way o round-trip e quindi raddoppiare il tempo di latenza. Infine se la connessione tra i due punti non è pulita si rischia di perdere alcuni pacchetti durante la trasmissione.

Questo si verifica spesso nelle connessioni Wireless. Ed è proprio su questo concetto che la CDN pone le sue basi in servizi su internet; generalmente più bassa è la latenza migliroe è la percezione del servizio da parte dell’utente. Quindi è importante controllare il percorso dei pacchetti durante la trasmissione degli stessi; il protocollo utilizzato è il TCP.

 Il processo di video streaming e l’ostacolo del Delivery 


Il disagio maggiore lo si verifica quando l’utente richiede la visione di un video in streaming live o on demand. Questo processo richiede una trasmissione fluida in cui i pacchetto vengono rapidamente ricomposti per permettere al player di continuare la visualizzazione. Una situazione di buffering inefficiente potrebbe portare molte frustrazione nell’utente.

 Quindi i chunk video devono essere spacchettati e ricomposti tutti senza alcuna perdita e questo può essere assicurato se il percorso che seguono è un canale sicuro e performante. Conseguentemente, tutti i metodi che consentono di ridurre la latenza per accelerare il delivery ed evitare che il video player raggiunga quel chunk video mancante prima di utilizzare i chunk in preload si rivelano molto vantaggiosi.

 La soluzione


Content Delivery Networks (CDNs) Per far fronte a questa esigenza di ridurre la latenza, sono state create le CDN. Le CDN affrontano molte altre problematiche, come ad esempio aiutare i provider di transito e gli ISP a gestire il traffico, dal punto di vista dell'utente finale, ciò che conta è: quanto velocemente risponde la pagina web e se l'applicazione e la riproduzione audio / video è costante o non lo è.

Le CDN riescono bene a risolvere questo problema e migliorano l'esperienza dell'utente. In poche parole, tra molti altri vantaggi, mirano a ridurre la distanza fisica tra l'utente che cerca di ricevere il contenuto e il server che invia pacchetti o chunk.

Che cos'è un CDN? 


Un CDN è un’ampia rete di server che dispone di copie di dati, estratte da un server di origine. I server sono in genere sono collocati geograficamente in posti differenti. L'utente o l'organizzazione estrarranno quindi le risorse necessarie (contenuto) dal server che è più vicino a loro, chiamato edge server. Quindi, se c'è un edge server a Los Angeles e un edge server a New York, e l'utente finale è di San Francisco, normalmente il server di Los Angeles sarà l’edge server utilizzato.

 Questo processo di selezione di un edge server per l’utente può essere gestito in diversi modi. Tra le diverse tecniche utilizzate c’è un metodo chiamato anycast, che decide topologicamente dove l'utente si connetterà.

Un'altra tecnica è la gestione del routing di richiesta a livello di richiesta DNS (Domain Name System). Basato sulla posizione geografica del resolver, in risposta verrà inviato un edge geograficamente vicino e il cliente si connetterà a quell’edge per ottenere il contenuto. C'è anche un metodo più avanzato, che è stato adottato da anni, in cui l’indirizzo IP reale dell'utente finale viene inoltrato dal resolver DNS e l’edge server più vicino verrà determinato in base a questo indirizzo IP reale. Basati sui casi d’uso, gli edge server utilizzano anche una tecnica chiamata proxy caching.

Questo processo memorizza contenuti sul server stesso per condividere quelle risorse tra le richieste in entrata. Allora quando una richiesta entra in un edge server, quel server verificherà prima se il contenuto richiesto è stato memorizzato nella cache di recente. Se il contenuto è presente nella cache, viene fornito direttamente.

Se il contenuto non è presente o la risorsa memorizzata nella cache è scaduta, l’edge server lo richiederà dal server di origine (o da una cache multimediale a monte, che contiene il contenuto).

Per andare oltre una CDN 


Utilizzare un content delivery network permette di beneficiare di diversi vantaggi per molti tipi di contenuti disponibili su Internet. Questo tipo di approccio si rivela utile per lo streaming video, essendo una delle tipologie che richiede maggiore intensità di risorse disponibili.



Tuttavia, a volte un unico approccio CDN non basta. Amazon CloudFront è una rete per la distribuzione di contenuti o CDN (Content Delivery Network) globale (CDN) che permette la distribuzione di dati, video, applicazioni e API agli utenti con latenza minima e velocità di trasferimento elevata.

CloudFront si integra con i servizi AWS, in relazione sia ai luoghi fisici connessi direttamente all'infrastruttura globale di AWS sia ai software ottimizzati quali AWS Shield per la mitigazione DDoS, Amazon S3, Elastic Load Balancing e Amazon EC2 come origini dati delle applicazioni e AWS Lambda per l'esecuzione di codice personalizzato nell'area geografica in cui si trovano gli utenti.

Per iniziare a utilizzare CloudFront sono sufficienti pochi minuti, utilizzando gli stessi strumenti di AWS che già conosci, ovvero API, Console di gestione AWS, AWS CloudFormation, interfaccia a riga di comando e kit SDK.

CloudFront offre un modello tariffario semplice e basato sul consumo, che non prevede pagamenti anticipati o contratti a lungo termine; la sottoscrizione ad AWS Support include inoltre il supporto per CloudFront.
Se ti piace questo post ti basta un click per condividerlo
Condividi su Google Plus Vota su OKNotizie

Nessun commento:

Post più popolari

ARCHIVIO POST