Editar

Share via


Aplicativo Web de várias regiões com replicação personalizada no Armazenamento de Tabelas

Porta da frente do Azure
Serviço de aplicativo do Azure
Funções do Azure
Armazenamento de Tabelas do Azure
Cache do Azure para Redis

Essa arquitetura fornece uma solução de alta disponibilidade para um aplicativo Web que usa grandes volumes de dados. Esta é uma abordagem flexível que pode fornecer uma solução global que distribui aplicativos e dados para mantê-los próximos dos usuários.

A arquitetura exige software de replicação personalizado. Dependendo dos aplicativos e da configuração, pode ser um desafio criá-la.

Aqui estão algumas configurações possíveis:

  • Ativo/Passivo: há uma região primária que costuma fornecer serviço a todos os usuários. Há também uma região de espera que se torna ativa quando a região primária não pode funcionar. Quando o sistema primário está ativo, um serviço de replicação replica as alterações do banco de dados para a região em espera.

  • Ativo/Ativo: há uma região primária que normalmente está ativa, fornecendo serviço de leitura para usuários próximos e serviço de gravação para todos os usuários. Uma ou mais outras regiões estão ativas e fornecem serviço somente leitura para usuários próximos. As gravações são sempre direcionadas para a região primária e as leituras são sempre direcionadas para a região ativa mais próxima.

    Assim como na configuração Ativo/Passivo, há uma região em espera que se torna ativa quando a região primária não pode funcionar. Quando o sistema primário está ativo, um serviço de replicação replica as alterações do banco de dados para as regiões somente leitura e a região em espera. Quando a região em espera está ativa, o serviço de replicação replica as alterações do banco de dados para as regiões somente leitura.

    Uma desvantagem dessa abordagem é a alta latência das operações de gravação.

  • Multi-ativo: há várias regiões ativas, cada uma capaz de fornecer serviço completo aos usuários. A atividade do usuário é sempre direcionada para a região ativa mais próxima.

    A implementação de multiativos é desafiadora e pode exigir design e implementação especializados.

Como a replicação é uma implementação personalizada, o nível de consistência pode ser o necessário.

A possível dificuldade de implementar a replicação personalizada e o tempo necessário são considerações relevantes com essa arquitetura.

Observação

Seu aplicativo pode exigir várias contas de armazenamento em alguns casos. Confira Considerações para obter mais informações.

Possíveis casos de uso

A arquitetura pode ser adequada a qualquer aplicativo que use grandes volumes de dados que precisem estar sempre disponíveis. Exemplos incluem aplicativos que:

  • Acompanhe os hábitos de consumo e o comportamento de compra dos clientes (setor de varejo).
  • Previsão do tempo (agricultura, meio ambiente e mídia/indústrias de notícias).
  • Ofereça sistemas de tráfego inteligentes, implemente sistemas de tráfego inteligentes ou use tecnologia inteligente para monitorar o tráfego (setores automotivo e de transporte).
  • Analisam dados de IoT (Internet das Coisas) de manufatura.
  • Exiba dados de medidores inteligentes ou use tecnologia inteligente para monitorar dados de medidores (setor de energia).

Arquitetura

Arquitetura de um sistema resiliente que usa o Armazenamento de Tabela do Azure. Ele pode ter várias regiões ativas e pode fazer failover para uma região em espera.

Baixe um Arquivo Visio dessa arquitetura.

Fluxo de dados

  1. O cliente se autentica com o Microsoft Entra ID e recebe acesso a aplicativos Web hospedados no Serviço de Aplicativo do Azure.
  2. O Azure Front Door, um firewall e balanceador de carga de camada 7, alternará o tráfego do usuário para uma região distinta do Azure se houver uma interrupção regional.
  3. O Serviço de Aplicativo do Azure hospeda sites e APIs Web RESTful. Os clientes de navegador executam aplicativos AJAX que usam as APIs.
  4. As APIs da Web delegam aplicativos de função para tratar tarefas em segundo plano. As tarefas são enfileiradas nas filas do Armazenamento de Filas do Azure.
  5. Os aplicativos de função hospedados pelo Azure Functions executam as tarefas em segundo plano, disparadas pelas mensagens enfileiradas.
  6. O software de replicação personalizado garante que as tabelas permaneçam idênticas entre regiões.
  7. O Cache do Azure para Redis armazena em cache os dados de tabela para os aplicativos de funções. Isso descarrega a atividade do banco de dados e acelera os aplicativos de funções e os aplicativos Web.
  8. O Armazenamento de Tabela do Azure contém os dados usados pelos aplicativos Web.

