Editar

Share via


Aplicativo Web de duas regiões com failover 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

Ideias de soluções

Esse artigo é uma ideia de solução. Caso deseje que ampliemos o conteúdo com mais informações, como possíveis casos de uso, serviços alternativos, considerações sobre implementação ou diretrizes de preços, fale conosco enviando seus comentários no GitHub.

Essa arquitetura fornece uma solução de alta disponibilidade para um aplicativo Web que usa grandes volumes de dados. Uma região secundária serve como em espera para a primária, melhorando a disponibilidade. A região primária envia dados à secundária usando os recursos internos de replicação do Armazenamento do Azure.

Os dados são armazenados em tabelas do Armazenamento de Tabelas do Azure. Como ocorre com qualquer serviço de Armazenamento do Azure, os dados do Armazenamento de Tabela são replicados de forma síncrona três vezes na região primária. Para disponibilizá-lo para uso em espera, ele também é replicado de forma assíncrona três vezes na região secundária. Para obter mais informações sobre a replicação do Armazenamento do Azure, confira Redundância do Armazenamento do Azure.

A arquitetura inclui um cache para as tabelas para reduzir a carga de acesso e melhorar a resposta do aplicativo.

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:

  • Acompanham os hábitos de consumo e o comportamento de compra dos clientes.
  • Fazem previsão do tempo.
  • Oferecem sistemas de tráfego inteligentes, implementam sistemas de tráfego inteligentes ou usam tecnologia inteligente para monitorar o tráfego.
  • Analisam dados de IoT (Internet das Coisas) de manufatura.
  • Exibem dados de medidores inteligentes ou usam tecnologia inteligente para monitorar dados de medidores.

Arquitetura

Arquitetura de um sistema resiliente que 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, alterna o tráfego do usuário para a região em espera em caso de 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 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.
  7. O Armazenamento de Tabela do Azure contém os dados usados pelos aplicativos Web.
  8. O Armazenamento de Tabela dá suporte à replicação síncrona de dados entre zonas de disponibilidade na região para mitigar as interrupções do datacenter. Ele também usa a replicação assíncrona para replicar dados em regiões distintas do Azure para corrigir interrupções regionais e melhorar a disponibilidade do aplicativo.

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

  • O Gerenciador de Tráfego do Azure direciona solicitações de DNS recebidas nas regiões globais do Azure com base na sua escolha de métodos de roteamento de tráfego. Ele também fornece failover automático e roteamento de desempenho.
  • A Rede de Distribuição de Conteúdo do Azure armazena em cache o conteúdo estático em servidores de borda para resposta rápida e usa otimizações de rede para acelerar a resposta para conteúdo dinâmico. A Rede de Distribuição de Conteúdo é especialmente útil quando a base de usuários é global.
  • O AKS (Serviço de Kubernetes do Azure) é o serviço Kubernetes totalmente gerenciado para implantar e gerenciar aplicativos conteinerizados. Você pode usá-lo para implementar uma arquitetura de microsserviços cujos componentes são dimensionados de forma independente sob demanda.
  • As Instâncias de Contêiner do Azure apresentam uma forma rápida e simples de executar tarefas sem precisar gerenciar a infraestrutura. Isso é útil durante o desenvolvimento ou para executar tarefas não agendadas.
  • O Barramento de Serviço do Azure é um serviço de mensagem de nuvem confiável para integração híbrida simples. Ele pode ser usado em vez de Armazenamento em Fila nessa arquitetura. Para saber mais, confira Filas do Armazenamento e filas do Barramento de Serviço – comparações e diferenças.

Considerações

  • 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 contas adicionais:

    • 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.

  • A replicação do Armazenamento de Tabelas não está disponível em algumas regiões do Azure.

  • Os dados em uma região secundária têm consistência eventual. Isso significa que há uma defasagem entre o momento em que uma atualização ocorre em uma região primária e quando ela é vista na região secundária. Como a replicação da região primária para a secundária é assíncrona, poderá haver perda de dados se a região primária falhar e não se recuperar. No momento, não há SLA (contrato de nível de serviço) em relação ao tempo que leva para replicar dados para a região secundária. Para mais informações, confira Redundância do Armazenamento do Microsoft Azure.

Colaboradores

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

Autor principal:

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

Próximas etapas