arquitectura lambda

27
Arquitectura Lambda #BIGDATAMX MEETUP @isragaytan [email protected] [email protected]

Upload: israel-gaytan

Post on 08-Aug-2015

377 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Arquitectura Lambda

Arquitectura  Lambda  #BIGDATAMX  MEETUP  

@isragaytan  [email protected]  

[email protected]  

Page 2: Arquitectura Lambda

Arquitectura  Lambda  

Israel  Gaytán  CTO  Vitatronix  @isragaytan  

Page 3: Arquitectura Lambda

¿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  

Page 4: Arquitectura Lambda

¿De  qué  vamos  a  hablar?  

Page 5: Arquitectura Lambda

Necesidades  Empresariales  

•  Infraestructura  Escalable  •  ParNcionamiento  de  los  datos  •  Replicación  •  Arquitectura  descentralizada  (Shared  Nothing)  •  Paralelización  •  Aislamiento  •  Localidad  de  datos  

Page 6: Arquitectura Lambda

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    

Page 7: Arquitectura Lambda

La  necesidad    Necesito  acceder  rápidamente  a  datos  históricos  (Big  Data)  para  efectuar  modelos  predicNvos  pero  también  con  datos  en  Nempo  real.  

Page 8: Arquitectura Lambda

Solución  

Page 9: Arquitectura Lambda

¿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)  

Page 10: Arquitectura Lambda

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.  

Page 11: Arquitectura Lambda

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)  

 

Page 12: Arquitectura Lambda

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  

Page 13: Arquitectura Lambda

Arquitectura  Lambda  

Page 14: 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.  

Page 15: Arquitectura Lambda

El  problema  de  integración  de  datos  

Aplicaciónes  Web   Logs   Indexación  y  

búsqueda  Aplicaciones  legadas  

DB1   DB2   DB4  DB3  

Page 16: Arquitectura Lambda

Solución  

Page 17: Arquitectura Lambda

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  

Page 18: Arquitectura Lambda

KaRa  

Aplicaciónes  Web   Logs   Indexación  y  

búsqueda  Aplicaciones  legadas  

DB1   DB2   DB4  DB3  

Page 19: Arquitectura Lambda

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  

Page 20: Arquitectura Lambda

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  

Page 21: Arquitectura Lambda

¿Y  el  Nempo  real  apa?  

Page 22: Arquitectura Lambda

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  

Page 23: Arquitectura Lambda

Aplicaciones  

•  Seguridad  •  Machine  Learning  •  IoT  •  Detección  de  Fraudes  •  Genómica  •  Computación  Biológica  

Page 24: Arquitectura Lambda

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  

Page 25: Arquitectura Lambda

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  

Page 26: Arquitectura Lambda

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    

Page 27: Arquitectura Lambda

Gracias  #BIGDATAMX  MEETUP  

@isragaytan  [email protected]  

[email protected]