SlideShare una empresa de Scribd logo
1 de 38
SPEAKER
Implementando
arquitecturas
orientadas a
eventos en Azure
Manuel Zapata
Arquitecto de Software
Co-organizador de CaliSharp
Hola, soy Manuel.
Consultor deT.I. y arquitecto de software
Co-organizador de CaliSharp.
Blogger yYouTuber novato.
Educador por pasión.
Website: https://manuelzapata.co
2
Mis redes
SoyManuelZapata
@ManuelZapata
Manuel Zapata
3
¿Cómo empezamos a definir una
aplicación?
Patrones del arquitectura al rescate
5
¿Patrones de arquitectura?
Veamos de qué tratan.
6
Antes, hablemos de patrones
Un patrón es una
solución probada a un
problema recurrente.
7
Sistema de patrones P.O.S.A.
Patrones de
arquitectura
Patrones de
diseño
Idiomas
8
Un patrón de arquitectura…
9
• Ayuda a definir la estructura general de TODO el sistema.
• Contiene un conjunto de decisiones de diseño preestablecidas.
• Tiene propiedades conocidas que permiten el reuso.
• No se inventa. Se descubre en la práctica.
Dos grandes grupos de patrones de
arquitectura
Patrones para
aplicaciones
monolíticas
Patrones para
aplicaciones
distribuidas
10
Patrones para aplicaciones monolíticas
Tuberías y
filtros
Microkernel
Arquitectura
por capas
11
Patrones para aplicaciones distribuidas
12
Microservicios
Arquitecturas
orientadas a
eventos
Arquitecturas
orientadas a
servicios
Arquitecturas
basadas en
servicios
Patrón de arquitectura
orientada a eventos
Qué es y cómo se puede implementar en Azure.
13
Patrón de arquitectura orientada a eventos
La arquitectura orientada a eventos es un patrón
distribuido y asíncrono que integra aplicaciones y
componentes a través de la producción y manejo de
eventos.
14
Topología de bróker
15
Componente de
mensajería (bróker)
Procesador
ProcesadorProcesador
Procesador
Evento
Evento
Canal
Topología de mediador
16
Componente de
mensajería (mediador)
Procesador
Procesador
Procesador
Procesador
Evento
3
Cola de
eventos
Canal
2
1
Beneficios de la arquitectura
orientada a eventos
17
Altamente escalable y distribuido.
Grandes cargas de datos.
Aplicaciones pequeñas y también grandes.
Componentes altamente desacoplados.
Fácil añadir nuevos procesadores al sistema.
Desventajas de la arquitectura orientada a
eventos
×Complejo de implementar.
×El procesador se demora mucho en contestar, o no responde.
×Reconexión del bróker o del mediador en caso de que se
caigan.
×Difícil ejecutar transacciones.
×Difícil crear y mantener los contratos.
18
Algo a tener en cuenta…
NO hagas el componente de mensajería
desde cero.
19
Arquitectura
orientada a
eventos en Azure
Ejemplos de cómo
implementar en
Azure.
20
Servicios disponibles en Azure
21
Azure Storage
Queue
Azure Service
Bus
Azure Event
Hubs
Azure IoT
Hub
Azure Event
Grid
Azure Notification
Hubs
Azure Queue Storage
• Guarda millones de mensajes.
• Se acceden mediante una interfaz REST.
• Acceso seguro.
• Log de los mensajes.
22
Azure Service Bus
• Aplicaciones empresariales tradicionales.
• Funcionalidades más avanzadas:
• FIFO
• Sesiones
• Procesamiento en batch.
• Enrutamiento.
• Filtros.
23
Azure Service Bus – Cola vs Topic
24
25
Demo de colas en Azure Service Bus
Resumen del demo
1. Crear namespace y cola en Azure Portal > All Services > Service Bus.
2. Obtener connection string con Azure CLI
3. Hacer clase que envía mensajes.
4. Revisar cola de mensajes.
5. Hacer clase que recibe mensajes.
Azure Event Grid
• Publisher/subscriber.
• Gestión de eventos, no de mensajes.
• Fuerte integración con servicios de Azure.
• Perfecto para microservicios y aplicaciones nativas en la
nube.
27
Azure Event Grid
28
29
Demo de Azure Event Grid.
Resumen del demo
1. Crear cuenta de Storage y blob.
2. Crear un servicio cognitivo de Computer Vision.
3. Crear función con trigger Azure Event Grid.
4. Crear suscripción en Azure Event Grid.
5. Crear Logic App.
Conclusiones
Bajo
acoplamiento
Perfecto para
microservicios
Integración de
múltiples
sistemas
Añadir nuevos
consumidores
y suscriptores
Escalabilidad.
Tolerancia a
fallos
32
Referencias e información útil
• Cloud design patterns.
• A tour of Azure Messaging Services.
• Connect your services together.
• Event Grid documentation.
• Service Bus documentation.
33
https://manuelzapata.co/eda
Los recursos de esta charla están en:
34
Si quieres aprender más de diseño y
arquitectura de software…
35
https://manuelzapata.co/lista
Si quieres aprender más de diseño y
arquitectura de software…
SoyManuelZapata
@ManuelZapata
Manuel Zapata
36
bit.ly/encuesta-gab-2019
¿Quieres participar en los sorteos?
Visíta los stands y asegúrate de
diligenciar la encuesta del evento
Implementando arquitecturas orientadas a eventos en Azure

