Uso de un agente de mensajes y eventos para integrar sistemas empresariales

Azure Event Grid
Azure Service Bus

Esta arquitectura se basa en la arquitectura básica de integración empresarial, pero incluye cómo integrar sistemas back-end empresariales. Esta arquitectura usa agentes de mensajes y eventos para desacoplar servicios para mayor escalabilidad y confiabilidad. Asegúrese de que está familiarizado con el diseño y los componentes de la arquitectura de integración básica. Estos elementos proporcionan información fundamental sobre los componentes principales de esta arquitectura.

Arquitectura

Los sistemas back-end a los que hace referencia este diseño incluyen sistemas de software como servicio (SaaS), servicios de Azure, servicios basados en mensajes y servicios web existentes en su empresa.

Diagrama que muestra una arquitectura de referencia para la integración empresarial que usa colas y eventos.

Descargue un archivo Visio de esta arquitectura.

Detalles del escenario

La arquitectura anterior se basa en la arquitectura de integración empresarial básica más sencilla que usa Azure Logic Apps para orquestar flujos de trabajo directamente con sistemas back-end y usa Azure API Management para crear catálogos de API.

Esta versión de la arquitectura agrega dos componentes que ayudan a que el sistema sea más confiable y escalable:

Esta arquitectura usa la comunicación asincrónica a través de un agente de mensajes en lugar de realizar llamadas directas y sincrónicas a los servicios back-end. La comunicación asincrónica proporciona las siguientes ventajas:

  • Usa el patrón de nivelación de carga basado en cola para controlar las ráfagas de las cargas de trabajo a través de la expansión de carga

  • Usa el patrón Publisher-Subscriber para que pueda difundir mensajes a varios consumidores.

  • Realiza un seguimiento del progreso de los flujos de trabajo de ejecución prolongada de forma confiable, incluso cuando implican varios pasos o varias aplicaciones

  • Ayuda a desacoplar aplicaciones

  • Se integra con sistemas basados en mensajes existentes

  • Proporciona la capacidad de poner en cola los mensajes cuando un sistema back-end no está disponible.

Use Event Grid para que varios componentes del sistema puedan reaccionar a los eventos cuando se producen, en lugar de confiar en tareas programadas o de sondeo. De forma similar a una cola de mensajes y temas, Event Grid ayuda a desacoplar aplicaciones y servicios. Si una aplicación o servicio publica eventos, se notifica a los suscriptores interesados. Puede agregar nuevos suscriptores sin actualizar el remitente.

Muchos servicios de Azure admiten el envío de eventos a Event Grid. Por ejemplo, una aplicación lógica puede escuchar un evento cuando se agregan nuevos archivos a un almacén de blobs. Este patrón crea flujos de trabajo reactivos en los que la carga de un archivo o la colocación de un mensaje en una cola inicia una serie de procesos. Los procesos se pueden ejecutar en paralelo o en una secuencia específica.

Recomendaciones

Tenga en cuenta las siguientes recomendaciones. Para obtener más recomendaciones, consulte Arquitectura básica de integración empresarial.

Service Bus

Service Bus tiene dos modelos de entrega, el modelo de extracción y el modelo de inserción proxy:

  • Modelo de extracción: el receptor sondea continuamente los mensajes nuevos. Si necesita administrar varias colas y tiempos de sondeo, el sondeo podría ser ineficaz. Pero este modelo puede simplificar la arquitectura porque quita componentes adicionales y saltos de datos.

  • Modelo de inserción proxy: el receptor se suscribe inicialmente a un tipo de evento específico en un tema de Event Grid. Cuando hay un nuevo mensaje disponible, Service Bus genera y envía un evento a través de Event Grid. A continuación, este evento desencadena el receptor para extraer el siguiente lote de mensajes de Service Bus. Este modelo permite a los sistemas recibir mensajes casi en tiempo real, pero sin usar recursos para sondear continuamente los nuevos mensajes. Esta arquitectura usa componentes adicionales que debe implementar, administrar y proteger.

