Arquitectura Big Data: ¿Dónde ubico mi solución de Big Data?¿En mi casa o en la tuya?
Quiero empezar este post como parte introductiva, diciendo y afirmando que la información es un activo muy importante para cualquier empresa, la cual permite generar un conocimiento que vale su peso en oro y más ahora, donde hay que competir en un mercado cada vez más digitalizado y en este caso los datos asumen un papel crucial en la estrategia a seguir para ser visibles en este.
Ahora bien, si el dato tiene tanta relevancia, es lógico pensar que contra mas tengamos mejor, pero esto no es tan simple, porque la cantidad no es sinónimo de garantía de éxito, detrás hay varios procesos a realizar, dónde pueden intervenir muchos actores (tecnologías) y es dónde las soluciones Big Data, las cuales nos permitirán gestionar y procesar esa gran cantidad de nuevos datos, tiene una relevancia importante.
Muchos diréis que con las soluciones tradicionales de Business Intelligence integradas desde hace años en la empresa para gestionar y procesar los datos, os va muy bien y no lo pongo en duda, pero si se quiere crecer y sobretodo ser competitivo hay que dar un paso más e incluir en vuestro Business Intelligence ese plus llamado Big Data, para dar solución a las limitaciones existentes en vuestra inteligencia de negocio y la verdad, es que hay muchas y variadas como por ejemplo la gestión y procesamiento de datos semi o no estructurados, que actualmente inundan las redes.
Hasta aquí todo bien, entendemos la situación, estamos partiendo de la base que se ha planificado una estrategia a seguir en función de una necesidad detectada en el mercado, y que para llevar a cabo dicha estrategia, se confirma que hay que incluir soluciones Big Data para cumplir con el objetivo fijado , pero ahora la pregunta es:
¿Cómo hago esta transición para implementar la solución de Big Data?
Aprovechare esta pregunta primeramente para exponer también cuales son a mí entender, las principales causas de fracaso de implementación de un proyecto Big Data y hay que tener en cuenta:
- Ausencia de Objetivos Claros
- Management poco convencido
- Mala Planificación
- Pocos Conocimientos en Big Data
- Baja Calidad de Datos
- Seguridad y Privacidad
Cuando hay un proyecto de Big Data sobre la mesa, una de las primeras cosas a realizar antes de empezar a contratar servicios y otros como un loco, hay que saber bien o por lo menos tener una estimación, de la tecnología a utilizar lo cual nos llevara a concluir y conocer el coste, tiempo , recursos y esfuerzo a destinar para su implementación, en pocas palabras, se ha de realizar una especie de PoC (Prueba de Concepto), para determinar si es viable o no y que soluciones alternas existen.
Supongamos que se determina que el proyecto es viable y se da luz verde para su integración en la empresa, aquí es donde empezamos a definir mejor la hoja de ruta a seguir.
¿Y ahora que hacemos y con quién?
Para contestar a esta pregunta, yo solo me voy a centrar en la parte tecnológica, la parte de Project Manager, Gestión de Riesgos, metodologías Agilé a utilizar para la gestión del proyecto (Scrum, DSDM, …), concienciación de los Stokeholders ( internos y externos)… y más, lo dejo de banda, pero eso no quiere decir que no sea importante, todo lo contrario, todo esto es una parte de gestión importante para que un proyecto de integración de Big Data tenga éxito, estos elementos y sus respectivos roles son de suma importancia.
En el mercado hay muchas soluciones orientadas al Big Data, pero no todas son útiles para nuestro caso, esto lo determinara las características del proyecto, funcionalidad, objetivo,… y es faena del Data Architect, de determinar cuáles son las herramientas o soluciones tecnológicas más adecuadas (por función, usabilidad, coste asociado, soporte, etc) entre las centenares que existen.
Como ejemplo, esta imagen:
Hay que pensar que el Data Architect debe poder entender la solución a implementar de punta a punta para escoger las mejores herramientas a utilizar, y esto supone también coordinar los diferentes grupos de trabajo y entenderse muy bien tanto con el Business como con el grupo de IT (desarrolladores, administradores, etc), es decir es una especie de “hub” entre todos los participantes a nivel de negocio y tecnológico del proyecto.
Soluciones para cada capa de la solución
Hay que tener en cuenta que normalmente una arquitectura de Big Data, consta de cinco capas principales a nivel general:
- Recolección de datos a partir de bases de datos (Estructuradas, semi o no estructuradas)
- Almacenamiento de datos.
- Procesamiento de datos contemplando los procesos ETL y análisis.
- Visualización e Entrega de la información.
- Administración de la solución.
Diagrama arquitectura general Big Data:
Teniendo esto presente, hay que ser conscientes que cada capa descrita, puede tener centenares de herramientas a utilizar, pero como he dicho anteriormente, será las características y funcionalidades del proyecto a llevar a cabo, el que determinara de una forma más precisa, cuáles de estas herramientas serán más óptimas para cubrir las necesidades para llegar al objetivo fijado.
¿Pero dónde ubicamos todo estas capas?
Para contestar esta pregunta, primero hay que tener presente que anteriormente ya hemos acotado la búsqueda en función las características y funcionalidades del proyecto, seleccionando y analizando e incluso testeando las posibles herramientas existentes del mercado que utilizaremos para cada capa de Big Data de nuestro proyecto, obteniendo un primer borrador previo del diseño de la solución, con las funcionalidades de los posibles componentes a utilizar, pero cuidado, estos aun no tienen nombre propio.
En siguientes post, ya profundizaremos más en las posibles herramientas a utilizar en las diferentes capas del Big Data, dependiendo del tipo de proyecto, pero ahora nos centraremos en donde ubicar toda o parte de la solución.
Para poner nombre y apellidos a estos componentes, debemos situar la solución en una ubicación, este aspecto será uno de los más relevantes a definir, ya que de su decisión, se determinará entre otras cosas, dos conceptos fundamentales del proyecto:
- Los servicios tecnológicos a utilizar serán los más óptimos acorde a las características del proyecto.
- El coste CAPEX u OPEX según ubicación escogida.
Buscando casa para el Big Data.
Para hacernos una idea, imaginemos que nos queremos independizar de casa de nuestros padres, actualmente el mercado nos da dos alternativas, comprar una casa o alquilarla.
La alternativa a escoger dependerá en gran parte de nuestras necesidades y recursos que tengamos en ese momento, pero principalmente será el dinero disponible para gastar y la estabilidad laboral para poder ir pagando las cuotas tanto de la hipoteca como del alquiler según el caso, el que nos marcara el camino a escoger.
Con la ubicación de la solución del Big Data, ocurre algo parecido, ¿dónde vivirá mejor en base a nuestros recursos y necesidades?
La casa donde ubicaremos nuestra solución de Big Data, dependerá entre otras cosas de las características de la solución como ya se ha dicho, recordemos que ya sabemos qué tipo de componentes y funcionalidades queremos utilizar, es decir conocemos el volumen de contenido aproximado de muebles, electrodomésticos y otros que queremos poner en nuestra futura casa lo que nos permitirá saber por ejemplo, los m2 mínimos que necesitaremos para una distribución óptima.
Hay que tener presente que hoy en día, tener una solución Big Data implementada en “on promise”, tiene unos costes derivados (CAPEX) muy elevados, que solo pocas empresas se lo pueden permitir, por lo tanto, comprar una casa ahora es difícil.
Pero no nos quedaremos en la calle, una de los aspectos buenos de los cambios de tendencias y tecnológicos, es que estos nos ofrecen alternativas a costes muy competitivos para no quedarnos atrás y surge un actor muy importante en el mundo del Big Data, el “Cloud computing” el cual comprende un conjunto de tecnologías que permiten ofrecer servicios TI (Almacenamiento, procesamiento, aplicaciones, etc) escalables y elásticos a través de Internet.
Estos servicios en cloud, reduce mucho los costes de implementación y mantenimiento de la solución Big Data respecto a ubicarla “on promise”, ya que pagamos solo por uso de sus infraestructuras y servicios, en pocas palabras, nos interesa alquilar una casa porque es más viable económicamente y es lo que más se ajusta ahora a mis necesidades.
El Cloud computing nos brinda diferentes implementaciones según nuestros recursos y necesidades, como el cloud privado, público o hibrido y también dentro de estos, nos ofrece la posibilidad de utilizar sus servicios como IaaS (Infraestructura como Servicio), PaaS (Plataforma como Servicio), SaaS (Software como Servicio) dónde albergar nuestra solución y utilizar dichos servicios.
Hay que añadir también, que hasta hace poco están surgiendo los servicios de DaaS ( Data como Servicio) y DBaaS (Big Data como Servicio) como por ejemplo, las empresas Qubole o Doopex, que facilitan su uso a gran medida superando entre otros inconvenientes el de no tener personal cualificado para su desarrollo básico.
¿Qué casa de alquiler es más recomendable para mí?
En este caso, vamos a evaluar los posibles proveedores que nos ofrecen una ubicación mediante sus servicios PaaS e IaaS y herramientas orientadas al Big Data como SaaS, todo vía Cloud Computing, y dónde podremos implementar nuestra arquitectura de la solución.
Hay varios proveedores de este nivel en el mercado, pero yo me voy a centrar en tres, pero eso no quiere decir que las demás no sean óptimos o peores, es mi punto de vista particular y también dependerá del tipo de proyecto.
La evaluación la realizaremos a partir de varios aspectos como por ejemplo:
- Las soluciones ofrecidas se corresponden con la necesidad funcional real que necesita nuestro proyecto, a partir del análisis de dichas funcionalidades realizadas previamente.
- Interoperabilidad entre las diferentes capas de la solución, viendo la solución como un solo ente.
- Integración con diferentes herramientas ajenas al proveedor ya sean a nivel “on promise” como a nivel cloud.
- Costes y modalidades de facturación en relación a los servicios disponibles.
- Flexibilidad y escalabilidad frente a cambios tecnológicos y de proyecto.
- Etc.
Pasemos a ver las propuestas de algunos de estos proveedores de arquitectura para Big Data en Cloud:
1. Una opción de arquitectura para nuestra casa de alquiler podría ser AWS (Amazon Web Service):
Nos ofrece unos servicios basados en tecnología Big Data muy interesantes y fiables, como Amazon EMR (Elastic Map Reduce) basado en un marco de trabajo Hadoop el cual también nos permite ejecutar otros marcos de trabajo distribuidos populares, como Apache Spark, e interactuar con los datos de otros almacenes de datos de AWS.
Posee un interesante sistema de recolección de datos externos, habiendo dos opciones según necesidades, estas son AWS Import/Export y AWS Direct Connect, este último tiene un coste un poco más elevado que el primero ya que la subida de los datos se realiza con un punto de red directo con la plataforma AWS.
También dispone de un servicio bastante resolutivo cuando se necesita trasmitir datos en AWS a nivel de streaming (tiempo real), llamado Amazon Kinesis.
Costes de servicio reducidos al tener como forma de pago basado en uso x instancia x hora, existiendo dentro de las instancias, dos modalidades según coste , la reservada y la spot, pudiéndolas alternar entre ellas.
Se puede integrar con soluciones ajenas de los principales fabricantes tecnológicos, como es el caso de la solución de Informatica, Informatica Cloud, lo cual aumenta el potencial a niveles de calidad de datos o Gobierno de IT entre otros de la plataforma y con el software R Studio, para análisis a niveles predictivos de los datos albergados por ejemplo en los almacenes Amazon S3 o Amazon DynamoDB.
2. Una opción de arquitectura para nuestra casa de alquiler podría ser Microsoft Azure:
Ofrece una completa interoperabilidad con otras distribuciones Hadoop, mediante conectores que permitirán por ejemplo movilizar datos rápidamente entre Hadoop y SQL Server o SQL Server ParallelData Warehouse y conectores como HiveODBC.
Dispone de una gran integración entre Hadoop y soluciones Microsoft que pueden estar implementadas en la empresa, como por ejemplo pudiendo integrar el Active Directory para la gestión de la seguridad, … con lo que se desprende que va muy orientado a clientes Microsoft.
Dispone de un potente servicio orientado a Big Data para el análisis de datos pudiéndose integrar con herramientas de Business Intelligence o SQL, este servicio se llama Microsoft Azure HD Insight, el cual es compatible totalmente con Hadoop al utilizar la plataforma de datos Hortonworks (HDP), este es uno de los cuatro principales desarrolladores y distribuidores de Apache Hadoop a nivel mundial, lo cual le da credibilidad.
3. Una opción de arquitectura para nuestra casa de alquiler podría ser Cloudera Enterprise:
A parte de ser uno de los cuatro principales desarrolladores y distribuidores de Apache Hadoop a nivel mundial, como tal dispone de una plataforma de gestión y análisis de datos más rápida, sencilla y segura basada en Apache Hadoop y las últimas tecnologías de código abierto.
Su plataforma CDH, integra diversos proyectos de Apache como Spark, Mahout, enriqueciendo las posibilidades del ecosistema.
Tiene un rendimiento líder a través de cargas de trabajo, incluyendo un promedio de mejora 3x en el procesamiento de datos, con soporte adicional de Hive-on-Spark, y una mejora de promedio 2x del análisis de inteligencia de negocio con actualizaciones de Apache Impala, ideal tanto para los proceso Batch como Streaming.
ACABANDO...
Solo he descrito algunos aspectos de cada una de las arquitecturas, pero podríamos llenar hojas y hojas para cada una de ellas y sus respectivos servicios.
También repetir, que existen otros proveedores para dichas arquitecturas, como MapR, IBM Insight, Oracle o Google Big Query y el hecho de que no los haya incluido no significa que no sean aptas para proyectos Big Data, lo pueden ser sin problema, pero lo importante de este post es comprender el global de la solución que nos marcara donde es más idóneo su ubicación.
CristianA.