Integração empresarial usando agentes de mensagens e eventos

Grade de Eventos
Barramento de Serviço

Esta arquitetura de exemplo baseia-se na arquitetura de integração empresarial básica . Ele estende essa arquitetura para mostrar como integrar sistemas de back-end corporativos, usando agentes de mensagens e eventos para separar serviços para maior escalabilidade e confiabilidade. Verifique se você está familiarizado com esse design e os componentes usados na arquitetura de integração básica. Ele fornece informações fundamentais sobre os principais componentes dessa arquitetura, que não serão reproduzidos aqui.

Arquitetura

Os sistemas de back-end referenciados nesse design podem incluir sistemas SaaS (software como serviço), serviços do Azure e serviços Web existentes em sua empresa.

Arquitetura de referência para integração empresarial com filas e eventos

Baixe um arquivo do Visio dessa arquitetura.

Fluxo de trabalho

A arquitetura mostrada aqui se baseia em uma arquitetura mais simples, mostrada em Integração empresarial básica. Essa arquitetura usa aplicativos lógicos para orquestrar fluxos de trabalho diretamente com sistemas de back-end e Gerenciamento de API 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:

A comunicação assíncrona usando um agente de mensagens fornece as seguintes vantagens em fazer chamadas diretas e síncronas para serviços de back-end:

  • Ela fornece o nivelamento de carga para lidar com intermitências nas cargas de trabalho, usando o padrão de nivelamento de carga baseado em fila.
  • Fornece a transmissão de mensagens para vários consumidores usando o padrão Fornecedor-Assinante.
  • Acompanhe de forma confiável o progresso de fluxos de trabalho de longa execução que envolvem vários aplicativos ou várias etapas.
  • Ajuda a separar os aplicativos.
  • Integra-se com sistemas existentes baseados em mensagens.
  • Permite que o trabalho seja enfileirado quando um sistema de back-end não estiver disponível.

A Grade de Eventos permite que os vários componentes no sistema reaja a eventos conforme eles acontecem, em vez de depender de tarefas agendadas ou de sondagem. Assim como acontece com uma fila de mensagens e tópicos, ela ajuda a separar aplicativos e serviços. Um aplicativo ou serviço pode publicar eventos, e os assinantes interessados receberão uma notificação. É possível adicionar novos assinantes sem atualizar o remetente.

Muitos serviços do Azure dão suporte ao envio de eventos à Grade de Eventos. Por exemplo, um aplicativo lógico pode escutar um evento quando novos arquivos são adicionados a um armazenamento de blobs. Esse padrão permite fluxos de trabalho reativos, nos quais o carregamento de um arquivo ou posicionamento de uma mensagem em uma fila dá início a uma série de processos. Os processos podem ser executados em paralelo ou em uma sequência específica.

Recomendações

As recomendações descritas em Integração corporativa básica se aplicam a essa arquitetura.

Barramento de Serviço

O Barramento de Serviço tem dois modos de entrega, pull ou push com proxy. No modelo de pull, o receptor faz uma sondagem contínua em busca de novas mensagens. A sondagem pode ser ineficiente, especialmente se você tiver muitas filas que recebem algumas mensagens ou se houver muito tempo entre as mensagens. No modelo de push com proxy, o Barramento de Serviço envia um evento por meio da Grade de Eventos quando há novas mensagens. O receptor assina o evento. Quando o evento é disparado, o receptor efetua o pull do próximo lote de mensagens do Barramento de Serviço.

Quando você cria um aplicativo lógico para consumir mensagens do Barramento de Serviço, é recomendável usar o modelo de push com proxy com a integração da Grade de Eventos. Geralmente, isso é mais econômico, porque o aplicativo lógico não precisa sondar o Barramento de Serviço. Para saber mais, confira Visão geral da integração do Barramento de Serviço do Azure com a Grade de Eventos. Atualmente, a camada Premium do Barramento de Serviço é exigida para notificações da Grade de Eventos.

Use PeekLock para acessar um grupo de mensagens. Ao usar o PeekLock pode executar etapas para validar cada mensagem antes de concluir ou abandonar a mensagem. Essa abordagem protege contra 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 aplicativo lógico recebe um gatilho da Grade de Eventos para uma mensagem do Barramento de Serviço, ele deve supor que há várias mensagens disponíveis para processar.

Considerações

Essas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios de orientação que podem ser usados para aprimorar a qualidade de uma carga de trabalho. Para obter mais informações, confira Microsoft Azure Well-Architected Framework.

Confiabilidade

A confiabilidade garante que seu aplicativo possa cumprir os compromissos que você assume com seus clientes. Para obter mais informações, consulte Visão geral do pilar de confiabilidade.

  • Azure AD: Azure AD é uma plataforma SaaS distribuída globalmente e altamente disponível. Consulte o SLA para obter detalhes de disponibilidade garantidos.
  • Gerenciamento de API: Gerenciamento de API podem ser implantados em várias configurações altamente disponíveis, de acordo com os requisitos de negócios e a tolerância a custos. Consulte Garantir Gerenciamento de API disponibilidade e confiabilidade para obter uma revisão completa das opções. Consulte também o SLA para obter detalhes de disponibilidade garantidos.
  • Aplicativos Lógicos: O armazenamento com redundância geográfica está disponível para Aplicativos Lógicos na camada de plano de Consumo. Para obter informações sobre como criar uma solução de continuidade dos negócios e recuperação de desastres, consulte as diretrizes. Consulte também o SLA para obter detalhes de disponibilidade garantidos.
  • Grade de Eventos: As definições de recursos da Grade de Eventos para tópicos, tópicos do sistema, domínios e assinaturas de eventos e dados de eventos são replicadas automaticamente em três zonas de disponibilidade (quando disponíveis) na região. Quando há uma falha em uma das zonas de disponibilidade, os recursos da Grade de Eventos fazem failover automaticamente para outra zona de disponibilidade sem nenhuma intervenção humana. Consulte a Recuperação de desastre geográfico entre regiões para obter diretrizes sobre como criar uma solução de recuperação de desastre para fazer failover para outra região. Consulte também o SLA para obter detalhes de disponibilidade garantidos.
  • Barramento de Serviço: O Barramento de Serviço Premium dá suporte à recuperação de desastre geográfico e Zonas de Disponibilidade. A replicação está disponível para o Barramento de Serviço Standard. Consulte também o SLA para obter detalhes de disponibilidade garantidos.

