SlideShare una empresa de Scribd logo
3
Lo más leído
21
Lo más leído
23
Lo más leído
#SGVirtual
Arquitectura basada en
eventos para
principiantes
Hugo Guerrero
APIs & Messaging Developer Advocate @ Red Hat
Unidos compartiendo y aprendiendo
#SGVirtual
#SGVirtual
EVENT-DRIVEN ARCHITECTURE
Source: https://developers.redhat.com/blog/author/hguerrero/
Hugo Guerrero
APIs & Messaging Developer Advocate @
Red Hat
Viajes + Comida + Historia
Mexicano @ Massachusetts, USA
Twitter @hguerreroo
hguerrero@redhat.com
https://developers.redhat.com/blog/author/hguerrero/
Hola!
#SGVirtual
Modernizando Arquitecturas
EVENT-DRIVEN ARCHITECTURE
3
Ye Olde Architecture Enlightened
postmodernism
#SGVirtual
Conectado microservicios
EVENT-DRIVEN ARCHITECTURE
4
● Sistemas distribuidos
● Múltiples servidores
● Cada servicio es un proceso
● Abuso del protocolo
Customers
Billing
Administration
Operations
Customer
Service
#SGVirtual
EVENT-DRIVEN ARCHITECTURE
Los microservices son difíciles
5
#SGVirtual
SERVICES INTERACTIONS
6
Ejemplo
#SGVirtual
Gestionando errores
EVENT-DRIVEN ARCHITECTURE
7
Customers
Billing
Administration
Operations
Customer
Service
GUI
Customers
routing
service
discovery
retries /
timeouts
#SGVirtual
Gestionando errores
EVENT-DRIVEN ARCHITECTURE
8
#SGVirtual
Modernizando Arquitecturas
EVENT-DRIVEN ARCHITECTURE
9
#SGVirtual
¿Qué es la arquitectura basada en eventos (EDA)?
EVENT-DRIVEN ARCHITECTURE
10
Event-Driven Architecture
(EDA) es una forma de diseñar
aplicaciones y servicios que
respondan en tiempo real a
información basada en enviar y
recibir notificaciones de cambios
individuales en el sistema.
#SGVirtual
11
Source:
https://en.wikipedia.org/wiki/UNIVAC_1103
Inside Macintosh, Apple Computer Inc. Cupertino, CA, 1985.
https://en.wikipedia.org/wiki/Database_trigger
http://soft.vub.ac.be/Publications/2012/vub-soft-tr-12-13.pdf
https://en.wikipedia.org/wiki/Java_version_history
UNIVAC 1103, first computer with operating system level interrupts
debuts.
1953
Apple Macintosh interface based on main event handling loop.
1984
Database vendors Oracle, Sybase, and others add triggers.
1993
First reactive programming language, Fran (Haskell), released.
1997
Java 1.4 introduces event handlers as first class objects.
2002
#SGVirtual
¿Por qué arquitectura basada en eventos?
EVENT-DRIVEN ARCHITECTURE
12
Refleja el mundo real
El mundo real está basado en eventos. Como el
sistema nervioso, o una cafeteria.
Reduce el acoplamiento
EDA permite desacoplar servicios en tiempo de
ejecución así como en tecnología
Encapsulación
Servicios aislados ayudan a diseñar microservicios que
no dependen de cómo se consuman los eventos.
Escalamiento individual
Los servicios se pueden escalar independientemente.
Latencia en casi tiempo real
La desventaja de estar haciendo consultas se elimina
moviendose a EDA.
#SGVirtual
¿Qué es un evento?
EVENT-DRIVEN ARCHITECTURE
13
Image: https://foto.wuestenigel.com/hand-ready-to-push-domino-pieces/
Evento es una acción o un
acontecimiento procesado
por software usualmente
originado asíncronamente
fuera del sistema.
La mayoría de las veces
reemplazado por la
notificación del
acontecimiento.
#SGVirtual
EVENT-DRIVEN ARCHITECTURE
¿Qué es un evento?
14
Source:
QueryComandoEvento
#SGVirtual
EVENT-DRIVEN ARCHITECTURE
Tipos de eventos
15
Source:
ReplayableConsumibleVolatil
#SGVirtual
EVENT-DRIVEN ARCHITECTURE
Request-response / Event-driven
16
Source:
#SGVirtual
EVENT-DRIVEN ARCHITECTURE
Bus de Eventos (Event Broker)
17
Source:
#SGVirtual
EVENT-DRIVEN ARCHITECTURE
Algunos protocolos para eventos
18
Source:
● AMQP
○ Advanced Message Queuing Protocol
● STOMP
○ Simple (or Streaming) Text Orientated Messaging Protocol
● MQTT
○ Message Queuing Telemetry Transport
● KAFKA
○ Protocolo binario sobre TCP
● WEB
○ WebSockets
○ WebHooks
○ Server-Sent Events
#SGVirtual
Microservicios basados en eventos
EVENT-DRIVEN ARCHITECTURE
19
Ordering Billing
Orders Payments Shipments
Shipping Inventory
Notification
#SGVirtual
EVENT-DRIVEN ARCHITECTURE
¿Qué es Apache Kafka?
20
Apache Kafka es un sistema distribuido
diseñado para flujos de eventos. Está
construido para ser escalable
horizontalmente, tolerante a fallos,
como un registro de bitácora, que
permite procesar flujos y datos
distribuidos.
#SGVirtual
EVENT-DRIVEN ARCHITECTURE
Ecosistema de Apache Kafka
21
● Kafka Core
○ Broker
○ Producer API, Consumer API, Admin API
○ Herramientas de administración
● Kafka Connect
● Kafka Streams API
● Mirror Maker / Mirror Maker 2
● REST Proxy para HTTP y Kafka
● Registro de esquemas
#SGVirtual
EVENT-DRIVEN ARCHITECTURE
Apache Kafka y Kubernetes
22
Source: https://landscape.cncf.io/
#SGVirtual
EVENT-DRIVEN ARCHITECTURE
Patrones de implementación con Apache Kafka
23
Event Sourcing
Es un patrón que permite al sistema
registrar los cambios en orden y luego
reproducirlos para conocer el estado.
Captura de cambios en la base de datos
que permite auto generar eventos para
que otros servicios puedan tener los
últimos datos.
Change Data Capture
Estos sistemas detectan y reaccionan a
condiciones críticas consultando un flujo
continuo de eventos en ventanas de
tiempo.
Procesamiento de flujos de eventos
Flujos de datos con múltiples etapas y
consumidores formando un pipeline de
información.
Broadcast and Pipelines
Source:
#SGVirtual
EVENT-DRIVEN ARCHITECTURE
Eventos desde la base de datos
24
Debezium Change Data Capture Platform
Source: https://debezium.io/community/users/
● Conectores CDC para varias bases de datos
○ Basado en transaction logs
○ Snapshotting, Filtering etc.
● 100% open-source, comunidad activa
● Última version: 1.1
● Compañías desplegando en producción (e.g.
WePay, JW Player, Convoy, Trivago, OYO,
BlaBlaCar etc.)
#SGVirtual
Una vez que se empieza a trabajar en microservicios o funciones, la forma de
mantener la comunicación es mediante notificaciones.
Los patrones de integración basados en eventos permiten escalar y
desacoplar microservicios, usando una cola o un tópico se pueden
coordinar..
Microservicios y arquitecturas basadas en eventos
EVENT-DRIVEN ARCHITECTURE
25
Migración a Microservicios
Moverse a Serverless
#SGVirtual
Gracias
Hugo Guerrero
APIs & Messaging Developer Advocate @ Red Hat
Continuemos en slack o twitter @hguerreroo
#SGVirtual

