Come una sola azienda può rompere Internet

Le CDN rendono i siti più veloci e affidabili, quando tutto funziona: martedì una serie di sfortunati eventi ha messo offline alcuni dei più grandi siti del mondo

Caricamento player

Martedì mattina molti dei siti più conosciuti e visitati al mondo hanno smesso di funzionare per circa un’ora a causa di un problema tecnico che ha interessato Fastly, un’azienda che gestisce il traffico e la distribuzione dei contenuti online. Il problema ha riguardato siti di notizie come quelli del New York Times e di BBC News, piattaforme come Reddit, in parte Amazon e vari siti governativi in giro per il mondo. Il disservizio ha spinto alcuni osservatori a segnalare quanto basti poco per rendere irraggiungibile un pezzo importante di Internet, e quanto i suoi servizi dipendano da un numero ristretto di grandi aziende con le quali abbiamo continuamente a che fare senza saperlo.

A parte gli addetti ai lavori e gli appassionati di informatica, in pochi avevano sentito parlare di Fastly fino a martedì scorso, nonostante chiunque abbia almeno un pezzo di vita online usufruisca quasi quotidianamente dei suoi servizi. Lo stesso si può dire di altre aziende che gestiscono la distribuzione dei contenuti online, come Akamai e Cloudflare. È grazie ai loro servizi che i siti si caricano più velocemente praticamente in ogni angolo del mondo.

CDN
Per capire come sia stato possibile che centinaia di grandi siti siano finiti offline martedì scorso occorre partire da una sigla: CDN, che sta per Content Delivery Network (letteralmente “Rete per la consegna di contenuti”).

Tendiamo a pensare a Internet come a qualcosa di etereo e impalpabile, che sta da qualche parte e al tempo stesso da nessuna. In realtà, le cose che leggiamo come questo articolo e i video che guardiamo sono ospitati fisicamente sui server, computer che si trovano in centri dati di ogni dimensione in giro per il mondo. Il nostro smartphone o pc si collega a loro per ottenere i file che messi insieme permettono di vedere una pagina di un sito, oppure di utilizzare un’applicazione o vedere un film su Netflix.

Dalla sua nascita, questo sistema aveva permesso a Internet di funzionare ed evolversi, ma con il passare del tempo e l’aumentare delle persone che si collegavano iniziò a mostrare qualche problema. Se un server è molto distante da noi, per esempio, il tempo per ottenere i dati richiesti è più lungo e questo aumenta ulteriormente se ci sono più smartphone e pc che si collegano allo stesso server facendo le loro richieste.

Nel corso del tempo sono state ideate diverse soluzioni per attenuare questo problema e una di queste è consistita nell’ideazione delle CDN, grandi reti dedicate a rendere più veloce la consegna dei contenuti (pagine web, video, file per le app e quant’altro) e ad alleggerire il lavoro dei server dei singoli siti.

Prendendoci qualche licenza e semplificando un poco, una CDN copia i contenuti presenti sul server di origine di un sito e li inserisce nei server dei propri centri dati in giro per il mondo. Quando uno smartphone o un PC li richiede, invece di ottenerli direttamente dal server originario ottiene una delle copie ospitate sulla CDN. Il vantaggio è che la CDN è molto più veloce nel farlo non solo perché i suoi centri dati sono più potenti, ma anche perché sono distribuiti in diverse aree del mondo ed è quindi più probabile che ne abbiano uno vicino al dispositivo che ha fatto la richiesta, riducendo i tempi di consegna. Questi gruppi di server si chiamano “point of presence” (“punti di presenza”) o POP.

Rappresentazione schematica del funzionamento di una CDN (via HowVideoWorks)

Prendete l’articolo che state leggendo adesso. Dopo essere stato pubblicato sul server del Post, un servizio di CDN ne ha fatto una copia e l’ha poi distribuita nei propri POP in giro per il mondo. È quindi probabile che in questo momento stiate leggendo una copia di quell’articolo, che la CDN vi ha consegnato molto più velocemente di quanto avrebbe potuto fare il server di origine del Post, che non avrebbe la capacità di gestire le richieste che producono ogni secondo le migliaia di visitatori che frequentano il sito.

Traffico
Nel corso del tempo le CDN hanno inoltre acquisito un ruolo sempre più rilevante nello smistare il traffico online, sempre con l’obiettivo di rendere più rapida la navigazione. Attraverso i loro algoritmi, hanno per esempio la capacità di dirottare le richieste su altre parti di Internet, nel momento in cui si creano picchi di traffico o qualche problema tecnico che crea una congestione, che potrebbe rallentare la connessione ad alcuni siti o servizi, fino a renderla impossibile.

