Ir global
- 3 minutos
Na unidade anterior, descrevemos o dimensionamento da computação e o disponibilizamos mais no processo. Também sugerimos adicionar um Cache do Azure para Redis para melhorar o desempenho e dimensionar bancos de dados 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 nos 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? A consistência forte em todo o mundo é difícil de acertar, e não é permitida em serviços como o Cosmos DB, literalmente devido à velocidade da luz.
Consistência de dados
Vamos examinar um pouco mais de perto a questão da consistência de dados.
A consistência nos sistemas de banco de dados refere-se ao requisito de que qualquer transação de banco de dados determinada deve alterar os dados afetados apenas de maneiras permitidas. Há dois modelos de consistência usados na computação distribuída.
A consistência forte oferece uma garantia de linearidade. As leituras são garantidas para retornar a versão mais recente 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 ordenação para leituras. Na ausência de gravações adicionais, as réplicas eventualmente convergem.
Ferramentas para ir global
Se você achar que realmente precisa dimensionar seu aplicativo globalmente, há alguns serviços do Azure que podem ajudá-lo 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 global de balanceamento de carga baseado em DNS. Ele usa DNS e investigações de integridade para rotear seus usuários para o melhor back-end íntegro com base nas políticas de roteamento que você definiu. Essa definição pode ser baseada no desempenho, local, round robin e assim por diante. Depois que um back-end íntegro é identificado, os clientes sempre se conectam diretamente ao back-end.
- O Azure Front Door Service é um ADN (Application Delivery Network) como serviço, oferecendo vários recursos de balanceamento de carga de camada 7 para seus aplicativos. Ele fornece DSA (aceleração dinâmica de site) juntamente 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, portanto, o Front Door está em 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 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 proxies da conexão, você pode executar algumas funções avançadas, como executar um Firewall de Aplicativo Web e cache, o que é útil para dimensionamento. Nenhuma dessas funções pode ser obtida com o Gerenciador 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 roteamento baseado em caminho em seu aplicativo Web entre o Serviço de Aplicativo e VMs.