Más contenido relacionado

PDF
Jenkins to Gitlab - Intelligent Build-Pipelines
PDF
Ejemplos práctios de calidad en el software tecdencies
PPTX
DevOps 101 - an Introduction to DevOps
PDF
Building an SRE Organization @ Squarespace
PDF
Introduction to CICD
PDF
Cloud-Native Observability
PPTX
Arquitectura REST
PPTX
Metodología de desarrollo
Jenkins to Gitlab - Intelligent Build-Pipelines
Ejemplos práctios de calidad en el software tecdencies
DevOps 101 - an Introduction to DevOps
Building an SRE Organization @ Squarespace
Introduction to CICD
Cloud-Native Observability
Arquitectura REST
Metodología de desarrollo

La actualidad más candente (20)

PPTX
Arquitectura dirigida a eventos
PDF
Event storming recipes
PPTX
UNEG-AS 2012-Pres5: Controles internos para la seguridad en el área de sistemas
PPTX
Interbloqueo sistemas operativos
PPTX
Auditoria a aplicaciones en funcionamiento
PDF
6. Administración de la Calidad de Software
PPTX
Quality strategies in Agile Transformation
PPT
Conceptos de diseño
PPTX
Network monitoring tools
PDF
Observability for modern applications
PPT
CI and CD with Jenkins
PDF
Network Monitoring Tools
PPSX
Ieee 830
PPTX
Indagación de los requerimientos
PPT
Sistema de Archivos Distribuidos
PPT
Transaccion
PDF
Pruebas unitarias
PDF
3. dercas -_el_documento_de_requerimientos
PPT
Arquitectura de software orientada a patrones
Arquitectura dirigida a eventos
Event storming recipes
UNEG-AS 2012-Pres5: Controles internos para la seguridad en el área de sistemas
Interbloqueo sistemas operativos
Auditoria a aplicaciones en funcionamiento
6. Administración de la Calidad de Software
Quality strategies in Agile Transformation
Conceptos de diseño
Network monitoring tools
Observability for modern applications
CI and CD with Jenkins
Network Monitoring Tools
Ieee 830
Indagación de los requerimientos
Sistema de Archivos Distribuidos
Transaccion
Pruebas unitarias
3. dercas -_el_documento_de_requerimientos
Arquitectura de software orientada a patrones
Publicidad

