Uno dei vantaggi principali di una rete CDN è la capacità di distribuire contenuti in modo rapido ed efficiente. L'ottimizzazione delle prestazioni della CDN può essere suddivisa in tre categorie. Esplora la guida alla CDN.
Dopo aver letto questo articolo sarai in grado di:
Argomenti correlati
Cos'è Anycast?
Cos'è un server di origine?
Round-Trip Time (RTT)
Time-to-live (TTL)
Affidabilità CDN
Cos'è un datacenter CDN?
Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.
Copia link dell'articolo
Praticamente tutti su Internet hanno sperimentato i vantaggi di una rete di distribuzione di contenuti (CDN). La maggior parte delle aziende tecnologiche, tra cui aziende come Google, Apple e Microsoft, utilizzano CDN per ridurre la latenza nel caricamento del contenuto delle pagine Web.
Una rete CDN, in genere, posiziona i server nei punti di scambio tra diverse reti. Questi punti di interscambio Internet (IXP) sono le sedi principali in cui diversi provider di Internet si connettono tra loro per fornire accesso reciproco al traffico che proviene dai loro diversi network. Oltre agli IXP, una rete CDN posizionerà i server nei datacenter collocati in tutto il mondo in aree ad alto traffico e in posizioni strategiche per poter muovere il traffico il più rapidamente possibile.
Uno dei vantaggi principali di una rete CDN è la capacità di distribuire contenuti in modo rapido ed efficiente. Le ottimizzazioni delle prestazioni CDN possono essere suddivise in tre categorie.
Per comprendere i vantaggi dell'utilizzo di una CDN, esaminiamo l'aspetto di un normale trasferimento di dati client/server senza una CDN.
Immaginiamo che qualcuno a New York abbia bisogno di accedere a un sito Web ospitato in un server ubicato a Singapore. La separazione fisica tra queste località è rilevante, con una distanza fisica di circa 15.000 km.
Se un server che ospita contenuti del sito Web (il server di origine) si trova a Singapore, ogni richiesta per ciascuna risorsa di una pagina Web dovrà viaggiare da New York a Singapore, e viceversa. Proprio come quando si prende un volo internazionale con molte coincidenze lungo il percorso, ogni richiesta deve percorrere una serie di rotte nel suo viaggio dal punto A al punto B.
Se desideri visualizzare un esempio reale di quanti "cambi d'aereo" (hop) diversi sono necessari al computer per raggiungere un determinato servizio Web dalla posizione attuale, esplora l'utility traceroute usando un computer desktop.
Poiché la richiesta da New York a Singapore deve passare attraverso ognuna delle posizioni del router lungo il percorso, la quantità di tempo (latenza) viene aumentata sia dalla distanza totale che dal tempo necessario a ciascun router per elaborare la richiesta. Una volta che il server di origine elabora la richiesta e risponde al client che ha effettuato la richiesta, manda indietro le informazioni tramite una sequenza simile di router prima di tornare a New York. La misurazione di questo viaggio completo di andata e ritorno viene indicata nelle telecomunicazioni come RTT, che sta per "Round Trip Time" o tempo di percorrenza. Ignorando per il momento la larghezza di banda disponibile e la potenziale congestione della rete, vediamo un esempio di fattori di latenza.
Per semplicità, diciamo che:
Vediamo a grandi linee quanto tempo ci vorrà per caricare questa pagina Web:
In questo esempio semplificato, il tempo di transito totale affinché la pagina Web si carichi è di circa 3.000 ms.
Come si può notare, ogni volta che viene fatta una richiesta e viene inviata una risposta, viene attraversato l'intero percorso tra il client di New York e l'origine di Singapore. A misura che i siti Web diventano più grandi e richiedono un numero maggiore di risorse, la latenza tra il punto A e il punto B continua ad aumentare.
Vediamo di nuovo l'esempio del contenuto ospitato a Singapore servito a un client Web a New York, ma con la differenza che ora il sito di Singapore sta utilizzando una rete CDN con un server ad Atlanta che contiene una copia memorizzata nella cache del sito Web statico:
Vediamo a grandi linee quanto tempo ci vorrà per caricare questa pagina Web utilizzando la CDN:
Il tempo di transito totale per il caricamento di questa pagina Web è di circa 1.100 ms.
In questo esempio, la riduzione della distanza tra il client e il contenuto crea un miglioramento della latenza di 1.900 ms per il contenuto statico, che rappresenta un miglioramento di quasi 2 secondi nel tempo di caricamento.
Riducendo la distanza totale di tutto il traffico necessario per l'attraversamento, ogni utente diretto al sito Web può di risparmiare una certa quantità di tempo di caricamento. Poiché gli utenti iniziano a lasciare il sito (rimbalzo) molto rapidamente con l'aumentare dei tempi di attesa, questo miglioramento si traduce sia in una migliore esperienza per l'utente che in una maggiore permanenza sulla pagina.
Come accennato in precedenza, di norma quando un client richiede un file da un server di origine, la richiesta deve essere reindirizzata a quel server e tornare indietro. Una CDN migliora la latenza estraendo file di contenuti statici dal server di origine nella rete CDN distribuita in un processo denominato "caching", o memorizzazione della cache. Alcune CDN avranno funzionalità avanzate che consentono anche la memorizzazione nella cache selettiva dei contenuti dinamici. Una volta memorizzati nella cache i dati, la rete CDN serve il contenuto al client dal centro dati CDN più vicino.
Dopo aver effettuato un handshake TCP, il computer del client invia una richiesta HTTP alla rete del CDN. Se il contenuto non è ancora stato memorizzato nella cache, la CDN scaricherà prima il contenuto dall'origine effettuando una richiesta supplementare tra il server di origine e il server perimetrale della CDN.
Di seguito sono riportati i 4 passaggi durante una memorizzazione della CDN sulla cache standard:
Il valore della vicinanza di una rete CDN al client si verifica dopo che la richiesta iniziale al server di origine è già stata effettuata. Una volta che i dati sono stati memorizzati nella cache dal server di origine alla rete della CDN, ogni richiesta successiva del client deve solo andare fino al server perimetrale più vicino. Ciò significa che se il server perimetrale più prossimo è più vicino del server di origine, la latenza può essere ridotta e i contenuti possono essere serviti molto più rapidamente.
È importante tenere presente che la quantità di tempo necessaria per scaricare le risorse e per elaborare richieste e risposte per il momento non è inclusa; finora viene calcolato solo il tempo di transito necessario per trasferire le informazioni tra queste due località. Altri importanti fattori di latenza che esploreremo includono la riduzione dei dati, la velocità del disco rigido e la congestione della rete.
Per migliorare i tempi di caricamento delle pagine, le CDN riducono la quantità complessiva di trasferimento dei dati tra i server cache della CDN e il client. Sia la latenza che la larghezza di banda richiesta vengono ridotte quando la quantità complessiva di dati trasferiti diminuisce. Il risultato è un caricamento più rapido della pagina e costi di larghezza di banda inferiori. Due componenti chiave contribuiscono a queste riduzioni:
Minificazione: la minificazione è il processo mediante il quale i blocchi di codice vengono ridotti in termini di dimensioni, rimuovendo tutti i componenti che aiutano le persone a capire cosa sta accadendo. Mentre un ingegnere deve separare le idee in nomi di variabili, spazi e commenti sensibili per rendere i blocchi di codice leggibili e mantenibili, i computer possono eseguire correttamente il codice con quei caratteri rimossi.
Ecco lo stesso blocco di codice prima e dopo la minificazione:
Prima della minificazione: otto righe di codice
Dopo la minificazione: riduzione a una riga di codice
Ora che lo snippet del codice è stato ridotto da otto righe a un'unica riga, anche la dimensione complessiva del file è stata ridotta. Ciò significa che il trasferimento del file richiede meno tempo, riducendo la latenza e contribuendo a caricare il contenuto più velocemente.
Compressione dei file: la compressione dei file è un componente fondamentale per ridurre la latenza e il consumo di larghezza di banda necessari durante il trasferimento dei dati su Internet. GZip è un metodo comune di compressione ed è considerato una best practice da utilizzare durante il trasferimento di pagine Web. Molti provider CDN hanno GZip abilitato per impostazione predefinita. Quanto è consistente il risparmio derivante dalla compressione GZip? In genere i file compressi vengono ridotti dal 50% al 70% circa rispetto alla dimensione iniziale del file.
Per quanto riguarda le ottimizzazioni hardware CDN, un notevole vantaggio deriva dall'uso di dischi rigidi a stato solido (SSD) rispetto ai dischi rigidi tradizionali (HDD); le unità a stato solido possono aprire file fino al 30% più velocemente rispetto al tradizionale disco rigido e sono più resilienti e affidabili.
Oltre a un lettore di dischi, un'unità hard disk tradizionale è costituita da un disco metallico circolare rotante con un rivestimento magnetico che memorizza i dati. Una testina di lettura/scrittura su un braccio accede alle informazioni quando il disco sottostante ruota. Questo processo è meccanico ed è influenzato dalla velocità con cui ruota il disco. Con l'avvento delle unità a stato solido, il vecchio modello di dischi rigidi è diventato comunemente meno usato, anche se ancora oggi vengono prodotti e circolano ampiamente in molti sistemi informatici.
Anche un'unità a stato solido (SSD) è una forma di storage duratura, ma funziona in modo molto più simile alle unità USB o alle schede di memoria comunemente presenti sui dispositivi come le telecamere digitali; non presentano parti mobili. Se un normale disco rigido sta funzionando e il sistema viene urtato, l'HDD potrebbe saltare, con conseguenti errori di lettura/scrittura e potenziali tempi di inattività. Un altro importante vantaggio di SSD è l'accesso ai file frammentati. La frammentazione dei file si verifica quando le parti di un file si trovano in posizioni diverse sul disco, con conseguente rallentamento dell'accesso alle unità HDD. Poiché un SSD può accedere in modo efficiente a posizioni di memoria non contigue, la frammentazione non rappresenta una minaccia per le prestazioni.
Nelle prime CDN, i dati sono stati memorizzati su dischi rigidi. Ora con alcuni servizi CDN tutto il caching sul lato perimetro può avvenire su unità a stato solido. Lo svantaggio degli SSD è il costo; un SSD può essere fino a 5 volte più costoso dei media tradizionali. Per questo motivo, alcuni servizi CDN spesso evitano l'utilizzo di SSD e optano invece per la tecnologia precedente. Cloudflare CDN utilizza esclusivamente SSD.