Arquitectura Lambda
Israel Gaytán CTO Vitatronix @isragaytan
¿De qué vamos a hablar?
• Mensajeo , Nempo real y batch • Problemas de integración de datos • Arquitectura Lambda • ¿Cómo me ayuda? • KaRa, Spark, Cassandra , Redis • Implementación
¿De qué vamos a hablar?
Necesidades Empresariales
• Infraestructura Escalable • ParNcionamiento de los datos • Replicación • Arquitectura descentralizada (Shared Nothing) • Paralelización • Aislamiento • Localidad de datos
El problema
• El problema de hoy es que no todas las aplicaciones pueden ser solamente en lotes (batch processsing)
• Existen aplicaciones que requieren hacer un cómputo sobre los datos para tomar decisiones en Nempo real
• Ej: Alertas Financieras, Detección de Fraude etc
La necesidad Necesito acceder rápidamente a datos históricos (Big Data) para efectuar modelos predicNvos pero también con datos en Nempo real.
Solución
¿En que consite la arquitectura Lambda?
• La desarrollo Nathan Martz • Se cuenta con 3 capas
• Capa por lotes (Batch Layer) • Capa de servicio (Serving Layer) • Capa de velocidad (Speed Layer)
Capa por lotes (Batch Layer)
• Responsable de almacenar todos los datos que llegan ya sea a un repositorio como HDFS, Cassandra , Ceph etc.
• Efectuar el cómputo sobre esos datos para acceder a vistas o a información arbitraria.
Capa de Servicio (Service Layer)
• La salida de la capa por lotes es un conjunto de datos conteniendo el cómputo de las vistas
• La capa de servicio es responsable para la indexación y exposición de esas vistas para que puedan ser buscadas (querys)
Capa de Velocidad (Speed Layer)
• La capa de velocidad es encargada de efectuar el cómputo en Nempo real.
• Las vistas en Nempo real son transitorias tan pronto como los datos se propaguen a la capa batch y de servicio
Arquitectura Lambda
El problema de integración de datos
• Se Nenen muchos sistemas y se requiere que se comuniquen unos con otros
• A través de APIS, Servicios Rest, Web Services etc
• De igual manera se Nenen otros repositorios de datos dónde se requiere guardar e interactuar con estos datos.
El problema de integración de datos
Aplicaciónes Web Logs Indexación y
búsqueda Aplicaciones legadas
DB1 DB2 DB4 DB3
Solución
KaRa
• Mensajeo Distribuido de alto desempeño • Desacopla flujos de datos • Maneja Carga masiva de datos • Soporta Consumidores Masivos • Distribución y parNció a través de nodos • Recuperación automáNca contra fallos de brokers
KaRa
Aplicaciónes Web Logs Indexación y
búsqueda Aplicaciones legadas
DB1 DB2 DB4 DB3
Arquitectura Lambda
App 1
App 2
App 3
App 4
(Batch Layer)
(Service Layer) Admin Users Dashboards
(Speed Layer)
Vistas en Nempo Real
Vistas por lotes
Casos de uso
• Stream de datos de KaRa a Cassandra • Stream de datos de Kafla a Spark y escribir en cassandra
• Leer datos de Spark Streaming y escribirlos en Cassandra
• Leer datos de Cassandra a Spark
¿Y el Nempo real apa?
Spark Streaming
• Necesito resultados conNnuos en un stream • Se requiere procesar los datos y devolverlos a una aplicación o persisNrlos
• Flujo conNnuo de datos a través de DiscreNzed Data Streams
• Garangas que solamente se proceso una vez el dato
• A los datos que llegan puedo aplicar algoritmos de Machine learning con MLLib
Aplicaciones
• Seguridad • Machine Learning • IoT • Detección de Fraudes • Genómica • Computación Biológica
Ok ok, pero quiero dashboards en Nempo real
Existen varias opciones 1.-‐ El cómputo una vez hecho por Spark Streaming / Storm lo persisto en un cache como Redis 2.-‐ Redis es un servidor de estructuras de datos que almacena en memoria (MemCached) 3.-‐ UNlizo Node/JS Socket.IO con el publish subscribe de REDIS para empujar datos
2da Opción
• El cómputo hecho por Spark Streaming lo devuelvo a KaRa y exisNrá algún consumidor (aplicación) para pintar los datos
• KaRa también se integra con NodeJS
Conclusión
• La arquitectura lambda implica muchas tecnologías , e infraestructura
• Puede ser muy úNl en casos de negocio • Se debe tener en cuenta las configuraciones de KaRa, Spark Streamig, Spark (Cluster), Cassandra , Redis etc
• DEN VALOR A SUS DATOS
Top Related