7. Antes, hablemos de patrones
Un patrón es una
solución probada a un
problema recurrente.
7
8. Sistema de patrones P.O.S.A.
Patrones de
arquitectura
Patrones de
diseño
Idiomas
8
9. 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.
10. Dos grandes grupos de patrones de
arquitectura
Patrones para
aplicaciones
monolíticas
Patrones para
aplicaciones
distribuidas
10
12. Patrones para aplicaciones distribuidas
12
Microservicios
Arquitecturas
orientadas a
eventos
Arquitecturas
orientadas a
servicios
Arquitecturas
basadas en
servicios
14. 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
17. 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.
18. 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
19. Algo a tener en cuenta…
NO hagas el componente de mensajería
desde cero.
19
26. 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.
27. 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
31. 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.
33. 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
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.
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.
Es difícil.
Toma tiempo.
No es el enfoque del negocio.
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.
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.
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.