Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Streaming Data Workshop @ Codemotion Madrid

Streaming Data Workshop @ Codemotion Madrid

Las arquitecturas en Tiempo Real y Streaming de Datos son cada vez más necesarias para cubrir las necesidades actuales de los usuarios, especialmente desde la revolución de los Smartphones e IoT.

Saber implementar y comprender este tipo de arquitectura donde los datos fluyen en permanencia, con análisis y búsquedas en tiempo real, escalable y robusta es una de claves para la creación de nuevas servicios y aplicaciones de calidad. La emergencia de nuevas y diversas tecnologías facilitan su implementación, y el ecosistema es muy amplio.

En este taller, veremos cómo implementar una arquitectura de este tipo utilizando frameworks reactivos y open-source. Las capas de una arquitectura en Streaming, son las siguientes :

* Capa de recolecta de datos
* Capa de transporte de datos
* Capa de análisis de datos
* Capa de datos en memoria / disco
* Capa de acceso a los datos
En 2h de workshop no da para todo, por lo que las capas de transporte, análisis de datos y el cliente estarán implementados. Tras una breve introducción teórica, nos centraremos en :

* La implementación de servicios con Vert.x para la recolecta de datos.
* Guardar los datos analizados en la memoria gracias a Infinispan
* Realizar búsquedas en continuo en la memoria y accesibles para el usuario (cliente web)
* Desplegar toda la arquitectura en Openshift, infraestructura basada en docker y kubernetes, para una portabilidad y escalabilidad ilimitada

Nivel Java debutante requerido Arquitectura usando Infinispan, Vert.x, Openshift y más.

Galder Zamarreño

November 25, 2017
Tweet

More Decks by Galder Zamarreño

Other Decks in Programming

Transcript

  1. Agenda • Install VM • Overview on Streaming Data Architecture

    • Micro introduction to ◦ Eclipse Vert.x ◦ Infinispan ◦ Openshift • Warmup • Workshop • Wrap-up
  2. In many scenarios the computation part of the system is

    operating in a non-hard real-time fashion, however, the clients may not be consuming the data in real-time, due to network delays, application design, or perhaps a client application is not even running. Put another way, what we really have is a non-hard real-time service with clients that consume data when they need it. This is a streaming data system, a non-hard real-time system that makes its data available at the moment a client application needs it, it is not soft or near, it is streaming. Streaming Data - Andrew G. Psaltis - Manning Publications. Streaming Data System - Definition
  3. Streaming Data Architecture - Layers Collection Tier Message Queueing Tier

    Analysis Tier In-Memory Data Store Data Access Tier Long Term Storage Browser, Device, Machine ... Browser, Device, Machine ...
  4. Streaming Data Architecture - Layers Collection Tier Message Queueing Tier

    Analysis Tier In-Memory Data Store Data Access Tier Long Term Storage Browser, Device, Machine ... Browser, Device, Machine ...
  5. Streaming Data Architecture - Layers Collection Tier Message Queueing Tier

    Analysis Tier In-Memory Data Store Data Access Tier Browser, Device, Machine ... Browser, Device, Machine ... *
  6. • Open-source project to create reactive applications and micro-services •

    Inspired from NodeJS ◦ Reactor pattern ◦ events • Unopinionated • Non blocking • Reactive • Scalable Eclipse Vert.x
  7. • Open-source project mainly maintained by Red Hat • 9.1

    Last Stable Release, version 9.2 in development • Cache / In-Memory Datagrid ◦ Local Cache ◦ HIbernate Cache ◦ Replicated Caches ◦ Distributed Caches ◦ Transactions ◦ Listeners ◦ Continuous Query ◦ Clustered Data Structures (Multimaps, Counters, Locks … and more coming) ◦ Client/Server Architecture - HotRod, Memcache, REST … ◦ … and more ... Infinispan
  8. • Container platform • Kubernetes plus extras • Build pipelines

    • Auto-Scaling • Service Catalog • Online and Hosted Openshift
  9. Model - 2 real streams Train Train Position Stop Timed

    Position Station GeoLoc Timestamp Lat/Lng trainId delay name id 1..N