$30 off During Our Annual Pro Sale. View Details »

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. Streaming Data Workshop
    Codemotion Madrid 2017

    View Slide

  2. Who are we ?
    Thomas
    @tsegismont
    Galder
    @galderz
    Katia
    @karesti

    View Slide

  3. Agenda
    ● Install VM
    ● Overview on Streaming Data Architecture
    ● Micro introduction to
    ○ Eclipse Vert.x
    ○ Infinispan
    ○ Openshift
    ● Warmup
    ● Workshop
    ● Wrap-up

    View Slide

  4. 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

    View Slide

  5. 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
    ...

    View Slide

  6. 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
    ...

    View Slide

  7. Streaming Data Architecture - Layers
    Collection Tier
    Message
    Queueing Tier
    Analysis Tier
    In-Memory Data
    Store
    Data Access
    Tier
    Browser,
    Device,
    Machine
    ...
    Browser,
    Device,
    Machine
    ...
    *

    View Slide

  8. ● Open-source project to create reactive applications and micro-services
    ● Inspired from NodeJS
    ○ Reactor pattern
    ○ events
    ● Unopinionated
    ● Non blocking
    ● Reactive
    ● Scalable
    Eclipse Vert.x

    View Slide

  9. ● 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

    View Slide

  10. ● Container platform
    ● Kubernetes plus extras
    ● Build pipelines
    ● Auto-Scaling
    ● Service Catalog
    ● Online and Hosted
    Openshift

    View Slide

  11. Warmup

    View Slide

  12. Model - 2 real streams
    Train Train Position
    Stop
    Timed Position
    Station
    GeoLoc
    Timestamp Lat/Lng
    trainId
    delay
    name
    id
    1..N

    View Slide

  13. Hands On

    View Slide