Fastly fa tutte queste cose e le fa piuttosto bene, complice una presenza piuttosto ramificata dei propri POP. Ne ha almeno 58 in diverse città in giro per il mondo, alcuni di questi sono doppi proprio per offrire una maggiore affidabilità in aree geografiche dove c’è un alto numero di persone che accedono a Internet, come Londra, Singapore e Los Angeles. Altre aziende come Akamai e Cloudflare funzionano con principi simili e i loro servizi sono praticamente usati da tutti i più grandi siti e piattaforme che vi possono venire in mente.

(Fastly)

Questo spiega perché se una CDN ha un serio problema ci possono essere a cascata problemi per un pezzo importante di Internet, se non funzionano altri sistemi di soccorso, come è avvenuto lo scorso martedì.

Cosa è successo martedì
Ad alcune ore dai disservizi, Fastly ha pubblicato un breve post sul proprio blog per fornire qualche informazione preliminare su che cosa fosse andato storto. Il problema era legato a un aggiornamento introdotto dall’azienda il 12 maggio scorso, che conteneva al suo interno un errore di programmazione. Per settimane l’errore è passato inosservato senza che causasse danni, ma era solo questione di tempo e della giusta combinazione di configurazioni per farlo emergere.

Uno dei clienti di Fastly ha aggiornato una configurazione dei propri sistemi e, inconsapevolmente, nel farlo ha creato le giuste condizioni perché l’errore di programmazione si manifestasse. Alcuni grandi siti, come quello del New York Times, sono diventati irraggiungibili a partire dalle 11:47 (ora italiana) e i responsabili di Fastly si sono accorti del problema meno di un minuto dopo. Si sono quindi messi alla ricerca del problema identificandolo intorno alle 12:27. A quel punto l’errore aveva però causato una serie di disservizi a catena, mettendo offline circa l’85 per cento della rete di Fastly, con siti irraggiungibili in buona parte del pianeta.

Trovato il problema, Fastly ha diffuso una prima soluzione alle 12:36 rendendo possibile un ritorno alla normalità nella mezz’ora seguente. Nelle ore seguenti si sono comunque verificati rallentamenti e altri piccoli disservizi, dovuti più che altro al fatto che la CDN dovesse ricreare le copie dei file dai vari server di origine dei siti. Una volta ripristinate le copie più aggiornate, la rete di Fastly è tornata alla propria piena capacità, anche grazie a un successivo intervento per risolvere in via permanente il problema che aveva causato i disservizi.

Per ora Fastly non ha fornito molte altre informazioni, ma i suoi tecnici stanno effettuando un’analisi più approfondita su quanto accaduto, in modo da adottare nuove precauzioni per evitare che si possa ripetere. Non è chiaro se e quando l’analisi sarà resa pubblica, ma la sua diffusione potrebbe fornire elementi per capire meglio come sia stato possibile un disservizio di questo tipo, considerata la grande ridondanza di sistemi su cui sono basate le CDN.

Tre aziende
Le CDN sono progettate per compensare i problemi che portano alcuni loro server a finire offline. Anche nel caso in cui un intero centro dati produca un grave errore, le sue funzioni possono essere trasferite temporaneamente altrove in attesa che sia reso nuovamente operativo. Queste attività avvengono interamente dietro le quinte e sono totalmente trasparenti per chi sta navigando online.

L’errore introdotto con l’aggiornamento di maggio nella CDN di Fastly ha messo fuori servizio buona parte dei sistemi per garantire la qualità dei servizi. I siti che non sfruttavano solamente Fastly hanno potuto dirottare il loro traffico altrove, rimanendo online o riducendo comunque sensibilmente il periodo in cui erano irraggiungibili, mentre quelli che facevano affidamento unicamente su Fastly hanno dovuto attendere che la CDN fosse ripristinata. Per questo motivo vari esperti consigliano ai gestori dei siti di grandi dimensioni di utilizzare più CDN, in modo da compensare eventuali disservizi di una con le funzionalità offerte da un’altra.

Il problema è che a oggi non ci sono moltissime alternative per i gestori dei siti. Tre aziende – Fastly, Akamai e Cloudflare – dominano di fatto il mercato delle CDN e per la concorrenza è difficile emergere e offrire servizi su larga scala paragonabili ai più usati. Un problema a un sistema di una di queste tre aziende si riverbera su grandi porzioni di Internet, come avvenuto martedì scorso.