lunes, marzo 28, 2011

La arquitectura de visualización de descargas de Mozilla

lunes, marzo 28, 2011 por Martín

Confieso que no he probado todavía Firefox 4. La verdad es que Chrome me ha dado todo lo que necesito. Pero hay algo que me ha gustado mucho de Firefox 4 sin haberlo probado, y es su página de visualización de descargas en tiempo real. Mozilla Glow. Realmente impresionante.

En un mapa del mundo se pueden ver en tiempo real todas las descargas que se están realizando de Firefox, y que no son pocas ya que en el momento de escribir estas líneas ya van 37 millones.

Desde el punto de vista técnico la utilidad de este tipo de visualizaciones es más bien nula, salvo el hecho de poder decirnos: "bien, hay gente descargando nuestro software". Desde el punto de vista de marketing el impacto es brutal. Hay que darse cuenta de que Firefox tampoco es un navegador tan popular (o era), y el efecto que tiene este gráfico en una persona de a pie es cercano al "Guau!!! ¿¿¿pero hay realmente tanta gente descargándose Firefox???". Esto no puede ser malo.



Si desde luego disponemos de un software con alguna capacidad que genere millones de eventos, el crear una visualización de este tipo tiene un valor inmenso para nuestro negocio. No tienen por que ser descargas. Pueden ser llamadas a un call center, operaciones de compra venta, anuncios de trabajo, posts en un foro, paquetes de una compañía de logística, etc. etc. Lo más complicado es disponer de los datos. Pero si disponemos de los datos, ¿cómo podemos hacer algo así? La gente de Mozilla ha compartido con todos nosotros la arquitectura que han utilizado.

La arquitectura es bastante sencilla y está construida sobre eventos syslog, Hbase y ellos utilizan un software comercial llamado SQLStream con el que establecieron relaciones en el 2009 cuando no había alternativas y entonces han mantenido esa relación, aunque según comentan en el enlace anterior, ya existen alternativas Open Source. La arquitectura sería la siguiente:


  • Los diferentes balanceadores de carga loggean las descargas de Firefox mandándolas al syslog.

  • SQLStream está configurado para hacer un tail constante de ese syslog y crear agrupados de las descargas por localización, producto, fecha, etc.

  • Los resultados de SQLStream se almacenan en HBase para su posterior análisis.

  • Una aplicación web hecha en Python se encarga de recoger los datos de Hbase cada minuto y enviarlos en formato JSON a los diferentes clientes.

  • Los clientes (navegadores web) van haciendo requests a la aplicación de Python y reproduciendo las descargas en el mapa.



Como veis, se trata de una arquitectura muy sencilla, más relacionada con el mundo de las operaciones que con la programación y que no requiere grandes complejidades en cuanto a frameworks o herramientas. En el blog de SQLStream también han descrito con algo menos de detalle esta arquitectura.

En Mozilla han subido a Github tanto el frontend, como el backend de la aplicación. Para finalizar, otro enlace interesante que aparece en los blogs que he enlazado es el de Maptail, otro proyecto Open Source para visualizar IPs en un mapa global. Podéis ver una imagen en la parte derecha de este post.

A mi me parece algo muy visual y con gran beneficio para el negocio. ¿Qué os parece a vosotros?

comments

0 Respuestas a "La arquitectura de visualización de descargas de Mozilla"