La tecnologia que utilitza el Facebook
Al bloc Royal Pingdom he trobat aquest interessant article sobre la tecnologia que utilitza Facebook per donar servei a:
- 570.000 milions de pàgines vistes cada mes (segons Google Ad Planner).
- Es pugen més de 3.000 milions de fotos cada mes.
- Serveix més de 1 milió de fotos cada segon.
- Es comparteixen més de 25.000 milions de peces cada mes (estats, comentaris, …).
- Utilitza més de 30.000 servidors
I el més bo de tot és que Facebook aprofita la tecnologia GNU/Linux per fer tot això. Bàsicament tecnologia LAMP.
Ara bé Facebook ha personalitzat i optimitzat el sistema LAMP a la seva manera:
Memcached
Memcached és una aplicació de
codi lliure molt famosa a Internet. És un sistema de memòria cau entre
la base de dades i els servidors web. Facebook té milers de servidors
Memcached que gestionen desenes de terabytes de dades.
HipHop for PHP
HipHop
converteix el codi PHP en codi C++ que es pot compilar i així córrer més
ràpid a la màquina. Un petit equip de Facebook (inicialment 3 persones)
va desenvolupar aquest projecte en 18 mesos.
Haystack
Haystack
és un servidor de fotos desenvolupat per Facebook. Realment molt i molt potent.
BigPipe
BigPipe
és un servidor de pàgines dinàmiques desenvolupat per Facebook per tal
de compondre les diverses parts de la pàgina web que calcula cada grup
de servidors per separat (la part de les notícies, el xat, …).
Cassandra
Cassandra
és un sistema de base de dades distribuït no-relacional, que ara ha
esdevingut un projecte Apache de codi lliure. Facebook l’utilitza en les
seves cerques de la Safata d’entrada. Cassandra també s’utilitza en
Digg per exemple.
Scribe
Scribe és un sistema
de registre del treball i dels errors desenvolupat per Facebook. Pensat
per entorns de producció enormes com el del Facebook.
Hadoop and Hive
Hadoop és un analitzador de dades de codi lliure. Hive és una eina de codi lliure desenvolupada per Facebook per consultar fàcilment els resultats del Hadoop.
Thrift
Facebook utilitza diversos llenguatges de programació.
PHP per la façana, Erlang pel Xat, Java i C++ per la resta. Thrift és un entorn de treball que permet desenvolupar en tots aquest llenguatges i que s’entenguin.
Facebook també ha alliberat el codi de Thrift.
Varnish
Varnish és un accelerador de HTTP de codi lliure que també fa el paper de balancejador de càrrega i de memòria cau de contingut web.