Cómo diseñar una arquitectura Big Data y no morir en el intento?


Gartner [1] define los sistemas Big Data con las “tres V”: grandes volúmenes, alta velocidad y gran variedad de activos de información. A medida que estos tres componentes crecen, la variedad se convierte en el factor más decisivo a la hora de evaluar una inversión en Big Data.

Gartner define los sistemas Big Data con las “tres V”: grandes volúmenes, alta velocidad y gran variedad de activos de información. A medida que estos tres componentes crecen, la variedad se convierte en el factor más decisivo a la hora de evaluar una inversión en Big Data.

En algunas encuestas realizadas en el 2017 entre los responsables de los departamentos de Big Data [2], se destacó la variedad de los datos como el factor más importante, seguido por el volumen (25%), y finalmente la velocidad (6%). La tendencia, destaca que la gran oportunidad se encuentra en la integración de más fuentes de datos, no de cantidades mayores, sino de diferentes fuentes de datos. Es decir, destaca la característica de la variedad como la característica más importante, relegando a un segundo lugar la característica del volumen. Por esto las empresas se enfocan en identificar nuevas fuentes y en integrar fuentes de datos que tradicionalmente han sido utilizadas para otros fines, como es el soporte de sus aplicaciones: Aprovechar más las fuentes de datos ha surgido como el nuevo reto dentro del mundo corporativo.

Al diseñar arquitecturas Big Data, nos encontramos con un stock de herramientas muy amplio y en constante crecimiento que muchas veces nos hace sentir abrumados a la hora de enfrentarnos a este tipo de retos.

Antes de empezar a adentraros en el post, no queremos que piense que después de leerlo tendrá la solución a su arquitectura, no obtendrá esa “foto” de la arquitectura que debe utilizar, ya que no hay una arquitectura única que cubra todos los casos de uso, pero si queremos que con este artículo sepa: qué preguntarnos y qué cosas tenemos que tener en cuenta a la hora de diseñar una solución.

¿Qué características tiene que tener tu sistema Big Data?

Normalmente lo que nos encontramos es que cuando implantamos una nueva arquitectura Big Data, lo hacemos para un “pequeño objetivo“, es decir, surge de la necesidad de dar solución a un caso de uso concreto. Por un lado, esto es algo positivo y algo que en otras ocasiones hemos recomendado encarecidamente: “Centra tu objetivo“. Sin un objetivo claro es posible que tu solución fracase, pero por otro lado, hay que tener en cuenta que la arquitectura crecerá y deberá ser capaz de soportar futuros casos de uso.

Una de las cosas más importantes es que definas las “capas” a alto nivel que poseerá su arquitectura, y que ninguna de sus capas se base en una herramienta concreta, porque muchas veces la arquitectura necesitará de diferentes tipos de herramientas para cubrir las distintas problemáticas a las que debe dar respuesta. Veamos un pequeño ejemplo:

Nuestra arquitectura Big Data debe tener un punto de entrada de los datos o lo que muchas veces se denomina como “Data Ingestion layer“, si a priori nuestro caso de uso necesita adquirir los datos de bases de datos relacionales, es posible que decidas utilizar “Sqoop” como herramienta. ¿Qué pasa cuando en un futuro necesites leer ficheros, logs, e-mails? Tendrás que incorporar nuevas herramientas como Flume, Nifi, etcétera.

Este tipo de situaciones no sólo se darán en su “Data Ingestion Layer” sino que le pasará en las diferentes capas de su arquitectura, por lo que nuestra recomendación es que no diseñe partiendo de una herramienta, en lugar de eso intente que su arquitectura se base en nodos modulares que formen parte de cada una de las capas de la arquitectura. Esto hará de su diseño una arquitectura escalable y modular.

El uso de diferentes herramientas te permitirá dar soluciones a más casos de uso, eso sí, esto no significa que lo use todo. Procure evaluar las herramientas antes de incorporarlas y pensar a futuro, ya que un sistema con herramientas muy variadas aumentará su complejidad en cuanto a gestión y administración.