Essa arquitetura de exemplo é criada com base na arquitetura básica de integração empresarial. Ela estende essa arquitetura para mostrar como integrar sistemas de back-end corporativos usando agentes de mensagens e eventos para desacoplar 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 reproduzidas aqui.
Arquitetura
Os sistemas de back-end podem incluir sistemas software como serviço (SaaS), serviços do Azure e serviços da Web existentes em sua empresa.
Baixe um Arquivo Visio dessa arquitetura.
Workflow
A arquitetura mostrada aqui se baseia em uma arquitetura mais simples, mostrada em Integração empresarial básica. Essa arquitetura usa os Aplicativos Lógicos para orquestrar fluxos de trabalho, 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:
Barramento de Serviço do Azure. O Barramento de Serviço é um agente de mensagens seguro e confiável.
Grade de Eventos do Azure. A Grade de Eventos é um serviço de roteamento de eventos. Ele usa um modelo de eventos de publicação/assinatura (pub/sub).
A comunicação assíncrona usando um agente de mensagens oferece inúmeras vantagens em relação às chamadas síncronas, diretas aos 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 o enfileiramento do trabalho 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 proxie. 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 várias filas, com cada uma recebendo algumas mensagens, ou se houver muito tempo entre as mensagens. No modelo de push, 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, recomendamos o uso do modelo de push 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
Estas 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, confira Visão geral do pilar de confiabilidade.
- ID do Microsoft Entra: a ID do Microsoft Entra é uma plataforma SaaS distribuída globalmente e altamente disponível. Consulte o SLA para obter detalhes de disponibilidade garantidos.
- Gerenciamento de API: o Gerenciamento de API pode ser implantado em várias configurações altamente disponíveis, de acordo com os requisitos de negócios e a tolerância a custos. Consulte Garantir a disponibilidade e confiabilidade do Gerenciamento de API para uma análise 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 de negócios e recuperação de desastre, 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 automático para outra zona de disponibilidade sem qualquer intervenção humana. Consulte Recuperação de desastre geográfico entre regiões para obter orientação 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 desastres geográficos 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 Microsoft Entra emparelhada com as identidades gerenciadas. A integração do Microsoft Entra para recursos do Barramento de Serviço fornece controle de acesso baseado em função (RBAC) do Azure para 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 a ID do Microsoft Entra não estiver disponível, você pode usar assinatura de acesso compartilhado (SAS). É 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.
- O Barramento de Serviço Premium pode ser associado a um ponto de extremidade de serviço de sub-rede de rede virtual (VNet), protegendo o namespace para aceitar apenas o tráfego de redes virtuais autorizadas. Além disso, use pontos de extremidade privados para bloquear o tráfego da VNet para o tráfego privado por meio do Link Privado.
- Os Aplicativos Lógicos Standard e Premium Lógicos podem ser configurados para aceitar o tráfego de entrada por meio de pontos de extremidade privados e para enviar tráfego de saída por meio da integração da VNet.
- O Gerenciamento de API oferece várias opções para proteger o acesso à sua instância de Gerenciamento de API e às APIs usando uma rede virtual do Azure. Consulte a documentação Como usar uma rede virtual com o Gerenciamento de API do Azure para obter uma revisão completa das opções. Os Pontos de extremidade privados também têm suporte.
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, consulte Visão geral do pilar de otimização de custo.
Em geral, use a calculadora de preços do Azure para estimar os custos. Confira outras considerações.
Gerenciamento de API
Você será cobrado por todas as instâncias de Gerenciamento de API quando estiverem em execução. Se você tiver escalado verticalmente e não precisar desse nível de desempenho o tempo todo, reduza verticalmente de forma manual ou configure o dimensionamento automático.
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, 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 para entrega de 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 de mensagens em tempo real, considere usar o modelo de push.
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 do Basic Enterprise Integration fornece diretrizes sobre padrões de DevOps, que se alinham ao pilar de Excelência Operacional do Well-Architected Framework.
Como 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 a 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 escalar horizontalmente 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 nas 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.
- Visão geral da integração do Barramento de Serviço com a Grade de Eventos
- Camadas de sistema de mensagens Premium e Standard do Barramento de Serviço
- Recurso de dimensionamento automático do Barramento de Serviço
- Práticas recomendadas para melhorias de desempenho usando o Sistema de Mensagens do Barramento de Serviço