En una interesante presentanción Aditya Agarwal, Director de Ingeniería en Facebook, explica como funciona la pila LAMP (Linux Apache MySQL y PHP) + memcache que soporta a la popular red social. Un hecho importante que pude sacar de la conferencia es que la consistencia de la base de datos no es una prioridad en el diseño de la red social, es decir las múltiples instancias de MySQL geográficamente distribuidas, nunca estan 100% sincronizadas, lo cuál les permite escalar tan fácilmente a millones de usuarios. Además Agarwal insistio en la filosofía de la empresa de usar la mejor herramienta para el trabajo y no tratar de resolver todos los problemas con un sólo lenguaje de programación, así Facebook ha desarrollado un framework llamado Thrift, que permite el desarrollo de servicios RPC independientemente del lenguaje con el que se desarrolle.
Otro interesante punto expuesto son las debilidades de el popular lenguaje de programación PHP, que muchos de nosotros usamos para nuestros proyectos, cuando se trata de mantener código en el tamaño del millon de líneas.
El video de la conferencia (de poco más de 1 hora) y la presentación pueden verse en InfoQueue. Les recomiendo a todos los que esten interesados en entender como podemos escalar websites a billones de visitas ver esta presentación.