Editar

Partilhar via


Aplicativo Web multirregião com replicação personalizada de tabela de armazenamento

Azure Front Door
Azure App Service
Azure Functions
Azure Table Storage
Azure Cache for Redis

Essa arquitetura fornece uma solução de alta disponibilidade para um aplicativo Web que usa grandes quantidades de dados. É 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 requer software de replicação personalizado. Dependendo dos aplicativos e da configuração, isso pode ser difícil de criar.

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

  • Ativo/Passivo: há uma região primária que normalmente fornece 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 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 de espera que fica 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 de 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-ativa: Existem várias regiões ativas, cada uma capaz de fornecer um 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 multi-ativos é bastante 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 importantes com essa arquitetura.

Nota

Seu aplicativo pode exigir várias contas de armazenamento em algumas circunstâncias. Consulte Considerações para obter mais informações.

Potenciais casos de utilização

A arquitetura pode ser apropriada para qualquer aplicativo que use grandes quantidades de dados que devem estar sempre disponíveis. Os exemplos incluem aplicações 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 indústrias de mídia/notícias).
  • Oferecer sistemas de tráfego inteligentes ou implementar sistemas de tráfego inteligentes ou utilizar tecnologia inteligente para monitorizar o tráfego (indústrias automóvel e de transportes).
  • Analise dados de fabricação de Internet das Coisas (IoT).
  • Exiba dados de medidores inteligentes ou use tecnologia inteligente para monitorar dados de medidores (indústria 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 de espera.

Transfira um ficheiro do Visio desta arquitetura.

Fluxo de dados

  1. O cliente se autentica com a ID do Microsoft Entra 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 uma região diferente 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 lidar com 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, acionadas pelas mensagens enfileiradas.
  6. O software de replicação personalizado garante que as tabelas permaneçam idênticas entre as regiões.
  7. O Cache Redis do Azure armazena em cache dados de tabela para os aplicativos de função. Isso descarrega a atividade do banco de dados e acelera os aplicativos de função 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 ser sincronizado com um diretório local. O DNS do Azure é um serviço de hospedagem de alta disponibilidade para domínios DNS que fornece aplicativos com consultas DNS rápidas e atualizações rápidas para registros DNS. Gerenciar o DNS do Azure é como gerenciar outros serviços do Azure e usa as mesmas credenciais, APIs, ferramentas e cobrança.
  • O Azure Front Door é uma rede de entrega de conteúdo (CDN) 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 dimensionar aplicativos Web. Você pode criar aplicativos usando .NET, .NET Core, Node.js, Java, Python ou PHP. Os aplicativos podem ser executados em contêineres ou no Windows ou Linux. Em uma migração de mainframe, as telas front-end ou a interface da Web podem ser codificadas como APIs REST baseadas em HTTP. Eles podem ser segregados e podem ser apátridas para orquestrar um sistema baseado em microsserviços. Para obter mais informações sobre APIs da Web, consulte Design da API da Web RESTful.
  • O Azure Functions fornece um ambiente para executar pequenas partes de código, chamadas funções, sem a necessidade de estabelecer uma infraestrutura de aplicativo. Você pode usá-lo para processar dados em massa, integrar sistemas, trabalhar com IoT e criar APIs e microsserviços simples. Com os microsserviços, você pode criar servidores que se conectam aos serviços do Azure e estão sempre atualizados.
  • O Armazenamento do Azure é um conjunto de serviços de nuvem massivamente escaláveis e seguros para dados, aplicativos e cargas de trabalho. Inclui os Arquivos do Azure, o Armazenamento de Tabela do Azure e o Armazenamento de Filas do Azure. Os Arquivos do Azure geralmente são uma ferramenta eficaz para migrar cargas de trabalho de mainframe.
  • O Armazenamento de Filas do Azure fornece filas de mensagens simples, econômicas e duráveis para grandes cargas de trabalho.
  • O Armazenamento de Tabela do Azure é um armazenamento de chave-valor NoSQL para desenvolvimento rápido que usa conjuntos de dados semiestruturados maciços. As tabelas não têm esquema e adaptam-se prontamente à medida que as necessidades mudam. O acesso é rápido e econômico para muitos tipos de aplicativos, e normalmente custa menos do que outros tipos de armazenamento com chave.
  • O Cache Redis do Azure é um serviço de cache na memória totalmente gerenciado e um agente de mensagens para compartilhar dados e estado entre recursos de computação. Inclui o Redis de código aberto e um produto comercial da Redis Labs como serviços gerenciados. Você pode melhorar o desempenho de aplicativos de processamento de transações online de alta taxa de transferência projetando-os para dimensionar e usar um armazenamento de dados na memória, como o Cache do Azure para Redis.

Alternativas

  • O Azure Traffic Manager direciona solicitações DNS de entrada nas regiões globais do Azure com base em sua escolha de métodos de roteamento de tráfego. Ele também fornece failover automático e roteamento de desempenho.
  • A Rede de Entrega de Conteúdo do Azure armazena em cache conteúdo estático em servidores de borda para resposta rápida e usa otimizações de rede para melhorar a resposta para conteúdo dinâmico. A Rede de Distribuição de Conteúdo é especialmente útil quando a base de usuários é global.
  • Os Aplicativos de Contêiner do Azure são um serviço de contêiner totalmente gerenciado e sem servidor usado para criar e implantar aplicativos modernos em escala.
  • O Serviço Kubernetes do Azure (AKS) é um serviço Kubernetes totalmente gerenciado para implantar e gerenciar aplicativos em contêineres. Você pode usá-lo para implementar uma arquitetura de microsserviços cujos componentes são dimensionados independentemente sob demanda.
  • As Instâncias de Contêiner do Azure fornecem uma maneira rápida e simples de executar tarefas sem precisar gerenciar a infraestrutura. É útil durante o desenvolvimento ou para executar tarefas não programadas.
  • O Barramento de Serviço do Azure é um serviço de mensagens na nuvem confiável para integração híbrida simples. Ele pode ser usado em vez de armazenamento em fila nesta arquitetura. Para obter mais informações, consulte Filas de armazenamento e filas do Service Bus - comparadas e contrastadas.

Considerações

  • A arquitetura requer software de replicação personalizado. Isso pode ser difícil de criar, 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 importantes 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 adicionando contas de Armazenamento. As seguintes circunstâncias podem exigir mais contas:

    • Para implementar multilocação para dar suporte a vários clientes
    • Para dar suporte aos clientes com taxas de transação mais altas
    • Para dar suporte a clientes com grandes conjuntos de dados
    • Para acelerar o acesso aos dados distribuindo dados em várias contas de armazenamento
    • Para segregar dados em níveis quentes, frios e de arquivamento
    • Para fazer cópias de dados para fins de backup e relatórios

    Para obter mais informações, consulte Metas de escalabilidade e desempenho para armazenamento de tabelas.

  • Se seu aplicativo já contém dados, você precisa escrever rotinas para copiar dados antigos para contas de armazenamento. Certifique-se de que tem um carimbo de data/hora e sinalizadores de cópia para acompanhar o progresso da migração de dados.

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.

  • Nabil Siddiqui - Brasil | Arquiteto de Soluções Cloud - Inovação Digital e de Aplicações

Próximos passos