El primero

Solo disponible en BuenasTareas
  • Páginas : 6 (1385 palabras )
  • Descarga(s) : 4
  • Publicado : 20 de febrero de 2010
Leer documento completo
Vista previa del texto
APLICACIONES DISTRIBUIDAS

RED SOCIAL FACEBOOK

Facebook es un sitio web del tipo red social. Inicialmente era exclusivo de estudiantes universitarios, pero en septiembre de 2006 se ha ampliado a cualquier persona que tenga correo electrónico.

Facebook es uno de los sitios web más visitados del mundo.

El crecimiento de la red Facebook fue muy fuerte entre 2008 y 2009. En enero de 2009contaba con 150 millones de usuarios, en febrero 175 millones y en abril superó los 200 millones.

Datos de Facebook

* Fecha de lanzamiento: 4 de febrero de 2004.
* Sede central: Palo Alto, California (EE.UU.)
* Posee más de 200 millones de usuarios (abril de 2009)
* Posee más de 700 empleados (noviembre de 2008).
* Sitio web: www.facebook.com

CAPAS DEL FACEBOOK

El Facebook es unaaplicación considerada de 3 capas.

[pic]

NIVELES DEL FACEBOOK

[pic]

REQUERIMIENTOS DE HARDWARE Y SOFTWARE

• HARDWARE

❖ Facebook utiliza actualmente unos 30.000 servidores.
❖ Desde principios de 2008 se calcula que han incorporado 20.000 servidores. Lo que justifica los más de 100 millones de dólares que financiaron y cuyo único uso ha sido la compra de servidores.❖ Facebook aloja actualmente más de 80 millones de imágenes de usuarios. Aunque en palabras de J. Rothschild el problema no parece ser el almacenamiento sino la necesidad de servir más de 600.000 imágenes por segundo. Cada día generan 25 terabytes de datos de logs.
❖ Y todo esto gestionado por 230 ingenieros al cargo de las operaciones. Cada ingeniero gestiona más de un millón de usuariosactivos.

• SOFTWARE

Plataforma basada en LAMP. PHP, Memcache y MySQL. Para el resto de servicios que no encajan dentro de este stack crean componentes en diferentes lenguajes. Tienen por ejemplo servicios escritos en C++, Java, erlang, python.
Utilizan PHP básicamente porque es con lo que se empezó y porque es un lenguaje pensado para la web. Pero han tenido muchos problemas con él. Es unlenguaje complicado, dificil de extender, del que incluso los desarrolladores más experimentados escapan. Especialmente molestas les han sido su weak typing que hace difícil el comprender el código y la dificultad de hacer análisis estático.
Han tenido que mejorar tanto PHP, como memcache buscando escalabilidad. También han hecho mejoras en MySQL

MySQL

• ¿Por qué? Porque es realmenterápido. Lo usan principalmente como un almacenamiento de key-value.
• 500 nodos físicos en cada centro de datos. Distribuyen bases de datos a lo largo de estos nodos. Los datos se distribuyen a lo largo de las bases de datos logicas.
• Utilizan también datawarehousing y periódicamente vuelcan datos a estos sistemas.
• No se hace ninguna join en producción
• La mayor parte del acceso de datos enFacebook es a datos recientes, asi que archivan los datos viejos.
• No han hecho demasiados cambios en MySQL. Un sistema para obtener el id de cualquier elemento (Facebook id -> database id) y la base de datos donde éste se encuentra + un sistema para mejorar el archivado. Han trabajado en resolver las insonsistencia entre las cachés cuando éstas están en diferentes centro de datos (problema habitualde replicación master-slave), etc. Es decir, librerías para facilitar el uso de MySQL.
• Tienen una base de datos con el grafo de contactos. El grafo está distribuido, pero los datos similares (e.g. tú perfil y el de tus amigos) esta collocated.
• De empezar de nuevo, seguirían con MySQL. Es una base de datos rápida que les permitió escalar desde el principio.
• No utilizan transaccionesdistribuidas ya que la consistencia de los datos no es una gran preocupación. De hecho, la mayor parte de los casos de uso no requieren ningún tipo de consistencia.

Memcache
• Utilizan multi-gets para obtener múltiples datos cacheados (e.g. fotos) en paralelo.
• Han hecho ligeras mejoras. Memcache sobre UDP ya que originalmente trabajaba sobre TCP que guardaba buffers y consumía demasiada...
tracking img