Torne-se global
- 3 minutos
Na unidade anterior, descrevemos o escalonamento da computação e como torná-la mais disponível durante o processo. Também sugerimos adicionar o Azure Managed Redis para melhorar o desempenho e escalar bases de dados SQL do Azure através do sharding.
O próximo passo, à medida que o seu negócio cresce, pode ser tornar-se global. No entanto, há 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 a dor que nossos clientes têm antes de assumir tal tarefa, então faça mais algumas perguntas:
- Você pode obter conteúdo mais perto 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) geografias? Por exemplo, um utilizador nos Estados Unidos precisa de ter exatamente a mesma conta no Reino Unido? Sistemas independentes seriam mais adequados? Esse padrão é comum no e-commerce.
- Se você realmente precisa de um sistema distribuído globalmente, que consistência você precisa para o banco de dados? Manter uma forte consistência em todo o mundo é difícil. Serviços como o Cosmos DB suportam uma forte consistência em configurações multi-região, mas trazem compensações significativas, incluindo maior latência, menor disponibilidade durante interrupções regionais e aumento do consumo de RU por operação.
Consistência dos dados
Vamos olhar um pouco mais de perto para a questão da consistência de dados.
Na computação distribuída, consistência refere-se a quão atualizados e uniformes estão os dados em todas as réplicas de um sistema. Existem dois modelos principais de consistência.
Consistência forte oferece uma garantia de linearizabilidade. As leituras garantem o retorno da versão mais recente confirmada de um item.
E depois há eventual consistência, a ideia de que uma base de dados ou sistema acabará por se tornar consistente ao longo do tempo. Não há garantia de ordem para leituras. Na ausência de mais gravações, as réplicas acabam por convergir.
Serviços como o Cosmos DB também oferecem modelos de consistência intermédios, como frescura limitada, sessão e prefixo consistente, que fornecem diferentes equilíbrios entre desempenho e actualização dos dados.
Ferramentas para se tornar global
Se perceber que realmente precisa de escalar a sua aplicação globalmente, existem alguns serviços do Azure que o podem ajudar a conseguir isso. Vamos dar uma vista de olhos ao Gestor de Tráfego do Azure e ao Azure Front Door:
- Gestor de Tráfego do Azure é um serviço global de balanceamento de carga baseado em DNS. Ele usa DNS e testes de integridade para rotear seus usuários para o melhor back-end saudável com base nas políticas de roteamento que você definiu. Este encaminhamento pode basear-se no desempenho, localização, round robin, e assim por diante. Depois que um backend saudável é identificado, os clientes sempre se conectam diretamente ao backend.
- Azure Front Door é um CDN na cloud moderno e balanceador de carga global, oferecendo várias capacidades de balanceamento de carga de camada 7 para as suas aplicações. Ele fornece aceleração dinâmica de sites (DSA), juntamente com balanceamento de carga global com failover em quase tempo real. É um serviço altamente disponível e escalável, totalmente gerido pela 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, então o Front Door está atuando como intermediário para a solicitação dos usuários. Se o item solicitado não estiver no cache, a regra de roteamento correta será identificada. Depois, verifica a sonda de saúde do backend relevante e, assumindo que tudo está saudável, encaminha o pedido do utilizador para o melhor backend com base no método de encaminhamento.
Como o Azure Front Door faz proxies da ligação, pode realizar algumas funções avançadas, como correr um Firewall de Aplicações Web e fazer cache, o que é útil para escalar. Nenhuma destas funções pode ser alcançada com o Gestor de Tráfego.
O diagrama mostra como você pode usar ambos juntos.
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. Ele também usa o Front Door para o roteamento baseado em caminhos na sua aplicação web no Serviço de Aplicativos e em VMs.