Use um agente de mensagens e eventos para integrar sistemas corporativos

Grade de Eventos do Azure
Barramento de Serviço do Azure

Essa arquitetura é baseada na arquitetura básica de integração empresarial , mas inclui como integrar sistemas de back-end corporativos. Essa arquitetura usa agentes de mensagens e eventos para desacoplar serviços para maior escalabilidade e confiabilidade. Verifique se você está familiarizado com o design e os componentes na arquitetura de integração básica. Esses elementos fornecem informações básicas sobre os principais componentes dessa arquitetura.

Arquitetura

Os sistemas de back-end que esse design faz referência incluem sistemas SaaS (software como serviço), serviços Azure, serviços baseados em mensagens e serviços Web existentes em sua empresa.

Diagrama que mostra uma arquitetura de referência para integração empresarial que usa filas e eventos.

Carrege um arquivo Visio desta arquitetura.

Detalhes do cenário

A arquitetura anterior baseia-se na arquitetura básica de integração empresarial. Ele usa Aplicativos Lógicos do Azure para orquestrar fluxos de trabalho diretamente com sistemas de back-end e usa Gerenciamento de API do Azure para criar catálogos de APIs.

Esta versão da arquitetura adiciona dois componentes que ajudam a tornar o sistema mais confiável e escalonável:

Essa arquitetura usa comunicação assíncrona por meio de um agente de mensagens em vez de fazer chamadas diretas e síncronas para serviços de back-end. A comunicação assíncrona oferece as seguintes vantagens:

  • Utiliza o padrão de Nivelamento de Carga Baseado em Fila para lidar com picos de carga de trabalho por meio do nivelamento de carga.

  • Usa o padrãoPublisher-Subscriber para que você possa transmitir mensagens para vários consumidores

  • Rastreia o progresso de fluxos de trabalho de longa duração de forma confiável, mesmo quando envolvem várias etapas ou vários aplicativos

  • Ajuda a desacoplar aplicativos

  • Integra-se aos sistemas baseados em mensagens existentes

  • Fornece a capacidade de enfileirar mensagens quando um sistema de back-end não está disponível

Use Grade de Eventos do Azure para que vários componentes no sistema possam reagir a eventos quando eles acontecem, em vez de depender de sondagem ou tarefas agendadas. Semelhante a uma fila de mensagens e tópicos, a Grade de Eventos ajuda a desacoplar aplicativos e serviços. Se um aplicativo ou serviço publicar eventos, todos os assinantes interessados serão notificados. Você pode adicionar novos assinantes sem atualizar o remetente.

Muitos serviços Azure dão suporte ao envio de eventos para a Grade de Eventos. Por exemplo, um Aplicativos Lógicos do Azure pode escutar um evento quando novos arquivos são adicionados a um repositório de blobs. Esse padrão cria fluxos de trabalho reativos nos quais carregar um arquivo ou colocar uma mensagem em uma fila inicia uma série de processos. Os processos podem ser executados em paralelo ou em uma sequência específica.

Recomendações

Considere as seguintes recomendações. Para obter mais recomendações, consulte a arquitetura básica de integração empresarial.

Barramento de Serviço

O Barramento de Serviço oferece dois modelos de entrega: o modelo pull e o modelo push proxy.

  • Modelo de pull: O receptor pesquisa continuamente novas mensagens. Se você precisar gerenciar várias filas e tempos de sondagem, a sondagem pode ser ineficiente. Mas esse modelo pode simplificar sua arquitetura porque remove componentes extras e saltos de dados.

  • Modelo push proxy: o receptor se inscreve inicialmente em um tipo de evento específico em um tópico da Grade de Eventos. Quando uma nova mensagem está disponível, Barramento de Serviço gera e envia um evento por meio da Grade de Eventos. Esse evento, então, aciona o receptor para buscar o próximo lote de mensagens do Barramento de Serviço. Esse modelo permite que os sistemas recebam mensagens quase em tempo real, mas sem usar recursos para pesquisar continuamente novas mensagens. Essa arquitetura usa componentes extras que você deve implantar, gerenciar e proteger.

Ao criar um fluxo de trabalho dos Aplicativos Lógicos Standard que consome mensagens do Barramento de Serviço, use os gatilhos de conector integrados do Barramento de Serviço. Os gatilhos de conector integrados abstraem a maior parte da configuração do modelo pull sem adicionar custos extras. Essa funcionalidade fornece o equilíbrio certo entre custo, gerenciamento de área de superfície e segurança, pois o conector faz um loop contínuo dentro do mecanismo de runtime dos Aplicativos Lógicos. Para obter mais informações, consulte Gatilhos de conector integrados do Barramento de Serviço.

Use o modo PeekLock para acessar um grupo de mensagens. Ao usar o PeekLock, o aplicativo de lógica pode executar etapas para validar cada mensagem antes de concluí-la ou abandoná-la. Essa abordagem evita a perda acidental de mensagens.

Grade de Eventos

Quando um gatilho da Grade de Eventos é acionado, significa que pelo menos um evento aconteceu. Por exemplo, quando um Logic App recebe um gatilho do Event Grid para uma mensagem de Barramento de Serviço, pode haver várias mensagens disponíveis para processamento.

Considerações

Essas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios orientadores que você pode usar para melhorar a qualidade de uma carga de trabalho. Para obter mais informações, consulte Well-Architected Framework.

Confiabilidade

