Material de la charla “Creando una Arquitectura para Big Data Analytics” en ArqConf 2015
Esta charla fue presentada el 30 de Abril en la Conferencia de Arquitectura IT (ArqConf 2015). En la misma presenté las características deseadas, los desafíos y una propuesta de arquitectura para Big Data Analytics que permite computación en real-time.
EDIT: 2015-05-29: Agregado el video de la charla
Speakers ArqConf 2015
#
Sobre la Charla
Título: Creando una Arquitectura Moderna para Big Data Analytics
Hay cientos de opciones de frameworks y sistemas de Big Data, cuando se empieza a estudiar cómo armar la solución completa, rápidamente nos encontramos con la necesidad de tomar muchas decisiones que van afectar el proyecto a largo plazo, preguntas como: dónde y cómo almacenar, cómo procesar en batch y realtime; Map-Reduce, DAG, Hadoop, Spark, Storm, Hive, NoSQL, son algunos de los términos que hay que conocer cuando se arma una arquitectura de Big Data. Esta charla va a presentar brevemente estas tecnologías y opiniones para utilizar en su próxima plataforma de análisis de datos.
#
Video de la charla
{% raw %}
#
Puntos Clave
Si no pudiste ver la charla o si solo querés algunos tips rápidos sobre, acá les dejo los puntos que considero clave para el éxito de este tipo de proyecto.
##
Atributos esperados
- Simple de pensar, con la menor cantidad posible de sub-sistemas
- Ser resiliente a fallas de sistemas y humanas
- Optar por implementaciones que tengan escalabilidad linear
- Soportar Dashboards y Análisis Exploratorios
- Soportar Operaciones Batch y Real-time
##
Conceptos técnicos
Los conceptos aplicados no son nuevos, pero la aplicación de los mismos en conjunto generan excelentes resultados y escalabilidad:
- Todas las operaciones deben ser inmutables, esto simplifica la forma de pensar y evita errores.
- Las transformaciones (ej: A=A+1) deben ser expresadas en Eventos.
- Por más tentador que lo sea trabajar directamente con
JSON
aplique schema a tus datos. - Almacená los todos los eventos crudos (
raw events
) en un storage escalable (S3, HDFS). - Las metricas del dashboard se computan y se guardan en el un datastore escalable con alta performance de lectura.
- Los análisis exploratórios pueden ser hechos con consolas iterativas tipo REPL o ambientes iterativos mas completos como Apache Zepelin
#
Tecnologias Aplicadas
La elección de soluciones se basó en uso de tecnologías relativamente maduras y que sean FOSS, obviamente se puede obtener resultados similares con distintas composiciones, lo importante es preservar los atributos
- Data Schema: Apache Avro
- Message Bus: Apache Kafka
- Storage: Amazon S3 o HDFS
- Processing: Apache Spark + Spark Streaming
- Data Store:
#
Slides & Fotos
{% raw %}
Las fotos del evento se encuentran en el Facebook de ArqConf
#
Referencias
Los conceptos resumidos en esta presentación son resultado del estudio e investigación que se está dando en el mundo, dejo un listado de los blogs posts y fuentes de información que me parecieron más relevantes para esta charla.
Big Data Architecture - Reading List
#
Tu opinión!
Estas tecnologías y soluciones todavía tienen un largo camino por recorrer antes de ser consideradas patterns, aunque en los últimos años viene aumentando la adopción no hay una solución única y mucho menos perfecta. Qué opinas? Qué harias diferente de esta propuesta y porqué? Hacé tus comentarios a continuación!