Segurança

A segurança fornece garantias contra ataques deliberados e o abuso de seus dados e sistemas valiosos. Para saber mais, confira Visão geral do pilar de segurança.

Para proteger o Barramento de Serviço, use a autenticação do Azure Active Directory (Azure AD) emparelhada com identidades gerenciadas. A integração do Azure AD para os recursos do Barramento de Serviço fornece RBAC (controle de acesso baseado em função) do Azure para um controle refinado sobre o acesso de um cliente aos recursos. Você pode usar o RBAC do Azure para conceder permissões a uma entidade de segurança, que pode ser um usuário, um grupo ou uma entidade de serviço de aplicativo (uma identidade gerenciada nesse caso).

Quando Azure AD não estiver disponível, você poderá usar SAS (assinatura de acesso compartilhado). É possível conceder a um usuário acesso aos recursos do Barramento de Serviço com direitos específicos usando a autenticação SAS.

Se for necessário expor um tópico ou fila do Barramento de Serviço como um ponto de extremidade HTTP, por exemplo, para postar novas mensagens, use o Gerenciamento de API para proteger a fila administrando o ponto de extremidade. Em seguida, proteja o ponto de extremidade com certificados ou autenticação OAuth, conforme apropriado. A maneira mais fácil de proteger um ponto de extremidade é usando um aplicativo lógico com um gatilho de solicitação/resposta HTTP como intermediário.

O serviço da Grade de Eventos protege 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á realizada automaticamente. Para saber mais, confira Event Grid security and authentication (Segurança e autenticação da Grade de Eventos).

Segurança de rede

A segurança de rede deve ser considerada em todo o design.

Otimização de custos

A otimização de custos é a análise de maneiras de reduzir as despesas desnecessárias e melhorar a eficiência operacional. Para obter mais informações, confira Visão geral do pilar de otimização de custo.

Em geral, use a calculadora de preços do Azure para estimar os custos. Algumas outras considerações.

Gerenciamento de API

Você é cobrado por todas as instâncias Gerenciamento de API quando elas estão em execução. Se você escalou verticalmente e não precisa desse nível de desempenho o tempo todo, reduza manualmente ou configure o dimensionamento automático.

Para cargas de trabalho de uso leve, considere a camada de consumo, que é uma opção sem servidor de baixo custo. A camada de consumo é cobrada por chamada à API, enquanto as outras camadas são cobradas por hora.

Aplicativos Lógicos

Os Aplicativos lógicos usam um modelo sem servidor. A cobrança é calculada com base na ação e execução do conector. 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 dão suporte a modelos de push e pull com proxie para entregar mensagens. No modelo de pull, cada solicitação de sondagem é medida como uma ação. Mesmo com sondagem longa em 30 segundos (padrão), o custo pode ser alto. A menos que você precise de entrega em tempo real de mensagens, considere usar o modelo de push com proxie.

As filas do Barramento de Serviço são incluídas em todas as camadas (camadas Básica, Standard e Premium). Embora os tópicos e assinaturas do Barramento de Serviço estejam disponíveis nas camadas Standard e Premium. Para obter mais informações, confira Preços do Barramento de Serviço do Azure.

Grade de Eventos

A Grade de Eventos usam um modelo sem servidor. A cobrança é calculada com base no número de operações (execuções do evento). As operações incluem entrada de eventos 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 é gratuito.

Consulte mais informações, consulte Preço da Grade de Eventos.

Para obter mais informações, confira a seção de custo em Estrutura Bem Projetada do Microsoft Azure.

Excelência operacional

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

Automatizar operações de recuperação o máximo possível é um componente integral da Excelência Operacional. Com a automação em mente, você pode combinar o Monitoramento de Logs do Azure com Automação do Azure para automatizar o failover dos recursos do Barramento de Serviço. Consulte o diagrama na documentação do fluxo de failover para obter um exemplo de lógica de automação para iniciar um failover.

Eficiência de desempenho

A eficiência do desempenho é a capacidade de dimensionar sua carga de trabalho para atender às demandas colocadas por usuários de maneira eficiente. Para saber mais, confira Visão geral do pilar de eficiência de desempenho.

Para obter maior escalabilidade, a camada Premium do Barramento de Serviço pode aumentar o número de unidades do sistema de mensagens. Consulte a documentação das camadas de mensagens Premium e Standard do Barramento de Serviço para obter uma revisão dos benefícios da camada Premium. Além disso, consulte a documentação do recurso de dimensionamento automático para saber mais sobre como configurar o dimensionamento automático de unidades de mensagens.

Mais recomendações para o Barramento de Serviço podem ser encontradas em Práticas recomendadas para melhorias de desempenho usando o Sistema de Mensagens do Barramento de Serviço.

Próximas etapas

Para obter mais informações, consulte a documentação do Barramento de Serviço: