Essa arquitetura é baseada na arquitetura básica de integração corporativa, 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. Certifique-se de estar 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 aos quais esse design faz referência incluem sistemas SaaS (software como serviço), serviços do Azure, serviços baseados em mensagens e serviços Web existentes em sua empresa.
Baixe um Arquivo Visio dessa arquitetura.
Detalhes do cenário
A arquitetura anterior se baseia na arquitetura básica de integração corporativa mais simples que usa os Aplicativos Lógicos do Azure para orquestrar fluxos de trabalho diretamente com sistemas de back-end e usa o 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:
O Barramento de Serviço do Azure é um agente de mensagens seguro e confiável.
A Grade de Eventos do Azure é um serviço de roteamento de eventos. Ele usa um modelo de eventos de publicação e assinatura .
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:
Usa o padrão de nivelamento de carga baseado em fila para lidar com intermitências em cargas de trabalho por meio de nivelamento de carga
Usa o padrão Publicador-Assinante 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 a Grade de Eventos para que vários componentes no sistema possam reagir a eventos quando eles ocorrerem, em vez de depender de sondagens 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 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 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 Arquitetura básica de integração empresarial.
Barramento de Serviço
O Barramento de Serviço tem dois modelos de entrega, o modelo de pull e o modelo de push por proxy:
Modelo de pull: o receptor sonda 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 de push por proxy: o receptor inicialmente assina um tipo de evento específico em um tópico da Grade de Eventos. Quando uma nova mensagem está disponível, o Barramento de Serviço gera e envia um evento por meio da Grade de Eventos. Em seguida, esse evento aciona o destinatário para efetuar pull do 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 de Aplicativos Lógicos Padrão que consome mensagens do Barramento de Serviço, recomendamos que você use os gatilhos do conector interno do Barramento de Serviço. O conector interno dispara a maior parte da configuração do modelo de pull sem adicionar custo extra. 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 interno do Barramento de Serviço.
Use o modo 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 evita a perda acidental de mensagens.
Grade de Eventos
Quando um gatilho da Grade de Eventos é acionado, isso significa que pelo menos um evento aconteceu. Por exemplo, quando um aplicativo lógico obtém um gatilho da Grade de Eventos para uma mensagem do Barramento de Serviço, pode haver várias mensagens disponíveis para processamento.
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, consulte Lista de verificação de revisão de design para confiabilidade.
A ID do Microsoft Entra é uma plataforma SaaS distribuída globalmente e altamente disponível.
Você pode implantar o Gerenciamento de API em várias configurações altamente disponíveis, de acordo com os requisitos de negócios e a tolerância de custo. Para obter mais informações, consulte Garantir a disponibilidade e a confiabilidade do Gerenciamento de API.
A camada de Consumo de Aplicativos Lógicos dá suporte ao armazenamento com redundância geográfica. Para obter mais informações, consulte Continuidade dos negócios e recuperação de desastre para Aplicativos Lógicos.
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 entre zonas de disponibilidade em uma 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. Para obter mais informações, consulte recuperação de desastre entre regiões e continuidade dos negócios.
O Barramento de Serviço Premium dá suporte a zonas de disponibilidade e recuperação de desastre geográfico. O Service Bus Standard oferece suporte à replicação.
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 garantias contra ataques deliberados e o abuso de seus dados e sistemas valiosos. 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 da ID do Microsoft Entra para recursos do Barramento de Serviço fornece RBAC (controle de acesso baseado em função) 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, 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 a ID do Microsoft Entra, use a autenticação SAS (assinatura de acesso compartilhado) para conceder aos usuários acesso e direitos específicos aos recursos do Barramento de Serviço.
Se você precisar expor uma fila ou um tópico do Barramento de Serviço como um ponto de extremidade HTTP, por exemplo, para postar novas mensagens, use o Gerenciamento de API para ajudar a proteger a fila na frente do 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 é usar um aplicativo lógico que tenha uma solicitação HTTP ou um gatilho de resposta 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.
Você pode associar o Service Bus Premium a um ponto de extremidade de serviço de sub-rede de rede virtual. Essa configuração ajuda a proteger o namespace porque ele só aceita tráfego de redes virtuais autorizadas. Você também pode usar o Link Privado do Azure para permitir apenas o tráfego privado para sua rede virtual por meio de pontos de extremidade privados.
Você pode configurar os Aplicativos Lógicos Standard e Premium para aceitar o tráfego de entrada por meio de pontos de extremidade privados e enviar o tráfego de saída por meio da integração de rede virtual.
Você pode usar uma rede virtual do Azure para ajudar a proteger o acesso à instância de Gerenciamento de API e às APIs. Esse método dá suporte a pontos de extremidade privados. Para obter mais informações, consulte Usar uma rede virtual com o Gerenciamento de API.
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 Lista de verificação de revisão de design para otimização de custos.
Use a Calculadora de Preços do Azure para estimar os custos. Confira outras considerações.
Gerenciamento de API
Você é cobrado por todas as instâncias de Gerenciamento de API quando elas são executadas. Se você escalar verticalmente e não precisar mais desse nível de desempenho, reduza ou configure manualmente 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 de API. 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 no número de ações e chamadas de 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 proxy para entregar mensagens. No modelo de pull, cada solicitação de sondagem é medida como uma ação. Mesmo se você definir a sondagem longa 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.
As filas do Barramento de Serviço estão incluídas em todas as camadas: Básica, Standard e Premium. Os 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 usam 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 é gratuito.
Para obter mais informações, consulte Preços da Grade de Eventos e Otimização de Custos do Well-Architected Framework.
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 Well-Architected Framework Operational Excellence .
Automatize as operações de recuperação o máximo possível para ajudar a melhorar a 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 de seus recursos do Barramento de Serviço. Para obter um exemplo de lógica de automação para iniciar um failover, consulte Fluxo de failover.
Eficiência de desempenho
A eficiência do desempenho é a capacidade de dimensionar a carga de trabalho para atender às demandas exigidas pelos usuários de maneira eficiente. Para obter mais informações, consulte Lista de verificação de revisão de design para 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. Para obter mais informações, consulte Camadas de mensagens Premium e Standard do Barramento de Serviço e o recurso de dimensionamento automático.
Para obter mais recomendações do Barramento de Serviço, consulte Práticas recomendadas para melhorias de desempenho usando o sistema de mensagens do Barramento de Serviço.
Próximas etapas
- Visão geral da integração do Barramento de Serviço com a Grade de Eventos
- Tutorial que usa mensagens para integrar sistemas que não são da Microsoft por meio de NServiceBus