Big data explorando los nuevos paradigmas del desarrollo

El pasado día 6 de Junio asistimos a una jornada de introducción al Big Data en enpresadigitala donde Jorge Ubero nos introdujo en el paradigma de Big Data. Y es que tal y como dijo Eric Schmidt (CEO de Google) cada día producimos tanto contenido como produjo toda la humanidad desde hace 2000. Esto son aproximadamente unos 2.5 Exabytes de datos procesables cada día. Esto hace que el modelo de escalabilidad vertical, presente en la mayor parte de los proyectos, con sus arquitecturas de CPD centralizado, bases de datos relacionales y con sus datos estructurados se muestre en cierta medida caduco. Ante tal cantidad de datos, el paradigma de Big Data presenta arquitecturas altamente escalables y distribuidas, con capacidad de procesamiento en paralelo, almacenes distribuidos, datos no sólo estructurados y no sólo relacionales, que han sido adoptadas y desarrolladas por los grandes players de Internet como Google, Amazon, Facebook, Twitter o Dropbox. En este contexto aparecen nuevas tecnologías en el ecosistema de Big Data como Hadoop, MongoDB, HBase o HDFS por citar unas pocas. En la jornada nos comentaron algunos ejemplos de Big Data en redes sociales, la aplicación Metamail desarrollada por Igalia o el caso de éxito de Obama en la campaña de 2012. Desafortunadamente, la noticia del mes es precisamente una aplicación de Big Data, la que conforma el corazón del programa PRISM.

¿Por qué acudimos a la jornada? La respuesta es más o menos clara, durante el año pasado (2011-2012) el equipo de zylk.net ha estado involucrado en una serie de desarrollos relacionados con lo que se conoce como Big Data. El Big Data es un escenario de alta escalabilidad y procesamiento en paralelo de exabytes de datos no estructurados donde los modelos dejan de ser relacionales debido a las limitaciones de procesamiento y alojamiento de las arquitecturas clásicas de CPD, con bases de datos relacionales y datos estructurados. Como ejes principales dentro del big data creemos que habría que marcar tres líneas principalmente

que están inter-relacionadas ya que no puede existir map&reduce sin filesystem distribuido y no puede existir una bigtable sin filesystem distribuido. ¿ Por qué ?, pues a nuestro modo de ver el verdadero cambio de paradigma está en la cuestión de qué mover cuando tienes que hacer un cálculo. En el nuevo paradigma lo que se mueve es el cálculo y no el dato, de ahí la importancia del filesystem distribuido.

Otro punto clave del nuevo modelo es el bajo coste de las infraestructuras ya que para montar este tipo de sistemas se requieren PCs normales y no servidores con cabinas de disco etc... y el tercer punto clave creemos que es la escalabilidad horizontal, es decir a un filesystem distribuido se le pueden incorporar nuevos nodos sin que esto sea un problema. Las granjas de PCs pueden llegar a tener miles de PCs trabajando conjuntamente.


Los proyectos o las líneas que ha seguido zylk para incorporar estas nuevas tecnologías podríamos clasificarlos en tres tipos

  • Pruebas de concepto
  • Proyectos de I+D
  • Proyectos con clientes
     

Desde el punto de vista de las pruebas de concepto se han trabajado tres líneas, algunas de ellas después se han seguido trabajando en proyectos de I+D y otras se han pasado a proyectos con clientes.

Línea 1:

  •     Big data desde el punto de vista del BI (Business Intelligence)
  •     Procesado de información con map & reduce
  •     Almacenamiento masivo

Línea 2:

  •     Big data desde el punto de vista del ECM
  •     Almacenamiento masivo con bajo coste
  •     Escalabilidad horizontal

Línea 3:

  •     Big data desde el punto de vista del desarrollo de aplicaciones
  •     Escalabilidad horizontal
  •     Almacenamiento masivo

El por qué de estas tres líneas y este orden a la hora de afrontar los proyectos está relacionado con la forma de hacer de zylk.net

Lo primero que hacemos en zylk.net cuando aparece una nueva tendencia/tecnología, que creemos pude ser interesante desde el punto de vista de nuestras líneas de negocio, es realizar un conjunto de pruebas de concepto, a partir de las conclusionesdecidimos si la tendencia está o no madura para ser utilizada, decidiendo si es interesante para nuestros clientes y haciendo una previsión del tiempo que dicha tendencia va a necesitar para:

  • Quedarse en el mercado.
  • Desaparecer sin hacer ruido.
  • Desaparecer haciendo ruido.
     

Lo segundo que hacemos es, si la hipótesis de trabajo es que el nuevo paradigma ha llegado para quedarse entonces abrimos varias líneas de trabajo. Proyectos de I+D traccionados por zylk, proyectos piloto traccionados con clientes tecnológicamente activos y con interés en adoptar las nuevas tendencias (no son todos los clientes pero sí que son algunos). Lo hacemos de esta manera porque creemos que las pruebas de concepto sirven para evaluar el riesgo de la nueva tendencia pero no sirve para evaluar los riesgos con el cliente (metodología, infraestructuras etc...).

Lo tercero, si los dos pasos anteriores dan buenos resultados, sería presentarlo al resto de clientes e incluso si se puede crear paquetes/plugins para incorporar las nuevas tendencias a nuestro portafolio.

Resumiendo en este período hemos realizado los siguientes proyectos:

  • Pruebas de concepto sobre MongoDB
  • Pruebas de concepto sobre HDFS
  • Pruebas de concepto sobre Map & Reduce
  • Pruebas de concepto sobre Hbase
  • Pruebas de concepto sobre Elastic Search


Como resultado de estas pruebas hemos creado una pequeña aplicación para la gestión de logs que es capaz de gestionar del orden de 100 millones de filas con tiempos de respuesta de aplicación web, usando ElasticSearch más Hbase. En artículos ulteriores presentaremos esta prueba y las conclusiones obtenidas que resumidas son algo como (si tu sistemas almacena menos de 10 millones de registros mysql es una opción, si el número de registros va a ser de 100 millones o más sería interesante usar algún almacen no-SQL tipo HBase o MongoDB).

Otro escenario claro de uso creemos que son aplicaciones/servicios que se creen nuevas para su uso masivo en interentet (no todo el mundo va a tener el éxito de twitter pero por si acaso se pueden montar las nuevas aplicaciones/servicios sobre estas nuevas tecnologías ya que el coste del desarrollo es algo mayor pero no es prohibitivo).

Además hemos estado involucrados en varios proyectos de I+D relacionados con la generación de informes en tiempo real usando datos de opendata (el proyecto opendash, junto con codesytaxdeustotech etc...) y un proyecto de firma digital en dispositivos móviles que hace uso de un sistema de almacenaje de bajo coste basado en HDFS.

Con los clientes hemos realizado varios pilotos (todos ellos puestos en producción ya que cuando hablamos de pilotaje queremos decir que es una tecnología no usada por el cliente que debe normarse y que el cliente debe apostar por ella para que el proyecto salga bien). Uno de estos proyectos servía para hacer cálculos masivos basados en Hbase y M&R en una empresa y dos fases de un proyecto para intercambio de ficheros basados en HDFS y MongoDB.

00

More Blog Entries

0 Comments