Al crear un flujo de trabajo de Logic Apps estándar que consume mensajes de Service Bus, se recomienda usar los desencadenadores del conector integrado de Service Bus. El conector integrado desencadena la mayor parte de la configuración del modelo de extracción sin agregar costos adicionales. Esta funcionalidad proporciona el equilibrio adecuado entre el costo, la administración del área expuesta y la seguridad, ya que el conector se repite continuamente dentro del motor en tiempo de ejecución de Logic Apps. Para más información, consulte Desencadenadores de conector integrados de Service Bus.

Use el modo PeekLock para acceder a un grupo de mensajes. Cuando usa PeekLock, la aplicación lógica puede realizar los pasos necesarios para validar cada mensaje antes de completar o abandonar el mensaje. Este enfoque evita la pérdida accidental de mensajes.

Event Grid

Cuando se desencadena un desencadenador de Event Grid, significa que se produjo al menos un evento. Por ejemplo, cuando una aplicación lógica obtiene un desencadenador de Event Grid para un mensaje de Service Bus, puede haber varios mensajes disponibles para procesar.

Consideraciones

Estas consideraciones implementan los pilares del marco de buena arquitectura de Azure, que es un conjunto de principios guía que se pueden usar para mejorar la calidad de una carga de trabajo. Para más información, consulte Marco de buena arquitectura de Microsoft Azure.

Confiabilidad

La confiabilidad garantiza que la aplicación pueda cumplir los compromisos contraídos con los clientes. Para obtener más información, consulte Lista de comprobación de revisión de diseño para confiabilidad.

  • Microsoft Entra ID es una plataforma SaaS distribuida globalmente y de alta disponibilidad.

  • Puede implementar API Management en varias configuraciones de alta disponibilidad, según los requisitos empresariales y la tolerancia a los costos. Para obtener más información, consulte Garantizar la disponibilidad y confiabilidad de API Management.

  • El nivel consumo de Logic Apps admite almacenamiento con redundancia geográfica. Para más información, consulte Continuidad empresarial y recuperación ante desastres para Logic Apps.

  • Las definiciones de recursos de Event Grid para temas, temas del sistema, dominios y suscripciones de eventos y datos de eventos se replican automáticamente en tres zonas de disponibilidad de una región. Cuando se produce un error en una de las zonas de disponibilidad, los recursos de Event Grid conmutan por error automáticamente a otra zona de disponibilidad sin intervención humana. Para más información, consulte Recuperación ante desastres entre regiones y continuidad empresarial.

  • Service Bus Premium admite la recuperación ante desastres geográfica y las zonas de disponibilidad. Service Bus Standard admite la replicación.

Para obtener información sobre los detalles de disponibilidad garantizados de cada servicio, consulte Acuerdos de Nivel de Servicio para servicios en línea.

Seguridad

La seguridad proporciona garantías contra ataques deliberados y el abuso de datos y sistemas valiosos. Para obtener más información, consulte Lista de comprobación de revisión de diseño para seguridad.

Para ayudar a proteger Service Bus, empareja la autenticación de Microsoft Entra con identidades administradas. La integración de Id. de Entra de Microsoft para los recursos de Service Bus proporciona control de acceso basado en rol (RBAC) de Azure para un control específico sobre el acceso de un cliente a los recursos. Puede usar Azure RBAC para conceder permisos a una entidad de seguridad, como un usuario, un grupo o una entidad de servicio de aplicación. La entidad de servicio de la aplicación en este escenario es una identidad administrada.

Si no puede usar el identificador de Entra de Microsoft, use la autenticación de firma de acceso compartido (SAS) para conceder a los usuarios acceso y derechos específicos a los recursos de Service Bus.

Si necesita exponer una cola o un tema de Service Bus como punto de conexión HTTP, por ejemplo, para publicar nuevos mensajes, use API Management para ayudar a proteger la cola al frente del punto de conexión. A continuación, puede usar certificados o autenticación de OAuth para ayudar a proteger el punto de conexión. La manera más fácil de ayudar a proteger un punto de conexión es usar una aplicación lógica que tenga un desencadenador de solicitud o respuesta HTTP como intermediario.

El servicio Event Grid ayuda a proteger la entrega de eventos a través de un código de validación. Si usa Logic Apps para consumir el evento, la validación es automática. Para más información, vea Event Grid security and authentication (Seguridad y autenticación de Event Grid).

Seguridad de red

