211service.com
¿Cómo funciona Facebook?
Facebook es un maravilloso ejemplo del efecto de red, en el que el valor de una red para un usuario es exponencialmente proporcional al número de otros usuarios que tiene la red.
El poder de Facebook se deriva de lo que Jeff Rothschild, su vicepresidente de tecnología, llama el gráfico social: la suma de las diversas conexiones entre los usuarios del sitio y sus amigos; entre personas y eventos; entre eventos y fotos; entre fotos y personas; y entre una gran cantidad de objetos discretos vinculados por metadatos que los describen y sus conexiones.
Esta historia fue parte de nuestro número de julio de 2008
- Ver el resto del número
- Suscribir
Facebook mantiene centros de datos en Santa Clara, CA; San Francisco; y Virginia del Norte. Los centros se basan en tres niveles de servidores x86 cargados con software de código abierto, algunos de los cuales Facebook ha creado.
Veamos la instalación principal, en Santa Clara, y luego veamos cómo interactúa con sus hermanos.
El nivel superior de la red de Facebook está formado por los servidores web que crean las páginas web que ven los usuarios, la mayoría con ocho núcleos que ejecutan Linux y Apache de 64 bits. Muchas de las páginas y funciones de la red social se crean utilizando PHP, un lenguaje de programación de computadoras especializado en funciones simples y automatizadas. Pero Facebook también desarrolla aplicaciones centrales complejas utilizando una variedad de lenguajes informáticos con todas las funciones, incluidos C ++, Java, Python y Ruby. Para gestionar la complejidad de este enfoque, la empresa creó Thrift, un marco de aplicación que permite que los programas compilados en diferentes lenguajes funcionen juntos.
El nivel inferior consta de servidores Linux de ocho núcleos que ejecutan MySQL, una aplicación de servidor de base de datos de código abierto. Rothschild estima que Facebook tiene alrededor de 800 servidores de este tipo que distribuyen alrededor de 40 terabytes de datos de usuario. Este nivel almacena todos los metadatos sobre cada objeto de la base de datos, como una persona, una foto o un evento.
El nivel medio consta de servidores de almacenamiento en caché. Incluso 800 servidores de bases de datos no pueden proporcionar todos los datos necesarios: Facebook recibe 15 millones de solicitudes por segundo tanto de datos como de conexiones. Los servidores de caché masificados, que ejecutan Linux y el software Memcache de código abierto, llenan el vacío. Aproximadamente el 95 por ciento de las consultas de datos se pueden completar desde los 15 terabytes de RAM de los servidores de caché, por lo que solo deben pasarse 500.000 consultas por segundo a las bases de datos MySQL y sus discos duros relativamente lentos.
Las fotos, videos y otros objetos que pueblan el nivel Web se almacenan en archivadores separados dentro del centro de datos.
La instalación de San Francisco replica los niveles de caché y Web, así como los archivadores con los objetos de la base de datos, pero utiliza el nivel de la base de datos MySQL de Santa Clara.
El centro de datos de Virginia está demasiado lejos para compartir bases de datos MySQL: con 70 milisegundos de retraso en Internet, más o menos, simplemente no funcionará. Por lo tanto, duplica completamente la instalación de Santa Clara, utilizando la replicación MySQL para mantener sincronizados los niveles de la base de datos.
¿Qué sigue para la tecnología de Facebook? Por un lado, dice Rothschild, la compañía ha descubierto que las interrupciones en los controladores Ethernet de los servidores, que permiten que los servidores procesen una gran cantidad de solicitudes que llegan al mismo tiempo, son un cuello de botella, ya que generalmente son manejadas por un solo núcleo. Entonces, Facebook reescribió los controladores de los controladores para escalarlos en sistemas multinúcleo. Facebook también está experimentando con unidades de estado sólido, que podrían acelerar el rendimiento del nivel de la base de datos MySQL en un factor de 100.
Dado que Facebook está creciendo, y que las conexiones crecen exponencialmente, el sitio pronto necesitará ese rendimiento.