Similar a Arquitectura basada a Eventos para principiantes con Apache Kafka (20)

PPTX
Dynamics saturday madrid 2019 sergio hernandez
PDF
Orquestando microservicios como lo hace Netflix
PDF
Kit para crear un Sitio Web Móvil asombroso!
PDF
Aplicación práctica de FIWARE al Internet de las Cosas
PPTX
Visual Studio 2010 Ligthswitch + AZURE + Zero Code
PDF
Webinar con QA Lovers - Shift left a11y: Haz tu aplicación accesible para más...
PPTX
Microservicios con .NET
PPTX
Prog. web. equipo 5
PDF
Intelligent Sharing Platform
PDF
Mob Plataforma de movilidad Inteligente
PDF
MANUAL DE COMPUTACION EN LA NUBE, NIVEL DE RESPONSABILIDAD
PDF
Propuesta de Plataforma IoT - UCA Cuenca 2018
PDF
Dev ops mobile(webinar)
PPTX
Conceptos de Integración de sistemas y herramientas.pptx
PPTX
Presentación de Sistema GESTSEG
PDF
Derribando la torre de marfil - Plain Concepts Dev Day
PPTX
2015 10 - Curso Cliente @firma INAP día 2
PPTX
Unidad iv tema 2 - rtu
PPTX
Exposicionproyecto 130711103653-phpapp01
Dynamics saturday madrid 2019 sergio hernandez
Orquestando microservicios como lo hace Netflix
Kit para crear un Sitio Web Móvil asombroso!
Aplicación práctica de FIWARE al Internet de las Cosas
Visual Studio 2010 Ligthswitch + AZURE + Zero Code
Webinar con QA Lovers - Shift left a11y: Haz tu aplicación accesible para más...
Microservicios con .NET
Prog. web. equipo 5
Intelligent Sharing Platform
Mob Plataforma de movilidad Inteligente
MANUAL DE COMPUTACION EN LA NUBE, NIVEL DE RESPONSABILIDAD
Propuesta de Plataforma IoT - UCA Cuenca 2018
Dev ops mobile(webinar)
Conceptos de Integración de sistemas y herramientas.pptx
Presentación de Sistema GESTSEG
Derribando la torre de marfil - Plain Concepts Dev Day
2015 10 - Curso Cliente @firma INAP día 2
Unidad iv tema 2 - rtu
Exposicionproyecto 130711103653-phpapp01
Publicidad

