Controversias a parte sobre las actualización de la condiciones de la versión 1.1 de la API de Twitter para desarrolladores tenemos que reconocer que la compañía ha sabido conjuntar un gran abanico de tecnologías Open Source para construir un increíble servicio que hace posible millones de tweet diarios.
No es de extrañar, por tanto, que recientemente se haya incorporado Twitter a la Linux Foundation y participe activamente en conferencias como las que se está desarrollando en San Franscisco estos días, LinuxCon. Una de las charlas será la tecnología de software libre que hay detrás de cada tweet.
Pasamos a repasar algunas de las pinceladas y apuntar las tecnologías más importantes que usa Twitter en su infraestructura.
Twitter no sólo ha hecho uso de importantes tecnologías Open Source para sus propósitos, si no que ha colaborado activamente con el desarrollo de algunas y la creación desde cero de algunos framework que a muchos les sonarán. El constante ciclo de desarrollo de aprendizaje y desarrollo con la comunidad es un beneficio mutuo. Su mayor reflejo lo podemos observar en la cuenta de Github de Twitter en los más de 80 repositorios y 180 miembros que componen la mayor parte del software libre utilizado por la plataforma.
Proyectos Open Source usados por Twitter
Los ejemplos más claros de las tecnologías que Twitter consume a día de hoy son:
-
MySQL usada principalmente para almacenar los Tweets. Ellos han desarrollado su propio fork para ajustarlo a la necesidades, por supuesto, abierto a la comunidad. En él se ha prestado especial atención en la optimización y en el rendimiento, claves para el servicio.
-
El abanico de proyectos Apache usados en su infraestructura y que nos estamos acostumbrando en ver en las grandes redes sociales: Cassandra, Hadoop, Lucene, Pig. En muchos de ellos Twitter los ha esponsorizado.
-
No podía faltar un clásico como Memcached para manejar la caché y escalar el creciente tráfico de la plataforma. De ahí ha salido un interesante proyecto abierto que han liberado recientemente, Twemcache, ajustando sus necesidades a la base de Memcached.
Algunos de sus proyectos liberados a la comunidad
Twitter también ha creado proyectos desde cero:
-
lago es un generador de carga para testear el tráfico en producción. Es un herramienta fundamental para el entorno en el que se mueve Twitter con millones de peticiones en cortos espacios de tiempo.
-
Zipkin ayuda a recolectar los tiempo de respuestas de las peticiones de la API de Twitter.
-
Scalding es una librería de Scala que hace más sencillo escribir los jobs de MapReduce en Hadoop integrándose perfectamente con la Scala y la JVM.
-
Apache Mesos para construir aplicaciones distribuidas y compartir recursos entre data center.
-
No tan relacionada con la ifraestructura, pero si uno de los proyecto proveniente de Twitter tenemos a Bootstrap que nos permite crear ágiles páginas HTML5 con componentes potentes.
La cultura empresarial de Twitter está muy influenciada por el software libre. Muchos de sus ingenieros son conocidos entre las comunidades de desarrolladores, y lo que me parece fundamental es que cada empleado tiene voz y oportunidad para innovar. Twitter apoya los proyectos personales de los desarrolladores y los promueve devolviendo a la comunidad lo que les ha aportado.
Como fanáticos de Twitter disponen de una cuenta dedicada a todo lo relacionado con el Open Source: TwitterOSS y por supuesto su Github que está rebosantes de proyectos deseando ser trasteados.
Más información | GitHub Twitter
Vía | Open Source