Laboratorio de Televisión Experimental

Archive for 2011/02/10

Facebook

Siete tecnologías de software que sostienen a Facebook
Por Alan Lazalde el 7 de Febrero de 2011_
http://alt1040.com/2011/02/7-tecnologias-de-software-que-sostienen-a-facebook?utm_source=blogs&utm_medium=banner&utm_campaign=topbar

Facebook es una empresa gigante, es la red de redes sociales, un tinglado complejísimo que evoluciona, escala y sencillamente funciona. Más de 500 millones de personas usan y abusan de Facebook no sólo para participar de la red sino también para vivir en ella. El resultado es una inmensidad de operaciones de cómputo coordinadas por una plataforma de hardware y software igualmente compleja y gigantesca, todo un reto para los ingenieros de la empresa.

Ahora bien, a propósito de los 7 años que cumplió Facebook el pasado 4 de febrero, quiero ofrecerles una lista en la que enumero siete de las tecnologías de que sostienen su plataforma de software. El punto es valorar los esfuerzos de Facebook por entregar el mejor de los servicios, sobre todo en términos de disponibilidad, tiempo de respuesta y coherencia. Cada elemento de la lista es software de código libre y abierto y, salvo Linux y Hive, los demás son una creación de los empleados de Mark Zuckerberg.

Es cierto es que la infraestructura de Facebook es mucho, pero mucho más que sólo siete tecnologías de software, sin embargo me atrevo a decir que sin estas que pongo a continuación Facebook no podría ser quien es hoy en día.

1. Linux

Aquí sería más preciso decir que se trata del ecosistema Linux, en particular de LAMP:

* Linux, el sistema operativo que administrar los recursos de cada servidor en Facebook,
* Apache, el servidor de páginas web,
* MySQL, el manejador de bases de datos, el que almacena de forma estructurada los datos de los usuarios,
* Y PHP, el lenguaje de programación que automatiza la creación de páginas web.

Facebook no sería posible sin Linux.
2. Cassandra

Y, ¿qué es lo que hace? Además de Facebook, sitios como Reddit y Twitter también usan Cassandra para almacenar los datos de los usuarios de forma estructurada y distribuida. Se dice que Cassandra pertenece a una segunda generación de bases de datos, a un paradigma llamado NoSQL. Facebook hizo público el código de Cassandra al tiempo que lo entregó a la comunidad Apache en el 2008.

Facebook no podría escalar sin Cassandra.
3. Hive

Este es un proyecto auspiciado por la Fundación Apache. Entre sus varias funcionalidades destaca una fundamental para Facebook: el análisis de grandes conjuntos de datos sobre los cuales es posible inquirir, buscar información en ellos.

Facebook no podría ofrecer su servicio de búsqueda sin Hive.
4. Thrift

Podría decirse que Thrift es un kit de herramientas, uno especializado en la interoperabilidad de lenguajes de programación. A través de Thrift Facebook ha combinado el uso de lenguajes tan distintos entre sí como C++, Java, Python, PHP, Ruby, Haskell, y más, a lo largo de todos sus equipos de desarrollo.

Facebook no podría crear servicios de software a la velocidad que requiere sin la ayuda de Thrift.
5. Scribe

Lo que hace Scribe es muy sencillo: es un sistema de distribución y registro de mensajes en los servidores, tolerante a fallas y capaz de funcionar sobre una gran cantidad de equipos.

Facebook gestiona con mayor facilidad sus miles de servidores gracias a Scribe.
6. HipHop for PHP

Este es uno de mis favoritos. La parte visible de Facebook está escrita en su mayoría con lenguaje PHP, por lo que su desempeño es crítico para todo el sistema. Siendo un lenguaje interpretado tiene limitaciones de desempeño que los lenguajes compilados no tienen. HipHop for PHP es un transformador de código PHP en código C++, por lo que el resultado es un software de igual funcionalidad, pero optimizado para un alto desempeño. De hecho, Facebook afirma que gracias a HipHop for PHP usa hasta 50% menos CPU que antes.

Facebook sería más lento sin la ayuda de HipHop para PHP.
7. Tornado

Este es otro kit de herramientas de software, en este caso especializado en los servicios web escalables —es decir, los que crecen sin afectar el desempeño o las funciones del sistema—. En particular, es capaz de gestionar miles de conexiones web de forma simultánea y veloz. Está escrito en el lenguaje Python y su diseño está basado en el que tiene FriendFeed.

Facebook no podría “sentirse” en tiempo real sin Tornado.


Como usar facebook?

¿Qué escribir en nuestro muro de Facebook?
Por Inti Acevedo el 8 de Febrero de 2011 en Destacadas, Internet, Productividad, Tecnología.

Tengo algunas semanas preguntándome que cosas debe uno escribir en su muro de Facebook. Después de toda esa emoción inicial, que se ha extendido demasiados años, es hora de olvidarse de las galletas de la fortuna y tanta basura que publicamos en nuestra pared, terminamos convirtiendo nuestro Facebook en una feria itinerante de los años 70s: demasiado color, demasiados globos, demasiadas mujeres barbudas, y demasiados payasos demacrados.

Lo primero que tenemos que determinar, para saber que cosas puedes/quieres publicar en tu muro de Facebook, es definir el nivel de privacidad que tendrás. Saber si deseas que cualquier persona pueda ver tu muro, o solamente tus contactos y amigos. Es fundamental saber esto. Yo no recomiendo hacer público tu muro de Facebook, pero es probable que quieras tenerlo así, si eres una persona famosa, o quieras “tener” 1.000.000 de amigos. Lo mejor es que sea privado para que solamente puedan entrar personas de tu confianza y que conociste alguna vez en el mundo real. Ten presente que, mientras más datos y campos de tu perfil en Facebook puedan ser vistos por cualquiera, más cuidado tienes que tener en la información personal que publiques. Al final es un tema que pasa por el sentido común de cada quien. Ten cuidado.

Facebook tiene muy pocos años con nosotros, lo que hace que sea usado a la ligera, aun estamos aprendiendo, pero existe una posibilidad importante que tu cuenta en la red social te acompañe hasta el día que mueras. Creo que el truco de las cosas que debes o no publicar en tu perfil de Facebook pasa por dos factores: no hacer pública información sensible que siempre debe ser privada: dirección, números de tarjeta de crédito, fecha completa de nacimiento, teléfonos, número de seguro social, etc, y segundo, no publicar fotos e información de las cuales te arrepentirás luego, y no hacerle lo mismo a tus amigos con las fotos e información “denigrantes” que puedas tener de ellos. Hay que saber cuando una foto borracho es simpática, o cuando es causa para que no te contraten en tu próximo trabajo. Y por último, piensa en tu muro como un legado a tus hijos y nietos, que el día que quieran ver que cosas hacia su padre en el 2010, no sientas vergüenza por lo que encuentren.

Piensa en tu muro de Facebook como si fuera una libreta de anotaciones, en las cuales vas colocando parte de tu día a día: tus ideas, estados de animo, fotos, sitios a los cuales vas, noticias que te impactaron, cosas que lees y cosas que te gustan. Ahora piensa que han pasado 30 años, que es hora de mostrarles a tus hijos ese cuaderno de viaje. ¿Te sientes bien?