A confiabilidade ajuda a garantir que seu aplicativo possa cumprir os compromissos que você faz aos seus clientes. Para obter mais informações, consulte Lista de verificação de revisão de design para confiabilidade.

Para obter informações sobre detalhes de disponibilidade garantida de cada serviço, consulte SLAs para serviços online.

Segurança

A segurança fornece proteções contra ataques deliberados e o uso indevido de seus valiosos dados e sistemas. Para obter mais informações, consulte Lista de verificação de revisão de design para segurança.

Para ajudar a proteger o Barramento de Serviço, emparelhe a autenticação do Microsoft Entra com identidades gerenciadas. A integração do Entra ID para recursos do Barramento de Serviço fornece o controle de acesso baseado em função do Azure (Azure RBAC) para um controle preciso sobre o acesso de um cliente aos recursos. Você pode usar Azure RBAC para conceder permissões a uma entidade de segurança, como um usuário, um grupo ou uma entidade de serviço de aplicativo. A entidade de serviço do aplicativo, neste cenário, é uma identidade gerenciada.

Se você não puder usar o Entra ID, use a autenticação SAS (assinatura de acesso compartilhado) para conceder aos usuários acesso e direitos específicos sobre os recursos do Barramento de Serviço.

Se você precisar expor uma fila ou tópico do Barramento de Serviço como um ponto de extremidade HTTP, por exemplo, para enviar novas mensagens, use o API Management para ajudar a proteger a fila, protegendo o ponto de extremidade. Em seguida, você pode usar certificados ou autenticação OAuth para ajudar a proteger o endpoint. A maneira mais fácil de ajudar a proteger um ponto de extremidade é utilizar um aplicativo de lógica que tenha um gatilho de solicitação ou resposta HTTP como intermediário.

O serviço da Grade de Eventos ajuda a proteger a entrega de eventos por meio de um código de validação. Se você usar os Aplicativos Lógicos para consumir o evento, a validação será automática. Para saber mais, confira Event Grid security and authentication (Segurança e autenticação da Grade de Eventos).

Segurança de rede

Considere a segurança de rede em todo o seu design.

Otimização de custos

A Otimização de Custos concentra-se em maneiras de reduzir despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, consulte Lista de verificação de revisão de design para otimização de custos.

Use a calculadora de preços Azure para estimar os custos. Confira outras considerações.

API Management

Você é cobrado por todas as instâncias de Gerenciamento de API enquanto estão em operação. Se você aumentar a escala e não precisar mais daquele nível de desempenho, reduza a escala manualmente ou configure o autodimensionamento.

Para cargas de trabalho de uso leve, considere a Camada de Consumo, que é uma opção sem servidor e de baixo custo. A camada de Consumo é cobrada por chamada de API. Outras camadas são cobradas por hora.

Aplicativos Lógicos Standard

O Logic Apps Standard usa um modelo de computação elástica. A cobrança é calculada com base no número de CPUs e memória usadas por hora. Para obter mais informações, consulte Preços de Aplicativos Lógicos.

Filas, tópicos e assinaturas do Barramento de Serviço

As filas e assinaturas do Barramento de Serviço oferecem suporte aos modelos de envio e recebimento de mensagens com proxy. No modelo de pull, cada solicitação de sondagem é medida como uma ação. Mesmo se você definir o intervalo de polling longo para o padrão de 30 segundos, o custo pode ser alto. A menos que você precise de entrega de mensagens em tempo real, considere usar o modelo de push com proxy.

Filas do Barramento de Serviço estão incluídas em todas as camadas: *Basic*, *Standard* e *Premium*. Tópicos e assinaturas do Barramento de Serviço estão disponíveis nas camadas Standard e Premium. Para obter mais informações, consulte preços do Barramento de Serviço.

Grade de Eventos

A Grade de Eventos usa um modelo sem servidor. O faturamento é calculado com base no número de operações. As operações incluem eventos que vão para domínios ou tópicos, correspondências avançadas, tentativas de entrega e chamadas de gerenciamento. O uso de até 100.000 operações é sem custo.

Para obter mais informações, consulte os preços da Grade de Eventos.

Excelência operacional

A Excelência operacional abrange os processos de operações que implantam uma aplicação e as mantêm em execução em produção. Para obter mais informações, consulte Lista de verificação de revisão de design para Excelência Operacional.

A arquitetura básica de referência de integração empresarial fornece diretrizes sobre padrões de DevOps, que se alinham ao pilar de Excelência Operacional do Well-Architected Framework.

Automatize as operações de recuperação o máximo possível para ajudar a melhorar a excelência operacional. Pensando na automação, você pode combinar o monitoramento de logs do Azure com a Automação do Azure para automatizar o failover dos seus recursos do Barramento de Serviço. Para um exemplo de lógica de automação para iniciar um failover, consulte Fluxo de failover.

Eficiência de desempenho

A Eficiência de Desempenho refere-se à capacidade da carga de trabalho de dimensionar para atender às demandas do usuário com eficiência. Para obter mais informações, consulte lista de verificação de design para eficiência de desempenho.

Para alcançar maior escalabilidade, a camada Barramento de Serviço Premium pode ampliar o número de unidades de mensagem. Para obter mais informações, consulte as camadas de mensagens Premium e Standard do Barramento de Serviço e o recurso de escalonamento automático.

Para obter mais recomendações do Barramento de Serviço, consulte as melhores práticas para melhorias de desempenho usando mensagens do Barramento de Serviço.

Próximas etapas