Más contenido relacionado

Similar a Implementando arquitecturas orientadas a eventos en Azure

Construir y publicar software de manera más sencilla, confiable y rápida con...
Construir y publicar software de manera más  sencilla, confiable y rápida con...Construir y publicar software de manera más  sencilla, confiable y rápida con...
Construir y publicar software de manera más sencilla, confiable y rápida con...Luis Cosio
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsEsteban Saavedra
 
Dev ops with Data
Dev ops with DataDev ops with Data
Dev ops with Datannakasone
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMicky Jerzy
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMicky Jerzy
 
Un viaje por Azure DevOps - Meetup Barcelona 2019
Un viaje por Azure DevOps - Meetup Barcelona 2019Un viaje por Azure DevOps - Meetup Barcelona 2019
Un viaje por Azure DevOps - Meetup Barcelona 2019Santi Macias Rodriguez
 
Modelos de Procesos de Software
Modelos de Procesos de SoftwareModelos de Procesos de Software
Modelos de Procesos de Softwaresebas montes
 
BancaCivica.es: Un caso de éxito Drupal en el sector bancario
BancaCivica.es: Un caso de éxito Drupal en el sector bancarioBancaCivica.es: Un caso de éxito Drupal en el sector bancario
BancaCivica.es: Un caso de éxito Drupal en el sector bancarioDavid Gil Sánchez
 
Azure Dev(Sec)Ops EPIDATA completa
Azure Dev(Sec)Ops EPIDATA completaAzure Dev(Sec)Ops EPIDATA completa
Azure Dev(Sec)Ops EPIDATA completaTravis Alford
 
Workshop azure devsecops Microsoft Argentina
Workshop azure devsecops Microsoft ArgentinaWorkshop azure devsecops Microsoft Argentina
Workshop azure devsecops Microsoft ArgentinaLuciano Moreira da Cruz
 
Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microserviciosMecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microserviciosSoftware Guru
 
Introducción al proceso unificado de desarrollo de software en Curso de Anali...
Introducción al proceso unificado de desarrollo de software en Curso de Anali...Introducción al proceso unificado de desarrollo de software en Curso de Anali...
Introducción al proceso unificado de desarrollo de software en Curso de Anali...Educagratis
 
Realtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo Cabello
Realtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo CabelloRealtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo Cabello
Realtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo CabelloPlain Concepts
 
Plainconcepts .Net Core Event - Real Time Applications
Plainconcepts .Net Core Event - Real Time ApplicationsPlainconcepts .Net Core Event - Real Time Applications
Plainconcepts .Net Core Event - Real Time ApplicationsCarlos Landeras Martínez
 
Corriendo SQL Server en Docker
Corriendo SQL Server en DockerCorriendo SQL Server en Docker
Corriendo SQL Server en DockerJavier Villegas
 
Modelos de ciclo de vida del software
Modelos de ciclo de vida del softwareModelos de ciclo de vida del software
Modelos de ciclo de vida del softwareIEO Santo Tomás
 

Similar a Implementando arquitecturas orientadas a eventos en Azure (20)

Construir y publicar software de manera más sencilla, confiable y rápida con...
Construir y publicar software de manera más  sencilla, confiable y rápida con...Construir y publicar software de manera más  sencilla, confiable y rápida con...
Construir y publicar software de manera más sencilla, confiable y rápida con...
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web Grails
 
Dev ops with Data
Dev ops with DataDev ops with Data
Dev ops with Data
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWARE
 
MODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWAREMODELO DE PROCESOS DEL SOFTWARE
MODELO DE PROCESOS DEL SOFTWARE
 
Un viaje por Azure DevOps - Meetup Barcelona 2019
Un viaje por Azure DevOps - Meetup Barcelona 2019Un viaje por Azure DevOps - Meetup Barcelona 2019
Un viaje por Azure DevOps - Meetup Barcelona 2019
 
Azure DevOps y Blazor Web Assembly
Azure DevOps y Blazor Web AssemblyAzure DevOps y Blazor Web Assembly
Azure DevOps y Blazor Web Assembly
 
Data Ops
Data OpsData Ops
Data Ops
 
Modelos de Procesos de Software
Modelos de Procesos de SoftwareModelos de Procesos de Software
Modelos de Procesos de Software
 
BancaCivica.es: Un caso de éxito Drupal en el sector bancario
BancaCivica.es: Un caso de éxito Drupal en el sector bancarioBancaCivica.es: Un caso de éxito Drupal en el sector bancario
BancaCivica.es: Un caso de éxito Drupal en el sector bancario
 
Azure Dev(Sec)Ops EPIDATA completa
Azure Dev(Sec)Ops EPIDATA completaAzure Dev(Sec)Ops EPIDATA completa
Azure Dev(Sec)Ops EPIDATA completa
 
Workshop azure devsecops Microsoft Argentina
Workshop azure devsecops Microsoft ArgentinaWorkshop azure devsecops Microsoft Argentina
Workshop azure devsecops Microsoft Argentina
 
Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microserviciosMecanismos y patrones para acelerar adopción en arquitecturas de microservicios
Mecanismos y patrones para acelerar adopción en arquitecturas de microservicios
 
Introducción al proceso unificado de desarrollo de software en Curso de Anali...
Introducción al proceso unificado de desarrollo de software en Curso de Anali...Introducción al proceso unificado de desarrollo de software en Curso de Anali...
Introducción al proceso unificado de desarrollo de software en Curso de Anali...
 
Realtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo Cabello
Realtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo CabelloRealtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo Cabello
Realtime Apps en .NET Core by Carlos Landeras y Manuel Rodrigo Cabello
 
Plainconcepts .Net Core Event - Real Time Applications
Plainconcepts .Net Core Event - Real Time ApplicationsPlainconcepts .Net Core Event - Real Time Applications
Plainconcepts .Net Core Event - Real Time Applications
 
Corriendo SQL Server en Docker
Corriendo SQL Server en DockerCorriendo SQL Server en Docker
Corriendo SQL Server en Docker
 
Modelos de ciclo de vida del software
Modelos de ciclo de vida del softwareModelos de ciclo de vida del software
Modelos de ciclo de vida del software
 
IaaS + PaaS Cloud Solutions
IaaS + PaaS Cloud Solutions IaaS + PaaS Cloud Solutions
IaaS + PaaS Cloud Solutions
 
MLOps.pptx
MLOps.pptxMLOps.pptx
MLOps.pptx
 

Implementando arquitecturas orientadas a eventos en Azure

Notas del editor

  1. Permite desarrollar aplicaciones altamente escalables y distribuidas. Se puede utilizar para aplicaciones pequeñas y también aplicaciones grandes. Los componentes están altamente desacoplados. Es fácil añadir nuevos procesadores al sistema.
  2. Patrón complejo de implementar, dada su naturaleza asíncrona y distribuida. Retos arquitectónicos: El procesador se demora mucho en contestar, o no responde. Reconexión del bróker o del mediador en caso de que se caigan. Difícil ejecutar transacciones dado que los componentes están desacoplados y distribuidos. Difícil crear y mantener los contratos con los procesadores. Es importante tener estándares y versionamiento de contratos.
  3. Es difícil. Toma tiempo. No es el enfoque del negocio.
  4. Events Hub: Pipeline para big data. IoT Hub: Procesa grandes volúmenes de datos. Especializado en dispositivos IoT. Notifications Hub. Notificaciones a dispositivos móviles.
  5. Pasos. Crear namespace en All Services – Integration – Service Bus. Namespace es un contenedor. Tiene llaves de encripción para dar acceso a objetos. Crear cola. Crear topic y suscripciones.
  6. Crear cuenta de Storage y blob. Crear un servicio cognitivo de Computer Vision. Crear función con trigger Azure Event Grid. Crear suscripción en Azure Event Grid. Crear Logic App.