Data center Facebook: alla scoperta di un’infrastruttura enterprise

Facebook non ha certo bisogno di presentazioni. Secondo quanto rivelato da Alexa, con circa 1.13 miliardi di utenti connessi quotidianamente è il terzo portale più trafficato a livello globale (dati di settembre 2016). E per gestire e soddisfare adeguatamente l’enorme mole di traffico e dati, il social network ha dovuto in un primo momento appoggiarsi a colocation provider e successivamente investire nella costruzione di un proprio network infrastrutturale.

La complessità dell’ecosistema Facebook è stata spiegata dalla stessa compagnia in alcune dichiarazioni rilasciate agli addetti ai lavori: “il caricamento della home page di ogni utente richiede solitamente l’accesso a centinaia di server, il processamento di decine di migliaia di frammenti individuali di dati e la consegna delle informazioni richieste in meno di un secondo“. Ogni giorno gli utenti effettuano l’uplod di centinaia di milioni di foto e video (anche nelle recenti varianti a 360°); a questo si somma il supporto che deve essere garantito a milioni di siti e centinaia di migliaia di applicazioni interessate dalla piattaforma Facebook Connect.

La costruzione dei data center proprietari

La cittadina di Prineville (10.000 abitanti, Oregon) è stata la location scelta da Facebook per la costruzione del primo data center proprietario (2010). L’investimento che dovette sostenere la compagnia fu importante ma ciò consenti di progettare un’infrastruttura su “misura” con la personalizzazione dell’apparato energetico, di refrigerazione e dell’hardware – ed a proposito di soluzioni “custom”, nel 2011 è stato lanciato anche Open Compute Project. Successivamente sono arrivati anche i data center di Forest City (Nord Carolina), Altoona (Iowa), Fort Worth (Texas), Los Lunas (Nuovo Messico), Lulea (Svezia), Clonee (Ireland).

Ogni sito viene periodicamente ampliato con strutture secondarie aggiuntive, al fine di soddisfare la crescente “popolazione” del social network. A questo proposito è possibile rispondere in linea di massima ad una delle curiosità che potrebbero avere molti lettori: quanto è grande un data center Facebook? I dati relativi al primo sito in Oregon parlano di 13600 m² circa preventivati ai quali l’azienda decise di aggiungerne altri 14800 m², per un totale di 28.400 (un campo di calcio regolare è grande circa 7100 m²). Un altro datacenter, che sorgerà sempre a Prineville, raggiungerà addirittura i 45.000 m², mostrando chiaramente come siano mutate le esigenze di Facebook nell’arco di soli 5 anni.

Software e server

Anche in questo caso l’open source ricopre un ruolo fondamentale: il sito di Facebook è stato scritto principalmente in PHP mentre per l’infrastruttura database ci si è avvalso di MySQL – il sistema di chaching è affidato ad un’altra soluzione open source probabilmente nota a molti, memcached.

Con l’espansione del network e lo sviluppo di competenze avanzate da parte del team interno di ingegneri, Facebook è passata alla realizzazione di strumenti “su misura” – come avvenuto per i data center e l’hardware (si veda OPC) ai quali si accennava nel paragrafo precedente. Per migliorare le prestazioni generali sono nati così HipHop (conversione del codice sorgente PHP in C++) ed il framework RPC (remote precedure call)pensato per agire da “impalcatura comune” ad eterogenei servizi scritti in vari linguaggi ed eseguiti su piattaforme multiple (es: Apache Hadoop, Hive, Cassandra, Varnish, Scribe etc.).

Quali informazioni abbiamo invece sui server? Partiamo dai numeri. “Quando Facebook iniziò ad essere utilizzato da un esiguo numero di persone e senza che fossero mostrate foto o video, il servizio poteva essere gestito da un singolo server ha affermato un ex vice presidente delle technical operations (Jonathan Heiliger). L’escalation di costi e cifre che ha interessato l’infrastruttura data center ha prevedibilmente influito sulla crescita della “popolazione server”.

I dati ufficiali più recenti risalgono purtroppo al 2010 ma sono comunque utili per mettere a fuoco gli ordini di grandezza: 7 anni fa lo staff del social network parlava di circa 60.000 server; informazioni antecedenti indicano un numero di server pari a 30.000 nel 2009 ed a 10.000 nel 2008. Ipotizzando che il trend sia rimasto immutato di anno in anno (quindi un +100% di crescita ogni 12 mesi), attualmente l’azienda potrebbe trovarsi a gestire quasi 2 milioni di server – a fine 2015 si è parlato di 3.63 miliardi di dollari in strumentazione di rete.

Lato hardware disponiamo invece di molte più informazioni: Facebook ha infatti diffuso la quasi totalità delle specifiche inerenti la strumentazione impiegata (e non solo) a partire dal 2011, hanno in cui è stata lanciata l’iniziativa Open Compute Project. La compagnia ha condiviso il design custom studiato per i propri data center, switch di rete, rack server, schede madri, UPS, generatori di corrente e quant’altro. I due termini che possono descrivere al meglio la mentalità dell’azienda sono efficienza e sperimentazione: “abbiamo rimosso qualsiasi cosa che non avesse una specifica funzione. Niente fronzoli”.

Ciò si traduce nell’assemblamento di sistemi nei quali è possibile trovare tanto processori Intel quanto AMD o ARM, schede madri dal layout personalizzato, chassis custom e alimentatori con differenti requisiti energetici – 277 volt invece dei 208 volt standard. In questo modo la corrente entra direttamente nell’edificio a 400/277 volt eliminando le varie fasi di riadattamento del voltaggio che si verificano quando la corrente passa attraverso i sistemi UPS e le Power Distribution Unit).

Sistema di refrigerazione ed efficienza energetica

In un precedente post abbiamo parlato di quanto la gestione dei flussi d’aria possa incidere sui costi totali di un data center. Facebook ha attentamente studiato la predisposizione dei server e degli apparati di raffreddamento per ottimizzare al massimo resa e costi. Il data center di Prineville, grazie al clima abbastanza rigido della zona, non si affida ad esempio all’aria condizionata (che necessita di elevate quantità di energia elettrica) ma all’aria proveniente dall’esterno o, nel caso in cui le temperature aumentino oltre certi valori, all’evaporative cooling.

La sezione dell’edificio destinata ai sistemi di refrigerazione, circolazione dell’aria etc. è separata da quella assegnata ai server, in modo da destinare maggiore spazio a questi ultimi. Essendo la prima posizionata nella parte superiore dell’edificio, è possibile sfruttare la naturale tendenza delle masse di aria fredda ad andare verso il basso e delle masse d’aria calda a spostarsi verso l’alto. Il tutto facilita enormemente la circolazione dell’aria, oltre ad eliminare la necessità di pompare aria fredda dal basso verso l’alto, risparmiando sulla “bolletta” – come non avviene in altri data center.

La Power Utilization Effectivenes (PUE) della struttura di Prineville, sulla quale si ha il maggior numero di informazioni, è stimata tra 1.06 ed 1.08, valori che mostrano l’ottimo livello di efficienza raggiunto dalle infrastrutture della compagnia.