Más contenido relacionado
Similar a 20190411 meetup (20)
20190411 meetup
- 1. 11 Abril 2019: Patrones de integración y mejores prácticas
Guadalajara Meetup Group
#MuleSoftMeetup
#IOConnect #EducationIsTheKey
- 2. All contents © MuleSoft Inc.
Agenda
2
• Introducción
• Caso de uso:
– Big data pipeline
• Solución 1: Híbrida (Mule + Java)
• Solución 2: Completamente Mule
– Patrones de integración
– Mejores prácticas
• ¿Qué sigue?
• Networking
- 6. All contents © MuleSoft Inc.
Requerimientos
6
• Requerimiento funcional (FRs):
– El cliente tiene un proceso que se ejecutará frecuentemente y generará un
archivo, potencialmente de 1M de registros, en formato CSV y se almacenará en
un servidor de archivos.
– Objetivo: Implementar un sistema encargado de importar la información, desde
el archivo CSV, de las cuentas de la compañía hacia un almacenamiento en la
nube en formato JSON. Esta nueva información de la nube funcionará como un
depósito de datos (data lake) para un futuro procesamiento. Además, el cliente
solicita ser notificado de cualquier problema durante el procesamiento.
- 7. All contents © MuleSoft Inc.
Requerimientos
7
• Requerimientos no funcionales (NFRs):
– Reliable:
• La información de las cuentas NUNCA deben perderse.
– Secure:
• Las claves y credenciales de acceso deben estar encriptadas.
– Performance:
• Uso de la memoria controlado.
• Mantener bajo el número de conexiones a sistemas externos.
- 11. All contents © MuleSoft Inc.
Solución Híbrida
11
• Requerimiento Funcional: Logrado
– Complejidad de desarrollo.
– Manejo de punteros manual.
– Difícil de mantener y escalar.
– Experiencia en java es requerida.
• Requerimientos no Funcionales:
– Performance: Logrado
• Bajo control sobre el procesamiento asíncrono.
– Reliable:
• Guaranteed delivery no esta implícito.
– Security: Logrado.
- 16. All contents © MuleSoft Inc.
Solución Completamente Mule (DEMO)
16
- 17. All contents © MuleSoft Inc.
Solución Completamente Mule
17
• Requerimiento Funcional: Logrado
– Menor tiempo de desarrollo.
– Fácil de escalar y mantener.
• Requerimientos no Funcionales:
– Performance: Logrado
– Reliability:
• Internal batch queues.
• Mejor manejo de errores.
– Security: Logrado
- 19. All contents © MuleSoft Inc. 19
• Service activator – Conecta
cualquier pieza de información a
un canal de entrada.
Patrones de diseño en integración
• Polling consumer – La
aplicación necesita mensajes,
pero necesita controlar cuando
los recibe.
- 20. All contents © MuleSoft Inc. 20
• Point-to-point channel – La aplicación usa mensajería para
transferir documentos de información, es decir el payload.
Patrones de diseño en integración
- 21. All contents © MuleSoft Inc. 21
• Document message – La aplicación quiere enviar información a
otra aplicación u otra fase de procesamiento
Patrones de diseño en integración
- 22. All contents © MuleSoft Inc. 22
• Guaranteed delivery – Sin importar las circunstancias, la aplicación
siempre se asegura que la información nunca se puede perder
Patrones de diseño en integración
- 23. All contents © MuleSoft Inc. 23
• Content Enricher – Dados ciertos parámetros, agregar datos al
payload actual, generalmente de una fuente de datos externa
Patrones de diseño en integración
- 24. All contents © MuleSoft Inc. 24
• Dead-letter Channel – Cuando un mensaje no puede o no debe ser
entregado, debe ser movido a un canal especializado en fallos
Patrones de diseño en integración
- 25. All contents © MuleSoft Inc. 25
• Poisoned message – Información errónea o inválida que no puede
ser procesada por que no hace sentido a la lógica de negocios
Patrones de diseño en integración
- 26. All contents © MuleSoft Inc.
Mejores Prácticas
26
• Estrategias de reintento (until-successful).
• Estrategias de reconexión (File configuration, reconnection strategy).
• Estrategia de manejo de errores (error scopes).
• Externalización de propiedades.
• Asegurar las credenciales de autenticación (secure configuration
properties).
• Desacoplamiento de procesamiento y de manejo de errores.
• Manejo de transacciones.
• Optimización de memoria a través de streamming.
• Uso de las funciones nativas de Mule (datawave)
- 29. All contents © MuleSoft Inc.
What’s next
29
• Share:
– Tweet your pictures with the hashtag #MuleMeetup
– Join us: https://meetups.mulesoft.com/guadalajara/
• Feedback:
– Contact your organizer larisa.arenas@ioconnectservices.com
salvador.zalapa@ioconnectservices.com to suggest topics
– Contact MuleSoft at meetup@mulesoft.com for ways to improve the program
• Our next meetup:
– Date: <August>
– Location: <TBD>
– Topic: <TBD>
- 30. All contents © MuleSoft Inc. 30
"Hola desde las Meetups de MuleSoft"
- 32. See you next time
Please send topic suggestions to the organizer