jueves, 23 de enero de 2014

WSO2 BAM & BIGDATA

WSO2 BAM  =  Hadoop, Hive, Cassandra, Google Gadget, WSO2 Carbon.

En esta ocasión presentamos el producto WSO2 BAM , analizaremos sus ventajas y arquitectura.

WSO2
El fabricante WSO2 ofrece una completa suite de productos Open Source SOA .  Son contribuidores de muchos productos de Apache incluyendo: Apache Axis, Apache Rampart, Apache Synapse y más. Los productos de WSO2 se distribuyen bajo licencia Apache. Algo que destacar es que la versión de libre descarga de sus productos también es única y es la versión “productiva”, no manejan una versión alternativa “community” como otros vendedores. 

BAM
Según Gartner,  Business Active Monitoring (BAM)  describe los procesos y tecnologías que nos permiten el análisis de indicadores de negocio basados en data de tiempo real.
BAM es usado para mejorar la velocidad y efectividad de operaciones de negocio manteniendo la pista de que lo que esta pasando y haciendo visibles los posibles problemas. El concepto BAM puede ser implementado con muchos tipos de herramientas de software, no es una especificación de software.

BIG DATA
Es el termino para un conjunto de datos muy extenso y diverso que es difícil de procesar usando herramientas de base de datos o aplicaciones tradicionales de procesamiento de datos. Los retos incluyen capturar, subsanar, almacenar, buscar , compartir, transferir, analizar y visualizar.

WSO2 BAM
Es un producto que nos ofrece  un BAM de “propósito general” , esto quiere decir que no solo es para monitorear indicadores de procesos de negocio , sino casi cualquier fuente de datos que conectemos  usando su API . 
BAM usa Hadoop para procesar gran cantidad de datos en poco tiempo, por esto también es una herramienta que complementa una solución Big Data.
Para monitorear otros productos WSO2 tiene funcionalidad Out of the Box, muy sencilla y simple de configurar. 


COMO FUNCIONA WSO2 BAM
A continuación veremos paso a paso BAM agrega, analiza y presenta los datos: 







PASO  1
Los datos llegan de sistemas externos (  Agregar Datos ) , esto se puede hacer síncrona o asíncronamente usando una cola, para el envío se usa el API Data Agent , esto es : tenemos un API REST para enviar los datos al servidor entonces el cliente lo podemos escribir en cualquier lenguaje, si es JAVA tenemos librerías para hacerlo de forma fácil.

PASO 2
Los datos son recibidos por el componente Data Receiver, este componente los carga en la base de datos Cassandra , donde están los datos no procesados.

PASO 3
Para analizar los datos, se usa Apache Hive , este componente recoge los datos de Cassandra , los analiza y los inserta en la base de datos relacional ( por defecto H2, puede ser Oracle, Mysql , etc) . Apache Hive nos abstraer de la fuente y destino de datos, con esto podemos concentrarnos en implementar los queryes Hive que son sql “friendly”  los cuales analizan los datos.  Estos querys pueden programarse para ejecutarse cada X segundos. Apache Hive por debajo usa procesos Hadoop para ejecutar la analítica de querys Hive en paralelo y usando map reduce.

PASO 4
Los datos ya analizados (los resultados) son insertados en la base de datos relacional, listos para que sean explotados por las herramientas de visualización.

PASO 5
Para presentar los datos, extraen la data procesada de la base de datos relacional. Tenemos tres componentes: un dashboard web , reportes con Jaspers Reports y gadgets con WSO2 Gadget , estos últimos los más interesantes, descritos mas adelante.


CAPACIDAD MULTITENANCY
En una organización grande es muy común tener departamentos y dominios diferentes de información lo cual va unido a la necesidad de tener separar totalmente la administración/configuración y datos, esto se puede lograr sin necesidad de crear otra instancia de este, reusando la misma infraestructura. 






CAPACIDAD DE VISUALIZACION
El input de los componentes de visualización es por defecto la base de datos relacional H2 ,
Para esta capacidad se tiene tres componentes:
Dashboard : para indicadores en tiempo real en una interfaz web , no consumible desde otra aplicación .
Reports : para tener reportes impresos se usa Japer Reports .
Gadgets : el componente más interesante de los tres, un gadget sigue la especificación Google Gadget son pequeñas porciones  consumibles como los “portlets” ,se pueden desplegar en cualquier servidor que siga la especificación, por ejemplo JIRA  o Confluce, formatean los datos usando solo : CSS, HTML5 y javascript, los datos llegan de un servicio REST implementado con jaggery. Pueden ser construidos de cero o basándonos en uno generado con Gadget Generartor Tool .  




