Tecnología de Twitter

DEXMA apuesta por la tecnología de Twitter y Spotify en inserción de datos

Estas lecturas incluyen electricidad, gas, temperatura y la lista continúa. Gracias al éxito de la monitorización de energía en tiempo real y al incremento en el número de proyectos que gestionamos, nuestros servidores estaban recibiendo una extensa y creciente cantidad de datos. Por lo anterior, nos pareció adecuado rediseñar nuestro sistema existente con una nueva arquitectura para el almacenamiento e inserción de datos. La misma tecnología de Twitter y Spotify se llama “Storm”. El nuevo diseño nos ayudaría a acomodar para el crecimiento sostenido y para hacer al sistema completamente escalable.

Después de un período de 6 meses de arduo trabajo y dedicación por parte de nuestro equipo de desarrollo, la nueva arquitectura se puso en funcionamiento el 15 de enero de este año. La arquitectura resultante contiene tres elementos principales: Storm, RabbitMQ y Redis. A continuación, explicaremos las implicaciones de esto último y de cómo nuestro sistema se ha mejorado para ofrecer a nuestros clientes un mejor servicio.

Las tres acciones principales que el sistema de inserción hace son:

  • Calcular valores delta (por ejemplo, el cálculo de la energía que se consume en una hora o un día),
  • Comprobación de alertas y
  • Almacenamiento de datos.

Para realizar esas acciones de la manera más eficiente y escalable posible, el nuevo producto tenía que ser de naturaleza Open-source, adecuado para el stream processing y con el máximo rendimiento. Aquí es donde el sistema de computación distribuida en tiempo real, Storm, entra en juego. Storm se integró en el sistema de DEXMA para completar las tareas mencionadas de la manera requerida.

DEXMA ya recoge más de 12 millones de nuevas lecturas al día
procedentes de 30.000 medidores.

 

Backtype, una plataforma de marketing intelligence adquirida por Twitter, implementó Storm en 2011. Fue entonces cuando lanzaron el sistema de computación como un proyecto Open-source. Storm, permite dividir el proceso en tareas pequeñas y decidir cuántos recursos se asignan a cada tarea. Esto es posible ya que los “bolts” dentro del sistema realizan tareas individuales y exactas. Esta división nos permite escalar de manera inteligente. Para ilustrar sus capacidades, Twitter, Spotify, Groupon, y ahora DEXMA,  lo utilizan para procesar millones de datos todos los días.

El uso de componentes de software Open-source es una garantía para nuestros clientes de que controlamos todo el proceso de desarrollo. Que no hay ninguna caja negra que dependa de una empresa externa. Las licencias Open-source permiten a nuestro equipo de desarrollo controlar y comprender el comportamiento de componentes de software y así, ajustar su rendimiento al límite. De esta manera, nuestros desarrolladores pueden aprender técnicas para aplicar en DEXCell Energy Manager. Adicionalmente, este tipo de licencia nos permite, en ciertos momentos, corregir errores y contribuir a la comunidad.

Otros componentes Open-source utilizados por DEXMA incluyen: PostgreSQL, Redis y bases de datos MongoDB. Sistema de gestión de colas RabbitMQ, servidores web Apache y Nginx, la plataforma de desarrollo continuo Jenkins y el sistema operativo Linux.

Tecnología de Twitter y Spotify

Además de ser Open-source, Storm es perfecto para el stream processing, es por eso que esta tecnología es ideal para Twitter y Spotify. Esto es debido a que los datos son capturados desde una cola (que actúa como un buffer temporal) y se procesan cuando pasan por cada uno de los “bolts”. RabbitMQ y RedisDB son utilizados dentro del proceso como sistema de colas y cache (almacenamiento temporal) respectivamente. RabbitMQ es una de las plataformas de gestión de colas de mensajes más flexibles y robustas.  RedisDB por su parte, es una de las bases de datos más rápidas para el almacenamiento de clave-valor.

¿Por qué necesitamos stream processing?

En Big data hay dos tipos de procesamiento de datos: batch y stream. En comparación con Batch, donde los datos pasan a través de más etapas, en stream los datos fluyen continuamente. Puesto que los dataloggers (las pasarelas que envían datos de los medidores) nunca dejan de enviar datos, el procesamiento de datos en stream es una necesidad. Este mecanismo más rápido de procesamiento es esencial para el rendimiento de primera clase de DEXCell Energy Manager.

Ahora que hemos explicado la nueva arquitectura de DEXMA de inserción y almacenamiento de datos, es momento de hablar de cómo esto beneficia a nuestros clientes.  Con la plataforma renovada, cada cliente tiene su propia cola (anteriormente eran colas compartidas). Esto permite que cada cliente reciba un tratamiento individual de sus datos sin riesgo de ser afectados por los flujos masivos de datos de otros clientes. Así mismo, el producto junto con la inserción de datos tienen una mayor estabilidad. Por último, nuestros clientes experimentarán un procesamiento de datos más rápido y una mayor escalabilidad.

Con todo esto aclarado, esperamos que disfrutéis de nuestro mejorado DEXCell Energy Manager!



New Call-to-action