Componentes

  • O Microsoft Entra ID é um serviço de gerenciamento de identidade e acesso multilocatário que pode sincronizar com um diretório local. ODNS do Azure é um serviço de hospedagem de alta disponibilidade para domínios DNS que fornece aplicativos com consultas DNS e atualizações rápidas para registros DNS. Gerenciar o DNS do Azure é como gerenciar outros serviços do Azure, com as mesmas credenciais, APIs, ferramentas e cobrança.
  • O Azure Front Door é uma CDN (rede de entrega de conteúdo) segura e um balanceador de carga com failover instantâneo. Ele opera na borda perto dos usuários, acelerando a entrega de conteúdo enquanto protege aplicativos, APIs e sites contra ameaças cibernéticas.
  • O Serviço de Aplicativo do Azure é um serviço totalmente gerenciado para criar, implantar e colocar em escala aplicativos Web. É possível compilar aplicativos usando .NET, .NET Core, Node.js, Java, Python ou PHP. Os aplicativos podem ser executados em contêineres ou em Windows ou Linux. Em uma migração de mainframe, as telas de front-end ou a interface da Web podem ser codificadas como APIs REST baseadas em HTTP. Eles podem ser segregados e podem ser sem monitoração de estado para orquestrar um sistema baseado em microsserviços. Para saber mais sobre APIs da Web, confira Design de API da Web RESTful.
  • O Azure Functions fornece um ambiente para executar pequenos trechos de código, chamados funções, sem precisar estabelecer uma infraestrutura de aplicativo. É possível usá-lo para processar dados em massa, integrar sistemas, trabalhar com IoT e criar APIs e microsserviços simples. Com os microsserviços, é possível criar servidores que se conectam aos serviços do Azure e estão sempre atualizados.
  • O Armazenamento do Microsoft Azure é um conjunto de serviços de nuvem extremamente escalonáveis e seguros para dados, aplicativos e cargas de trabalho. Ele inclui Arquivos do Azure, Armazenamento de Tabelas do Azure e Armazenamento de Filas do Azure. Geralmente, os Arquivos do Azure são uma ferramenta eficaz para migrar cargas de trabalho de mainframe.
  • O Armazenamento de Filas fornece filas de mensagens simples, econômicas e duráveis para cargas de trabalho grandes.
  • O Armazenamento de Tabelas é um armazenamento de valor-chave NoSQL para desenvolvimento rápido que usa conjuntos de dados semiestruturados em massa. As tabelas são sem esquema e se adaptam prontamente, conforme as necessidades. O acesso é rápido e econômico para muitos tipos de aplicativos e, em geral, com menor custo do que outros tipos de armazenamento com chave.
  • O Cache do Azure para Redis é um serviço de cache na memória e corretor de mensagens totalmente gerenciado para compartilhar dados e estados entre recursos de computação. Ele inclui ambos, o Redis de código aberto e um produto comercializado do Redis Labs como serviços gerenciados. Você pode melhorar o desempenho de aplicativos de processamento de transações on-line de alta taxa de transferência, projetando-os em grande escala e usando um armazenamento de dados na memória, como o Cache do Azure para Redis.

Alternativas

Considerações

  • A arquitetura exige software de replicação personalizado. Isso pode ser desafiador, dependendo dos aplicativos e da configuração. A possível dificuldade de implementar a replicação personalizada e o tempo necessário são considerações relevantes com essa arquitetura.

  • Como a replicação é personalizada, os desenvolvedores têm grande flexibilidade na implementação de uma estratégia de consistência de dados.

  • Há limites de desempenho no Armazenamento de Tabela que podem ser superados com a adição de contas de Armazenamento. As seguintes circunstâncias podem exigir mais contas:

    • Para implementar a multilocação para dar suporte a vários clientes
    • Para dar suporte aos clientes com taxas de transação mais altas
    • Para dar suporte aos clientes com grandes conjuntos de dados
    • Para acelerar o acesso a dados distribuindo dados entre várias contas de armazenamento
    • Para segregar dados em camadas esporádicas, frequentes e de arquivos
    • Para fazer cópias de dados para fins de backup e emissão de relatórios

    Para saber mais, consulte Metas de escalabilidade e desempenho para Armazenamento de Tabelas.

  • Se seu aplicativo já contiver dados, você precisará escrever rotinas para copiar dados antigos em contas de armazenamento. Verifique se você tem sinalizadores de carimbo de data/hora e cópia para rastrear o progresso da migração de dados.

Colaboradores

Esse artigo é mantido pela Microsoft. Ele foi originalmente escrito pelos colaboradores a seguir.

  • Nabil Siddiqui | Arquiteto de Soluções na Nuvem - Inovação Digital e de Aplicativos

Próximas etapas