Indice dei contenuti dell'articolo:
Una Content Delivery Network (CDN) è una rete geograficamente distribuita di server e i relativi data center che aiutano nella distribuzione dei contenuti agli utenti con un ritardo minimo.
Lo fa avvicinando il contenuto alla posizione geografica degli utenti attraverso data center strategicamente posizionati chiamati Point of Presence (PoP). I CDN coinvolgono anche server di memorizzazione nella cache che archiviano e forniscono file memorizzati nella cache per accelerare i tempi di caricamento delle pagine Web e ridurre il consumo di larghezza di banda. Di seguito entreremo in maggiori dettagli su come funzionano esattamente i CDN.
I servizi CDN sono essenziali per le aziende che si affidano alla fornitura di contenuti agli utenti.
Considera quanto segue:
- Grandi pubblicazioni di notizie con lettori in molti paesi
- Siti di social media che devono fornire contenuti multimediali sui feed degli utenti
- Siti web di intrattenimento come Netflix che offrono contenuti web ad alta definizione in tempo reale
- Piattaforme di e-commerce con milioni di clienti
- Società di gioco con contenuti ad alto contenuto grafico a cui accedono utenti geograficamente distribuiti
Tutte queste aziende devono garantire l’accelerazione della distribuzione dei contenuti, la disponibilità dei servizi, la scalabilità delle risorse e la sicurezza delle applicazioni web. È qui che i servizi CDN brillano come vantaggio unico.
Una breve storia delle CDN
Le CDN (o i CDN) sono stati creati quasi vent’anni fa per affrontare la sfida di inviare rapidamente enormi quantità di dati agli utenti finali su Internet. Oggi sono diventati la forza trainante della distribuzione dei contenuti dei siti Web e continuano a essere studiati e migliorati dal mondo accademico e dagli sviluppatori commerciali.
Le prime reti di distribuzione di contenuti sono state costruite alla fine degli anni ’90 e sono ancora responsabili del 15-30 percento del traffico Internet globale. Successivamente, la crescita dei contenuti a banda larga e dello streaming di audio, video e dati associati su Internet ha visto lo sviluppo di più CDN. In generale, l’evoluzione dei CDN può essere classificata in quattro generazioni:
Periodo di pre-formazione: prima della creazione vera e propria dei CDN, venivano sviluppate le tecnologie e le infrastrutture necessarie. Questo periodo è stato caratterizzato dall’aumento di server farm, memorizzazione nella cache gerarchica, miglioramenti nei server Web e distribuzione di proxy di memorizzazione nella cache. Anche il mirroring, la memorizzazione nella cache e il multihoming sono state tecnologie che hanno aperto la strada alla creazione e alla crescita di CDN.
Prima generazione: le prime iterazioni di CDN si sono concentrate principalmente sulla distribuzione di contenuti dinamici e statici, poiché questi erano gli unici due tipi di contenuto sul web. Il meccanismo principale era quindi la creazione e l’implementazione di repliche, routing intelligente e metodi di edge computing. Le app e le informazioni sono state suddivise tra i server.
Seconda generazione: sono arrivate le CDN incentrate sullo streaming di contenuti audio e video o sui servizi Video-on-Demand come Netflix per utenti e servizi di notizie. Questa generazione ha anche aperto la strada alla fornitura di contenuti del sito Web agli utenti mobili e ha visto l’utilizzo di tecniche P2P e cloud computing.
Terza generazione: la terza generazione di CDN è dove siamo ora e si sta ancora evolvendo con nuove ricerche e sviluppo. Possiamo aspettarci che i CDN in futuro saranno sempre più modellati per la comunità. Ciò significa che i sistemi saranno guidati da utenti medi e individui normali. L’autoconfigurazione dovrebbe essere il nuovo meccanismo tecnologico, così come l’autogestione e la consegna autonoma dei contenuti. Si prevede che la qualità dell’esperienza per gli utenti finali sarà il driver principale per il futuro.
Le CDN si sono inizialmente evolute per far fronte a pressioni estreme sulla larghezza di banda, poiché lo streaming video stava crescendo nella domanda insieme al numero di fornitori di servizi CDN. Con i progressi della connettività e le nuove tendenze di consumo in ogni generazione, il prezzo dei servizi CDN è diminuito, consentendogli di diventare una tecnologia per il mercato di massa. E poiché il cloud computing è stato ampiamente adottato, i CDN hanno svolto un ruolo chiave in tutti i livelli delle operazioni aziendali. Sono fondamentali per modelli come SaaS (Software as a service), IaaS (Infrastructure as a service), PaaS (Platform as a service) e BPaaS (Business Process as a service).
Come funziona una CDN?
Le CDN funzionano riducendo la distanza fisica tra un utente e l’origine (un web o un application server). Si tratta di una rete di server distribuita a livello globale che memorizza il contenuto molto più vicino al server rispetto all’origine. Per capirlo meglio, è utile esaminare come un utente accede al contenuto Web da un sito Web con e senza CDN.
Senza CDN
Quando un utente accede al sito Web nel browser, stabilisce una connessione simile a quella della figura seguente. Il nome del sito Web si risolve in un indirizzo IP utilizzando il DNS locale o LDNS (come il server DNS fornito dall’ISP o un server di risoluzione DNS pubblico). Se il DNS o LDNS non è in grado di risolvere l’indirizzo IP, richiede in modo ricorsivo la risoluzione ai server DNS upstream. In definitiva, la richiesta può passare al server DNS autorevole in cui è ospitata la zona. Questo server DNS risolve l’indirizzo e lo restituisce all’utente.
Quindi il browser dell’utente si collega direttamente all’origine e scarica il contenuto del sito web. Ogni richiesta successiva viene servita direttamente dall’origine e le risorse statiche vengono memorizzate nella cache localmente sul computer dell’utente. Se un altro utente da una posizione simile o di altro tipo tenta di accedere allo stesso sito, eseguirà la stessa sequenza. Ogni volta, le richieste degli utenti colpiranno l’origine e l’origine risponderà con il contenuto. Ogni passo lungo il percorso aggiunge un ritardo, o “latenza”. Se l’origine si trova lontano dall’utente, i tempi di risposta risentiranno di una latenza significativa, offrendo un’esperienza utente scadente.
Con un CDN
In presenza di un CDN, tuttavia, il processo è leggermente diverso. Quando le richieste DNS avviate dall’utente vengono ricevute dal suo LDNS, inoltra le richieste a uno dei server DNS del CDN. Questi server fanno parte dell’infrastruttura Global Server Load Balancer (o “GSLB”). Il GSLB aiuta con la funzionalità di bilanciamento del carico che misura letteralmente l’intera Internet e tiene traccia delle informazioni su tutte le risorse disponibili e le loro prestazioni. Con questa conoscenza, il GSLB risolve la richiesta DNS utilizzando l’indirizzo edge più performante (di solito in prossimità dell’utente). Un “edge” è un insieme di server che memorizza nella cache e fornisce il contenuto web.
Una volta completata la risoluzione DNS, l’utente invia la richiesta HTTPS all’edge. Quando l’edge riceve la richiesta, i server GSLB aiutano gli edge server a inoltrare le richieste seguendo il percorso ottimale verso l’origine. Quindi i server perimetrali recuperano i dati richiesti, li consegnano all’utente finale che li ha richiesti e li archiviano localmente. Tutte le successive richieste dell’utente verranno servite dal set di dati locale senza dover interrogare nuovamente il server di origine . I contenuti archiviati sull’edge possono essere consegnati anche se l’origine diventa non disponibile per qualsiasi motivo.
Perché usare un CDN?
I CDN aiutano le aziende a fornire contenuti agli utenti finali in modo efficace riducendo al minimo la latenza, migliorando le prestazioni del sito Web e riducendo i costi della larghezza di banda.
Un’altra caratteristica unica dei CDN è che consente ai server perimetrali di preletturare i contenuti in anticipo. Ciò garantisce che i dati che consegnerai siano archiviati in tutti i data center CDN. In gergo CDN, questi data center sono chiamati Point of Presence (o “POP”). I PoP aiutano a ridurre al minimo il tempo di andata e ritorno avvicinando il contenuto web al visitatore del sito web.
Ad esempio, supponi di eseguire una campagna pubblicitaria e di pubblicizzare il tuo servizio o prodotto tra milioni di potenziali clienti. Potresti aspettarti che un gran numero di clienti si precipitino sul tuo sito dopo aver letto il post. Se hai a che fare con influencer che hanno buoni tassi di coinvolgimento del pubblico, il volume di traffico può vedere un picco ancora maggiore. Puoi essere sicuro che il tuo server di origine sarà in grado di gestire questo picco di volume tutto in una volta?
In tale scenario, i CDN possono aiutare a distribuire il carico tra i server perimetrali e tutti riceveranno la risposta. Poiché solo una piccola parte delle richieste raggiungerà l’origine, i tuoi server non subiranno picchi di traffico massicci, errori 502 e canali di rete upstream sovraccarichi.
Vantaggi dei CDN
A seconda delle dimensioni e delle esigenze della tua azienda, i vantaggi dei CDN possono essere suddivisi in 4 diverse componenti:
Miglioramento dei tempi di caricamento delle pagine del sito
Web Abilitando la distribuzione dei contenuti Web più vicino ai visitatori del sito Web utilizzando un server CDN nelle vicinanze (tra le altre ottimizzazioni), i visitatori sperimentano tempi di caricamento delle pagine Web più rapidi. I visitatori sono generalmente più inclini a fare clic o rimbalzare via da un sito Web con un tempo di caricamento della pagina elevato. Questo può anche influenzare negativamente il posizionamento della pagina web sui motori di ricerca. Quindi avere un CDN può ridurre le frequenze di rimbalzo e aumentare la quantità di tempo che le persone trascorrono sul sito. In altre parole, un sito web che si carica rapidamente manterrà più visitatori in giro più a lungo.
Riduzione dei costi della larghezza di banda
Ogni volta che un server di origine risponde a una richiesta, la larghezza di banda viene consumata. I costi del consumo di larghezza di banda sono una spesa importante per le aziende. Attraverso la memorizzazione nella cache e altre ottimizzazioni, i CDN sono in grado di ridurre la quantità di dati che un server di origine deve fornire, riducendo così i costi di hosting per i proprietari di siti Web.
Aumento della disponibilità e della ridondanza dei contenuti
Grandi quantità di traffico Web o guasti hardware possono interrompere il normale funzionamento del sito Web e causare tempi di inattività. Grazie alla loro natura distribuita, una CDN può gestire più traffico web e resistere ai guasti hardware meglio di molti server di origine. Inoltre, se uno o più server CDN vanno offline per qualche motivo, altri server operativi possono captare il traffico web e mantenere il servizio ininterrotto.
Miglioramento della sicurezza del sito Web
Lo stesso processo con cui i CDN gestiscono i picchi di traffico lo rende ideale per mitigare gli attacchi DDoS. Questi sono attacchi in cui gli attori malintenzionati sopraffanno la tua applicazione o i server di origine inviando un’enorme quantità di richieste. Quando il server si interrompe a causa del volume, il tempo di inattività può influire sulla disponibilità del sito Web per i clienti. Un CDN agisce essenzialmente come una piattaforma di protezione e mitigazione DDoS con il GSLB e i server perimetrali che distribuiscono il carico equamente sull’intera capacità della rete. I CDN possono anche fornire la gestione dei certificati e la generazione e il rinnovo automatici dei certificati.
In quale altro modo può essere utile una CDN?
Una CDN non si limita ai vantaggi sopra spiegati. Una moderna piattaforma CDN offre molti più vantaggi ai tuoi team aziendali e tecnici.
Può essere utilizzato per gestire l’accesso da diverse regioni del pianeta. Mentre consenti l’accesso per alcune regioni, puoi negare l’accesso ad altre.
Puoi facilmente scaricare la logica dell’applicazione sul perimetro e vicino ai tuoi clienti. È possibile elaborare e trasformare le intestazioni e il corpo della richiesta/risposta, instradare le richieste tra origini diverse in base agli attributi della richiesta o delegare le attività di autenticazione all’edge.
Grandi quantità di traffico richiedono un’infrastruttura per la raccolta dei log e l’elaborazione per ulteriori analisi. I CDN raccolgono i log e forniscono un’interfaccia per analizzare comodamente i dati generati dai visitatori.
È naturale che qualcosa diventi facile da usare quando si ha già familiarità con esso. Per questo motivo, i bordi CDN sono normalmente basati su NGINX. Ciò significa che è possibile eseguire attività utilizzando le direttive NGINX standard.
Il nostro team ad esempio ha trascorso migliaia di ore ad estendere NGINX.
Sicurezza dei dati e CDN
La sicurezza delle informazioni è parte integrante di un CDN. I CDN aiutano a proteggere i dati di un sito Web nei seguenti modi.
Fornendo certificati TLS/SSL
CDN può aiutare a proteggere un sito fornendo certificati Transport Layer Security (TLS)/Secure Sockets Layer (SSL) che garantiscono un elevato standard di autenticazione, crittografia e integrità. Si tratta di certificati che garantiscono il rispetto di determinati protocolli nel trasferimento dei dati tra un utente e un sito web.
Quando i dati vengono trasferiti su Internet, diventano vulnerabili all’intercettazione da parte di attori malintenzionati. Questo viene risolto crittografando i dati utilizzando un protocollo tale che solo il destinatario previsto possa decodificare e leggere le informazioni. TSL e SSL sono tali protocolli che crittografano i dati inviati su Internet. È una versione più avanzata di Secure Sockets Layer (SSL). Puoi sapere se un sito Web utilizza la certificazione TLS/SSL se inizia con https:// anziché con http:// , suggerendo che è sufficientemente sicuro per la comunicazione tra un browser e un server.
Mitigare gli attacchi DDoS
Poiché il CDN è distribuito ai margini della rete, funge da barriera virtuale ad alta sicurezza contro gli attacchi al tuo sito Web e alla tua applicazione web. L’infrastruttura sparsa e la posizione on-edge rendono anche un CDN ideale per bloccare le inondazioni DDoS . Poiché queste inondazioni devono essere mitigate al di fuori della tua infrastruttura di rete principale, la CDN le elaborerà su diversi PoP in base alla loro origine, prevenendo la saturazione del server.
Blocco di bot e crawler
I CDN sono anche in grado di bloccare le minacce e impedire a bot e crawler abusivi di utilizzare la larghezza di banda e le risorse del server. Questo aiuta a limitare altri attacchi di spam e hacking e mantiene bassi i costi della larghezza di banda.
Accelerazione statica e dinamica
Il contenuto statico si riferisce a quelle tue risorse che non devono essere generate, elaborate o modificate prima di essere consegnate agli utenti finali. Potrebbero essere immagini o altri file multimediali, file binari di ogni tipo o parti statiche della tua applicazione come HTML, CSS, librerie JavaScript o anche JSON, HTML o qualsiasi tipo di risposta dinamica che non cambia spesso. È possibile precaricare tali contenuti in anticipo, come accennato in precedenza. Quindi, quando è necessario invalidare tale contenuto e rimuoverlo dai server perimetrali, è possibile eliminare i percorsi desiderati.
L’accelerazione dinamica si applica a qualcosa che non può essere memorizzato nella cache sul bordo a causa della sua natura dinamica. Immagina un’applicazione WebSocket che ascolta gli eventi da un server o un endpoint API la cui risposta è diversa, a seconda delle credenziali, della posizione geografica o di altri parametri. È difficile sfruttare il meccanismo della cache sull’edge in un modo simile alla memorizzazione nella cache del contenuto statico. In alcuni casi, un’integrazione più stretta tra l’app e il CDN può essere d’aiuto; tuttavia, in alcuni casi, dovrebbe essere utilizzato qualcosa di diverso dalla memorizzazione nella cache. Per l’accelerazione dinamica, vengono utilizzati l’infrastruttura di rete ottimizzata di CDN e algoritmi avanzati di instradamento di richiesta/risposta.
Modello di fatturazione o “Cosa pago?”
Convenzionalmente in un CDN, paghi per il traffico consumato dai tuoi utenti finali e la quantità di richieste. Inoltre, le richieste HTTPS richiedono più risorse di elaborazione rispetto alle richieste HTTP, il che crea un carico maggiore sull’attrezzatura del provider CDN. Per questo motivo, potresti pagare costi aggiuntivi per le richieste HTTPS, mentre le richieste HTTP non vengono fatturate a un costo aggiuntivo.
Quando il calcolo si sposta al limite, la CPU diventa un oggetto di fatturazione. Le richieste potrebbero avere diverse pipeline di elaborazione e, di conseguenza, richiederanno diverse quantità di tempo CPU. Non è pratico fatturare in base al conteggio delle richieste; è più pratico fatturare per quantità di traffico + tempo di CPU utilizzato.
Chi usa CDN?
CDN viene utilizzato da aziende di varie dimensioni per ottimizzare la presenza e la disponibilità della rete e fornire un’esperienza utente superiore per i clienti. Un CDN è particolarmente popolare nei seguenti settori:
- Pubblicità
- Editoria digitale
- Video e audio online
- CDN di gioco
- Istruzione online
- E-Commerce
- Settore pubblico
- Governo
- Servizi finanziari
- SaaS