Más de Software Guru (20)

PDF
Hola Mundo del Internet de las Cosas
PDF
Estructuras de datos avanzadas: Casos de uso reales
PPTX
Building bias-aware environments
PDF
El secreto para ser un desarrollador Senior
PDF
Cómo encontrar el trabajo remoto ideal
PDF
Automatizando ideas con Apache Airflow
PPTX
How thick data can improve big data analysis for business:
PDF
Introducción al machine learning
PDF
Democratizando el uso de CoDi
PDF
Gestionando la felicidad de los equipos con Management 3.0
PDF
Taller: Creación de Componentes Web re-usables con StencilJS
PPTX
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
PDF
¿Qué significa ser un programador en Bitso?
PDF
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
PDF
Pruebas de integración con Docker en Azure DevOps
PDF
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
PDF
Así publicamos las apps de Spotify sin stress
PPTX
Achieving Your Goals: 5 Tips to successfully achieve your goals
PDF
Acciones de comunidades tech en tiempos del Covid19
PDF
De lo operativo a lo estratégico: un modelo de management de diseño
Hola Mundo del Internet de las Cosas
Estructuras de datos avanzadas: Casos de uso reales
Building bias-aware environments
El secreto para ser un desarrollador Senior
Cómo encontrar el trabajo remoto ideal
Automatizando ideas con Apache Airflow
How thick data can improve big data analysis for business:
Introducción al machine learning
Democratizando el uso de CoDi
Gestionando la felicidad de los equipos con Management 3.0
Taller: Creación de Componentes Web re-usables con StencilJS
El camino del full stack developer (o como hacemos en SERTI para que no solo ...
¿Qué significa ser un programador en Bitso?
Colaboración efectiva entre desarrolladores del cliente y tu equipo.
Pruebas de integración con Docker en Azure DevOps
Elixir + Elm: Usando lenguajes funcionales en servicios productivos
Así publicamos las apps de Spotify sin stress
Achieving Your Goals: 5 Tips to successfully achieve your goals
Acciones de comunidades tech en tiempos del Covid19
De lo operativo a lo estratégico: un modelo de management de diseño

Último (20)

PPT
introduccion a las_web en el 2025_mejoras.ppt
PPT
Que son las redes de computadores y sus partes
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PDF
CyberOps Associate - Cisco Networking Academy
PDF
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
PDF
Estrategia de apoyo tecnología grado 9-3
PPTX
Sesion 1 de microsoft power point - Clase 1
PPTX
Presentación de Redes de Datos modelo osi
PDF
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
PPTX
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PDF
Maste clas de estructura metálica y arquitectura
PDF
Calidad desde el Docente y la mejora continua .pdf
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
PDF
SAP Transportation Management para LSP, TM140 Col18
PPTX
Propuesta BKP servidores con Acronis1.pptx
PPT
El-Gobierno-Electrónico-En-El-Estado-Bolivia
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
introduccion a las_web en el 2025_mejoras.ppt
Que son las redes de computadores y sus partes
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
CyberOps Associate - Cisco Networking Academy
Liceo departamental MICRO BIT (1) 2.pdfbbbnn
Estrategia de apoyo tecnología grado 9-3
Sesion 1 de microsoft power point - Clase 1
Presentación de Redes de Datos modelo osi
MANUAL TECNOLOGÍA SER MINISTERIO EDUCACIÓN
RAP01 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Maste clas de estructura metálica y arquitectura
Calidad desde el Docente y la mejora continua .pdf
Power Point Nicolás Carrasco (disertación Roblox).pptx
SAP Transportation Management para LSP, TM140 Col18
Propuesta BKP servidores con Acronis1.pptx
El-Gobierno-Electrónico-En-El-Estado-Bolivia
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
historia_web de la creacion de un navegador_presentacion.pptx

Arquitectura basada a Eventos para principiantes con Apache Kafka