Torne-se global
Na unidade anterior, descrevemos como escalar a computação e torná-la mais disponível no processo. Também sugerimos adicionar um Cache do Azure para Redis a fim de aprimorar o desempenho e escalar horizontalmente os bancos de dados SQL do Azure por meio de fragmentação.
A próxima etapa, à medida que sua empresa cresce, pode ser o patamar global. No entanto, existem algumas coisas que você precisa pensar antes de tentar implementar uma arquitetura totalmente global.
Perguntas a fazer
A primeira pergunta é: Você realmente precisa se tornar global?
É importante entender o sofrimento que nossos clientes enfrentam antes de realizar essa tarefa. Portanto, faça a si mesmo mais algumas perguntas:
- Você pode aproximar o conteúdo de seus usuários por meio de uma rede de distribuição de conteúdo?
- Você realmente precisa escalar esse sistema específico em duas (ou mais) regiões geográficas? Por exemplo, um usuário nos Estados Unidos precisa ter exatamente a mesma conta no Reino Unido? Os sistemas independentes seriam mais adequados? Esse padrão é comum no comércio eletrônico.
- Caso você realmente precise de um sistema distribuído globalmente, que coerência seria necessária para o banco de dados? É difícil de acertar na coerência forte ao redor do mundo, e ela não é permitida em serviços como o Cosmos DB, literalmente devido à velocidade da luz.
Coerência de dados
Vamos examinar um pouco mais detalhadamente a questão da coerência de dados.
A coerência nos sistemas de banco de dados refere-se ao requisito de que qualquer transação de banco de dados específica deve alterar os dados afetados apenas das maneiras permitidas. Existem dois modelos de coerência usados na computação distribuída.
A coerência forte oferece uma garantia de transação atômica. As leituras são garantidas para retornar a versão mais recente de um item.
E há a coerência eventual, a ideia de que um banco de dados ou um sistema se tornará consistente ao longo do tempo. Não há garantia de classificação para leituras. Na ausência de qualquer gravação adicional, as réplicas eventualmente convergem.
Ferramentas para tornar-se global
Se você achar que realmente precisa dimensionar seu aplicativo globalmente, há alguns serviços do Azure que talvez ajudem a conseguir isso. Vamos dar uma olhada no Gerenciador de Tráfego do Azure e no Azure Front Door:
- O Gerenciador de Tráfego do Azure é um serviço de balanceamento de carga baseado em DNS global. Ele usa as investigações de integridade e o DNS para rotear os usuários para o back-end mais íntegro de acordo com as políticas de roteamento que você definiu. Essa definição pode ser baseada em desempenho, localização, distribuição equilibrada etc. Quando um back-end íntegro é identificado, os clientes sempre se conectam diretamente a ele.
- O Azure Front Door Service é uma ADN (Rede de Distribuição de Aplicativos) como um serviço, oferecendo vários recursos de balanceamento de carga da camada 7 para seus aplicativos. Ele fornece a DSA (Aceleração de Site Dinâmico) junto com o balanceamento de carga global com failover quase em tempo real. É um serviço altamente disponível e escalonável, totalmente gerenciado pelo Azure.
O Azure Front Door é basicamente um balanceador de carga global baseado em HTTP. O cliente estabelece uma conexão com o próprio Front Door e, portanto, a rede está estabelecendo o proxy da solicitação dos usuários. Se o item solicitado não estiver no cache, a regra de roteamento correta será identificada. Em seguida, ele verificará a investigação de integridade do back-end relevante e, considerando que todos estejam íntegros, encaminhará a solicitação do usuário para o melhor back-end com base no método de roteamento.
Como o Azure Front Door faz o proxy da conexão, você pode realizar algumas funções avançadas, como a execução de um firewall do aplicativo Web e o cache, que é útil para a escala. Nenhuma dessas funções pode ser obtida com o Gerenciador de Tráfego.
O diagrama mostra como você pode usar as duas.
Essa configuração usa o Gerenciador de Tráfego para o balanceamento de carga simples baseado em DNS para seus ativos estáticos nas contas de armazenamento. Ela também usa o Front Door para roteamento baseado em caminho no aplicativo Web entre o Serviço de Aplicativo e as VMs.