CAPACIDAD  DE ESCALAMIENTO  Y ALTA DISPONIBILIDAD
WSO2 BAM puede crecer horizontalmente, cada uno de sus componentes se puede duplicar y ser parte de un cluster, también puede ser desplegado en alta disponibilidad.
Los “Data Receiver” se pueden configurar y crecer en número, con esto se evita posibles problemas de cuello de botella cuando hay alto tráfico de datos.
La base de datos Cassandra  puede formar un cluster usando varias máquinas, WSO2 BAM reconoce esta configuración y la usa.
Los procesos de análisis Hadoop se pueden hacer en varias máquinas, de esta forma tenemos procesamiento intensivo y rápido. Finalmente la aplicación Web de visualización ( Reportes, Dashboard y Gadgets ) también se puede clusterizar , está ejecutándose sobre un servidor de aplicación WSO2 Carbon .




En la próxima entrada veremos un tutorial de como usar la herramienta paso a paso .

sábado, 16 de noviembre de 2013

BigDataSpain 2013

Pintura de Yoshi Sislay , ciudad de Barcelona

A continuación un miniresumen de lo que pare mi fue lo mas importante del BigData Spain 2013 celebrado en Madrid en el mes de Noviembre. 
Ahora vemos al BigData como una nueva forma de almacenar y procesar datos no estructurados, es mas rápida ( en paralelo ) , no centralizada ( en nodos distribuidos ) , mas barata ( escalamiento horizontal, añadiendo nodos de bajo coste  ) . Su caso de uso mas usual es hacer inteligencia de negocios en menos tiempo "hacer mas y mejor con menos dinero". A que empresa no le interesa encontrar las tendencias y patrones de su negocio ? . 

Así como la pintura de Yoshi Sislay , es interesante y "rentable" descubrir cosas que no ves a primera vista.
Acerca de Introducción de BigData por sectores 
  • Los sectores donde mas rápido se esta introduciendo son en orden son : Media (Prensa, Televisoras,etc) Telcos, Finanzas (Bancos,etc) , Retail , por ultimo BigData no es solo para empresas gigantes , las pequeñas y medianas tienen aquí una buena oportunidad .
  • Los gobiernos también están empezando se comentaron proyectos de Francia y España.
  • Para los citados sectores encontrar los casos de uso es muy fácil , en estos sectores ya hay empresas que tienen soluciones o están empezando a hacer pruebas de concepto.  El BBVA lo esta empezando a usar exitosamente con su empresa Beeva dedicada al BigData, ahora mismo tienen un concurso .
Como vender BigData
  • Todo empieza con una pregunta de gente del área de negocios .
    • Ejemplo negocio departament store ¿ Que relación se tiene entre los productos de la factura de un mismo cliente ? , Esto podría ayudar a establecer relaciones entre productos y ofrecer promociones por comprar el pack. 
  • Hacer una pequeña prueba de concepto, apuntar a tener resultados pronto. 
  • Con los resultados de gráficos de tenencias , el cliente tendrá mas preguntas, lo que llevara a un proyecto con mas inversión.
  • En un proyecto grande de BigData ya se hace necesario juntar a todos los players : IT y negocio

Acerca del producto de software "Hadoop"
  • Hadoop , se esta convirtiendo en el nuevo "Sistema Operativo" para gran parte de las soluciones "BigData".
  • La nueva versión de hadoop tiene mejoras importantes como Yarn que administra los recursos del cluster.
  • Hadoop aun no se usa para soluciones de aplicaciones online , pero lo puede ser complementándose con otro producto como MongoDB o Cassandra.
  • En EEUU ya se cuenta con los proyectos de BigData usando Hadoop con éxito y extensamente : dos mil nodos procesando datos.
Acerca de recomendaciones generales

  • El BigData en Cloud (Ej: Amazon ) hoy en dia es caro para usarlo intensivamente , una solución ingeniosa es hacer un mix entre cloud y no cloud ( Netflix lo hace )
  • Empezar ya! con pruebas de concepto con Hadoop , un cluster pequeño ( 4 nodos ) es fácil de instalar y se puede aprender , usar como laboratorio.