Ir global
- 3 minutos
Na unidade anterior, descrevemos o escalonamento da computação e como torná-la mais acessível durante o processo. Também sugerimos adicionar o Azure Redis Gerenciado para melhorar o desempenho e dimensionar bancos de dados do SQL do Azure por meio de fragmentação.
A próxima etapa, à medida que seu negócio cresce, pode ser se tornar global. No entanto, há algumas coisas que você precisa pensar antes de tentar implementar uma arquitetura totalmente global.
Perguntas a serem feitas
A primeira pergunta é: você realmente precisa ser global?
É importante entender a dor que nossos clientes têm antes de assumir tal tarefa, então faça mais algumas perguntas a si mesmo:
- Você pode obter conteúdo mais próximo de seus usuários por meio de uma rede de distribuição de conteúdo?
- Você realmente precisa dimensionar esse sistema específico em duas (ou mais) geografias? Por exemplo, um usuário no Estados Unidos precisa ter exatamente a mesma conta no Reino Unido? Sistemas independentes seriam mais adequados? Esse padrão é comum no comércio eletrônico.
- Se você realmente precisa de um sistema distribuído globalmente, de que consistência você precisa para o banco de dados? Alcançar uma consistência forte globalmente é difícil. Serviços como o Cosmos DB dão suporte à forte consistência em configurações de várias regiões, mas ele vem com compensações significativas, incluindo maior latência, disponibilidade reduzida durante interrupções regionais e aumento do consumo de RU por operação.
Consistência de dados
Vamos examinar um pouco mais de perto a questão da consistência de dados.
Na computação distribuída, a consistência refere-se a quão atualizados e uniformes são os dados em todas as réplicas de um sistema. Há dois modelos de consistência primários.
A consistência forte oferece uma garantia de linearidade. É garantido que as leituras retornem a versão mais recente confirmada de um item.
E, em seguida, há uma consistência eventual, a ideia de que um banco de dados ou sistema eventualmente se tornará consistente com o tempo. Não há garantia de classificação para leituras. Na ausência de qualquer gravação adicional, as réplicas eventualmente convergem.
Serviços como o Cosmos DB também oferecem modelos de consistência intermediária, como defasagem controlada, sessão e prefixo consistente, que fornecem diferentes equilíbrios entre desempenho e atualização de dados.
Ferramentas para expandir globalmente
Se você achar que realmente precisa dimensionar seu aplicativo globalmente, há alguns serviços Azure que podem ajudá-lo a conseguir isso. Vamos dar uma olhada em Gerenciador de Tráfego do Azure e Azure Front Door:
- Gerenciador de Tráfego do Azure é um serviço global de balanceamento de carga baseado em DNS. 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. Esse roteamento pode ser baseado no desempenho, localização, round robin e assim por diante. Depois que um back-end íntegro é identificado, os clientes sempre se conectam diretamente ao back-end.
- Azure Front Door é uma CDN de nuvem moderna e um balanceador de carga global, oferecendo várias funcionalidades de balanceamento de carga de 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 por Azure.
Azure Front Door é basicamente um balanceador de carga global baseado em HTTP. O cliente estabelece uma conexão com o próprio Front Door, portanto, o Front Door atua como proxy para a solicitação dos usuários. Se o item solicitado não estiver no cache, a regra de roteamento correta será identificada. Em seguida, ele verifica a investigação de integridade do back-end relevante e, supondo que tudo esteja íntegro, encaminha a solicitação do usuário para o melhor back-end com base no método de roteamento.
Como o Azure Front Door faz a intermediação da conexão, você pode realizar algumas funções avançadas, como um Firewall de Aplicativo Web e cache, o que é útil para escalabilidade. Nenhuma dessas funções pode ser obtida com o Gerenciador de Tráfego.
O diagrama mostra como você pode usar ambos juntos.
diagrama de arquitetura completa mostrando Azure Front Door e Traffic Manager na mesma arquitetura.
Essa configuração usa o Gerenciador de Tráfego para balanceamento de carga simples baseado em DNS para seus ativos estáticos em 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.