Replicação geográfica no Azure Web PubSub

Os aplicativos críticos geralmente precisam ter um sistema de failover robusto e atender os usuários mais próximos de onde eles estão. Antes do lançamento do recurso de replicação geográfica, os desenvolvedores precisavam implantar vários recursos do Web PubSub e escrever código personalizado para orquestrar a comunicação entre recursos. Agora, com a configuração rápida por meio do portal do Azure, você pode habilitar facilmente esse recurso.

Benefícios do uso da replicação geográfica

  • Mais resiliente à interrupção regional: se ocorrer uma interrupção regional, os clientes serão automaticamente roteados para uma réplica íntegra.
  • Comunicação entre regiões: os desenvolvedores usam um recurso habilitado para replicação geográfica como de costume, embora nos bastidores haja mais de um recurso. A comunicação entre réplicas é tratada pelo serviço.
  • Velocidade de rede aprimorada: clientes geograficamente dispersos se conectarão à réplica mais próxima. Essas réplicas se comunicam por meio de Backbone de rede global do Azure, garantindo uma rede rápida e estável.
  • Facilidade de gerenciamento. Todas as réplicas compartilham a configuração do recurso principal do Web PubSub.

Pré-requisitos

Caso de uso de exemplo

Contoso, uma empresa de mídia social

A Contoso é uma empresa de mídia social com sua base de clientes espalhada pelos EUA e Canadá. A Contoso fornece um aplicativo móvel e Web para os usuários deles para que eles possam se conectar uns com os outros. O aplicativo Contoso é implantado no Centro dos EUA. Como parte da arquitetura da Contoso, o Web PubSub é usado para estabelecer conexões WebSocket persistentes entre aplicativos cliente e o servidor de aplicativos. A Contoso gosta de não precisar gerenciar conexões WebSocket com o Web PubSub, mas não gosta de ler relatórios de usuários no Canadá com maior latência. Além disso, a equipe de desenvolvimento da Contoso deseja assegurar o aplicativo contra interrupções regionais para que os usuários possam acessar o aplicativo sem interrupções.

Diagrama do uso de uma instância do Azure WebPubSub para lidar com o tráfego de dois países.

A Contoso poderia configurar outro recurso do Web PubSub no Canadá Central, que está geograficamente mais próximo dos usuários deles no Canadá. No entanto, o gerenciamento de vários recursos do Web PubSub traz alguns desafios:

  1. Um mecanismo de comunicação entre regiões precisaria ser implementado para que os usuários no Canadá e nos EUA possam interagir entre eles.
  2. A equipe de desenvolvimento precisaria gerenciar dois Serviços do Web PubSub separados, cada um com uma cadeia de conexão e um domínio distintos.
  3. Se ocorrer uma interrupção regional, o tráfego precisará ser direcionado para um recurso disponível.

Tudo isso tira os recursos de engenharia do foco na inovação de produtos.

Diagrama do uso de duas instâncias do Azure Web PubSub para lidar com o tráfego de dois países.

Aproveitando o recurso de replicação geográfica

Com o recurso de replicação geográfica, a Contoso agora pode estabelecer uma réplica no Canadá Central, superou efetivamente os desafios mencionados acima. A equipe de desenvolvedores está feliz em descobrir que não precisa fazer nenhuma alteração de código. É tão fácil quanto clicar em alguns botões no portal do Azure. A equipe de desenvolvedores também está feliz em compartilhar com os stakeholders que, à medida que a Contoso planeja entrar no mercado europeu, eles precisam apenas adicionar outra réplica na Europa.

Diagrama do uso de uma instância do Azure Web PubSub com réplica para lidar com o tráfego de dois países.

Como habilitar a replicação geográfica em um recurso do Web PubSub

Para criar uma réplica em uma região do Azure, acesse o recurso do Web PubSub e localize a folha Réplicas no portal do Azure e clique em Adicionar para criar uma réplica.

Captura de tela da criação da réplica para o Azure Web PubSub no Portal.

Após a criação, você poderá exibir/editar sua réplica no portal clicando no nome da réplica.

Captura de tela da folha de visão geral do recurso de réplica do Azure Web PubSub.

Observação

  • No momento, a contagem de réplicas está limitada a um máximo de 8 por recurso primário.

Preços e unidade de recursos

Cada réplica tem os próprios unit e autoscale settings.

A réplica é um recurso de nível Premium do Serviço do Azure Web PubSub. Cada réplica é cobrada separadamente de acordo com sua própria unidade e tráfego de saída. A cota de mensagens gratuitas também é calculada separadamente.

No exemplo anterior, a Contoso adicionou uma réplica no Canadá Central. A Contoso pagaria pela réplica no Canadá Central de acordo com sua unidade e mensagem no Preço Premium.

Haverá taxas de saída para o tráfego de saída entre regiões. Se uma mensagem for transferida entre réplicas e enviada com êxito a um cliente ou servidor após a transferência, ela será cobrada como uma mensagem de saída.

Excluir uma réplica

Depois de criar uma réplica para um recurso do Azure Web PubSub, você poderá excluí-la a qualquer momento se ela não for mais necessária.

Para excluir uma réplica no portal do Azure:

  1. Navegue até o recurso do Web PubSub e selecione a folha Réplicas. Clique na réplica que você deseja excluir.
  2. Clique no botão Excluir na folha de visão geral da réplica.

Para excluir uma réplica usando a CLI do Azure:

 az webpubsub replica delete --replica-name MyReplica --name MyWebPubSub -g MyResourceGroup

Entender como funciona o recurso de replicação geográfica