Considere la posibilidad de tener en cuenta la seguridad de red en todo el diseño.

  • Puede enlazar Service Bus Premium a un punto de conexión de servicio de subred de red virtual. Esta configuración ayuda a proteger el espacio de nombres porque solo acepta tráfico de redes virtuales autorizadas. También puede usar Azure Private Link para permitir solo el tráfico privado a la red virtual a través de puntos de conexión privados.

  • Puede configurar Logic Apps Estándar y Premium para aceptar el tráfico entrante a través de puntos de conexión privados y enviar tráfico saliente a través de la integración de red virtual.

  • Puede usar una red virtual de Azure para ayudar a proteger el acceso a la instancia y las API de API Management. Este método admite puntos de conexión privados. Para más información, consulte Uso de una red virtual con API Management.

Optimización de costos

La optimización de costes trata de buscar formas de reducir los gastos innecesarios y mejorar las eficiencias operativas. Para obtener más información, consulte Lista de comprobación de revisión de diseño para la optimización de costes.

Puede usar la calculadora de precios de Azure para calcular los costos. Estas son algunas otras consideraciones.

API Management

Se le cobra por todas las instancias de API Management cuando se ejecutan. Si escala verticalmente y, a continuación, ya no necesita ese nivel de rendimiento, escale verticalmente manualmente o configure el escalado automático.

Para cargas de trabajo de uso ligero, considere el nivel Consumo, que es una opción sin servidor de bajo costo. El nivel Consumo se factura por llamada API. Otros niveles se facturan por hora.

Logic Apps

Logic Apps usa un modelo sin servidor. La facturación se calcula en función del número de acciones y llamadas de conector. Para obtener más información, consulte Precios de Logic Apps.

Colas, temas y suscripciones de Service Bus

Las colas y suscripciones de Service Bus admiten modelos de inserción y extracción proxy para entregar mensajes. En el modelo de inserción, cada solicitud de sondeo se mide como una acción. Incluso si establece un sondeo largo en el valor predeterminado de 30 segundos, el costo puede ser alto. A menos que necesite la entrega de mensajes en tiempo real, considere la posibilidad de usar el modelo de inserción proxy.

Las colas de Service Bus se incluyen en todos los niveles: Básico, Estándar y Premium. Los temas y suscripciones de Service Bus están disponibles en los niveles Estándar y Premium. Para más información, consulte Precios de Service Bus.

Event Grid

Event Grid usa un modelo sin servidor. La facturación se calcula en función del número de operaciones. Las operaciones incluyen eventos que van a dominios o temas, coincidencias avanzadas, intentos de entrega y llamadas de administración. El uso de hasta 100 000 operaciones es gratuito.

Para obtener más información, consulte Precios de Event Grid y Optimización de costos del marco bien diseñado.

Excelencia operativa

La excelencia operativa abarca los procesos de las operaciones que implementan una aplicación y la mantienen en ejecución en producción. Para obtener más información, consulte la Lista de comprobación de revisión de diseño para la excelencia operativa.

La arquitectura de referencia de integración empresarial básica proporciona instrucciones sobre los patrones de DevOps, que se alinean con el pilar de excelencia operativa del marco bien diseñado.

Automatice las operaciones de recuperación tanto como sea posible para ayudar a mejorar la excelencia operativa. Teniendo en cuenta la automatización, puede combinar la supervisión de registros de Azure con Azure Automation para automatizar la conmutación por error de los recursos de Service Bus. Para obtener un ejemplo de lógica de automatización para iniciar una conmutación por error, consulte Flujo de conmutación por error.

Eficiencia del rendimiento

La eficiencia del rendimiento es la capacidad de la carga de trabajo para escalar con el fin de satisfacer de manera eficiente las demandas que los usuarios hayan ejercido sobre ella. Para obtener más información, consulte Lista de comprobación de revisión de diseño para la eficiencia del rendimiento.

El nivel Premium de Service Bus puede escalar horizontalmente el número de unidades de mensajería para alcanzar una mayor escalabilidad. Para obtener más información, consulte Niveles de mensajería Premium y Estándar de Service Bus y Característica de escalado automático.

Para obtener más recomendaciones de Service Bus, consulte Procedimientos recomendados para mejorar el rendimiento mediante la mensajería de Service Bus.

Pasos siguientes