Una CDN (Content Delivery Network) è una rete di computer che fornisce contenuti.
Più specificamente, si tratta di un gruppo di server posizionati geograficamente tra il server di origine dei contenuti web e l’utente che li richiede. Lo scopo principale è di fornire il contenuto più velocemente riducendo la latenza.
Questi server geograficamente più vicini, chiamati anche PoP (Point of Presence), possono memorizzare nella cache alcuni contenuti, rimuovendo così parte del carico dal server di origine. Esistono diversi tipi di CDN che offrono diversi tipi di servizi e possono avere una diversa topologia di rete:
- Le CDN sparse mirano ad avere il maggior numero possibile di server sparsi nel mondo. Akamai è una di queste.
- Le CDN consolidate hanno meno nodi ma più grandi, costruiti per le prestazioni della rete, il throughput e la resistenza agli attacchi DDoS.
Tipi di CDN
Abbiamo detto che il loro scopo principale è ridurre la latenza e velocizzare il rendering. Ma nel mondo moderno questa latenza conta sempre meno. Ci sono però anche altri scopi per le CDN, che si sono evoluti nel tempo.
CDN content-oriented
Inizialmente, le CDN erano solo per contenuti statici (JS, CSS, HTML). Dovevi inviare loro il contenuto mentre lo creavi/caricavi.
Poi hanno aggiunto il pull dell’origine (origin pulling), rendendo le cose più automatiche: ciò significa che un utente richiede l’URL della CDN, e la CDN richiede automaticamente l’URL del sito Web di origine, memorizzando nella cache ciò che è stato restituito.
La disponibilità è diventata un fattore importante. Quindi molti CDN ora memorizzano nella cache lo stato “last alive” di un sito Web in modo che se l’origine non funziona, il contenuto nella CDN è ancora accessibile agli utenti, creando l’illusione di stabilità fino a quando le cose non tornano alla normalità.
Inoltre, le moderne CDN offrono spesso livelli di ottimizzazione automatica che ridimensionano automaticamente le immagini e le salvano per un uso futuro in base alla dimensione dell’immagine richiesta. Ciò significa che se il tuo sito ha un’immagine di intestazione di 2 MB e qualcuno la richiede su uno schermo largo 300 px, la CDN creerà una copia di dimensioni 30 kb e 300 px di larghezza e la servirà in futuro a tutti gli utenti mobile, rendendo automaticamente il sito più veloce.
CDN security-oriented
L’ultimo livello di praticità aggiunto alle CDN è la protezione da DDoS e bot. CDN come Incapsula sono specializzati in questo.
Poiché la CDN è lo strato più esterno dell’infrastruttura di un sito Web e il primo destinatario del traffico, può rilevare tempestivamente gli attacchi DDoS e bloccarli con speciali server di protezione DDoS chiamati scrubbers senza che raggiungano mai il server di origine e lo blocchino.
Inoltre, utilizzando la conoscenza raccolta in crowdsourcing dai suoi numerosi client, una CDN può conoscere IP sospetti, spammer, bot, crawler e il loro comportamento. Ad esempio, uno scraper che lavora sul sito A, una volta identificato, smetterà di funzionare anche sul sito B se quel sito è protetto dalla stessa CDN, perché il filtro del traffico riconoscerà un pattern visto in precedenza.
Inoltre, mentre le CDN consentono ai propri clienti di caricare certificati personalizzati, offrono anche i propri. Questo ha due vantaggi:
- Quando appare una grande vulnerabilità nei certificati, le CDN di solito rispondono rapidamente perché hanno più da perdere (tutti i loro clienti). Quindi, di solito è in atto una soluzione prima ancora che la maggior parte delle persone venga a conoscenza della falla nella sicurezza.
- Le connessioni sono più veloci perché se molti siti Web utilizzano la stessa CDN, hai già stabilito una connessione valida e una fiducia reciproca con la CDN tramite il suo certificato SSL e questo processo non deve essere ripetuto per ogni sito che utilizza quel certificato CDN.
Processo di implementazione
L’implementazione di una CDN in genere comporta la modifica di alcuni record DNS nel pannello di controllo del registrar (l’azienda che ti affitta il tuo nome di dominio). Ciò fa in modo che il traffico colpisca prima la CDN, che a sua volta colpisce il tuo sito web. Poiché tutto accade dietro le quinte (tramite IP), il processo è trasparente per l’utente.
A volte, i siti aggiungono uno speciale sottodominio al loro dominio principale su cui ospitare immagini, JavaScript, CSS e altri contenuti statici. Se apri la scheda Rete della console di sviluppo di un browser o presti semplicemente attenzione alla barra di stato del tuo browser durante il caricamento di un sito come Facebook, noterai molti URL con “cdn” al loro interno: questo è il sito in questione che richiede solo parte del suo contenuto alla CDN.
Perché non richiedere tutti i contenuti tramite CDN? il contenuto statico è solitamente grande e vale la pena servirlo tramite CDN, perché: a) non cambia spesso e può essere memorizzato nella cache per molto tempo e b) rimuove un grande, grande carico dal server principale dell’app, che può invece servire contenuti dinamici.