Diagrama do arco da réplica do Azure Web PubSub.

  1. O cliente resolve o FQDN (Nome de Domínio Totalmente Qualificado) contoso.webpubsub.azure.com do serviço Web PubSub. Esse FQDN aponta para um Gerenciador de Tráfego, que retorna o CNAME (nome canônico) da instância regional mais próxima do Web PubSub.
  2. Com esse CNAME, o cliente estabelece uma conexão com a instância regional (réplica).
  3. As duas réplicas sincronizarão dados entre si. As mensagens enviadas para uma réplica seriam transferidas para outras réplicas, se necessário.
  4. Caso uma réplica falhe na verificação de integridade realizada pelo Gerenciador de Tráfego, o Gerenciador de Tráfego excluirá o ponto de extremidade da instância com falha de seus resultados de resolução de domínio. Para obter detalhes, consulte Resiliência e Recuperação de Desastre abaixo

Observação

  • No plano de dados, um recurso primário do Azure Web PubSub funciona de maneira idêntica às réplicas dele

Resiliência e recuperação de desastre

O Serviço do Azure Web PubSub utiliza um gerenciador de tráfego para verificações de integridade e resolução de DNS para suas réplicas. Em circunstâncias normais, quando todas as réplicas estiverem funcionando corretamente, os clientes serão direcionados para a réplica mais próxima. Por exemplo:

  • Clientes próximos a eastus serão direcionados para a réplica localizada em eastus.
  • Da mesma forma, os clientes próximos a westus serão direcionados para a réplica em westus.

No caso de uma interrupção regional no leste (ilustrada abaixo), o gerenciador de tráfego detectará a falha de verificação de integridade dessa região. Em seguida, o DNS dessa réplica com falha será excluído dos resultados de resolução DNS do gerenciador de tráfego. Após uma duração de TTL (vida útil) do DNS, que é definida como 90 segundos, os clientes em eastus serão redirecionados para se conectarem à réplica em westus.

Diagrama do failover de réplica do Azure Web PubSub.

Depois que o problema no eastus for resolvido e a região estiver online novamente, a verificação de integridade terá êxito. Os clientes em eastus serão direcionados novamente para a réplica em sua região. Essa transição é tranquila, pois os clientes conectados não serão afetados até que essas conexões existentes sejam fechadas.

Diagrama da recuperação de failover de réplica do Azure Web PubSub.

Esse processo de failover e recuperação é automático e não requer nenhuma intervenção manual.

Desabilitar ou habilitar o ponto de extremidade de réplica

Ao configurar uma réplica, você tem a opção de habilitar ou desabilitar seu ponto de extremidade. Se estiver desabilitado, a resolução DNS do FQDN primário não incluirá a réplica e, portanto, o tráfego não será direcionado para ela.

Diagrama da configuração do ponto de extremidade de réplica do Azure Web PubSub.

Você também pode habilitar a desabilitação do ponto de extremidade depois que ele for criado. Na folha de réplicas do recurso primário, clique no botão de reticências no lado direito da réplica e escolha Habilitar Ponto de Extremidade ou Desabilitar Ponto de Extremidade:

Diagrama da modificação do ponto de extremidade de réplica do Azure Web PubSub.

Antes de excluir uma replicação, considere desabilitar seu ponto de extremidade primeiro. Com o tempo, as conexões existentes serão desconectadas. Como não há conexões novas, a replicação fica ociosa. Isso garante um processo de exclusão contínuo.

Esse recurso também é útil para solucionar problemas regionais.

Observação

  • Devido ao cache DNS, pode levar vários minutos para que a atualização DNS entre em vigor.
  • As conexões existentes permanecem não afetadas até se desconectarem.

Impacto no desempenho após habilitar o recurso de replicação geográfica

Depois que as réplicas estiverem habilitadas, os clientes distribuirão naturalmente com base em suas localizações geográficas. Embora o Web PubSub assuma a responsabilidade de sincronizar dados entre essas réplicas, a sobrecarga associada na Carga do Servidor é mínima para a maioria dos casos de uso comuns.

Especificamente, se seu aplicativo normalmente transmite para grupos maiores (tamanho >10) ou uma única conexão, o impacto no desempenho da sincronização é quase imperceptível. Se você estiver trocando mensagens com grupos pequenos (tamanho < 10), poderá notar um pouco mais de sobrecarga de sincronização.

Para garantir um gerenciamento de failover eficaz, é recomendável definir o tamanho da unidade de cada réplica para lidar com todo o tráfego. Como alternativa, você pode habilitar o dimensionamento automático para gerenciar isso.

Para obter mais avaliação de desempenho, consulte Desempenho.

Configurações não herdadas e herdadas

As réplicas herdam a maioria das configurações do recurso primário; no entanto, algumas configurações devem ser configuradas diretamente nas réplicas. Veja abaixo a lista dessas configurações:

  1. SKU: Cada réplica tem seu próprio nome de SKU e tamanho de unidade. As regras de dimensionamento automático para réplicas precisam ser configuradas separadamente com base nas respectivas métricas individuais.
  2. Pontos de extremidade privados compartilhados: embora os pontos de extremidade privados compartilhados sejam automaticamente replicados para réplicas, aprovações separadas são necessárias em recursos de link privado de destino. Para adicionar ou remover pontos de extremidade privados compartilhados, gerencie-os no recurso primário. Não habilite a réplica até que seu ponto de extremidade privado compartilhado tenha sido aprovado.
  3. Configurações de destino de log. Se não estiver configurado nas réplicas, somente os logs do recurso primário serão transferidos.
  4. Alertas.

Todas as outras configurações são herdadas do recurso primário. Por exemplo, chaves de acesso, identidade, firewall do aplicativo, domínios personalizados, pontos de extremidade privados e controle de acesso.