Etiqueta : caso-de-exito

Facebook, escalabilidad y Open Source

Facebook es el líder indiscutible en el sector de las redes sociales, y eso se refleja en sus cifras (fuente: Exploring the software behind Facebook, the world’s largest site):

  • 570 miles de millones de páginas vistas por mes.
  • 1.2 millones de fotos por segundo, sin incluir las imágenes del propio Facebook.
  • 25 mil millones de elementos compartidos cada mes (actualizaciones de estado, comentarios, etc).
  • Más de 3 mil millones de fotos subidas a su web cada mes.
  • Se estima que Facebook tenía más de 30.000 servidores el año pasado.

Se trata de un problema importante de escalabilidad que, como vimos, no todos los servicios consiguen resolver tan brillantemente como el equipo técnico de Facebook.

Es evidente que solucionar un problema de tal tamaño implica tener recusos humanos del más alto nivel, pero también hay que contar con el software adecuado: ¿en qué herramientas confía Facebook?

Podemos visitar la página de Facebook sobre open source, donde nos cuentan como Facebook se ha desarrollado y ha crecido apoyándose sobre software open source, no solo como consumidores, sino también contribuyendo a distintos proyectos, cuando no liberando sus propios desarrollos internos.

El software tras Facebook

Los proyectos clave tras Facebook tienen una característica común: son open source. Esto significa que cualquiera de nosotros puede utilizar libremente las mismas tecnologías que mueven esta gran red social:

  • PHP: Facebook está desarrollado principalmente en PHP. Además han desarrollado HipHop para PHP, que es un traductor para convertir PHP en código C++ altamente optimizado.
  • MySQL: en Facebook nos explican cómo usan MySQL, como base de datos de almacenamiento para su infraestructura.
  • Linux: no se sabe con exactitud qué distribución de Linux usa Facebook, pero es el sistema operativo elegido para sus servidores.

Con lo que, una de las páginas en internet que más tráfico soporta, está montada sobre una plataforma equivalente a LAMP (Linux + Apache + MySQL + PHP).

Además de estos proyectos bien conocidos, Facebook se apoya en otros igual de importantes, pero más específicos para el problema de servir páginas con mucho tráfico desde muchos servidores, como son:

  • Varnish: un acelerador HTTP de altas prestaciones, empleado para servir contenido estático a alta velocidad.
  • Memcached: un sistema distribuido de caché en memoria de alto rendimiento, utilizado para compartir información de sesiones, acelerar el acceso a bases de datos, etc.
  • Cfengine: automatización de la configuración de sistemas, para facilitar el trabajo con granjas de servidores: cuando se manejan más de 30.000, es una prioridad.

Un caso de éxito tradicional con open source siempre ha sido Google, pero Facebook nos ha demostrado más: se puede empezar de cero con open source, y se puede crecer a niveles increibles empleando las mismas tecnologías.

Como en Facebook, desde nuestra página de casos de éxito, se puede comprobar como muchas de nuestras solunciones también se basan en LAMP.