Tornar-se global
Na unidade anterior, descrevemos a computação de dimensionamento e torná-la mais disponível no processo. Também sugerimos adicionar um Cache do Azure para Redis para melhorar o desempenho e dimensionar os bancos de dados SQL do Azure por meio de fragmentação.
O próximo passo, à medida que a empresa cresce, poderá 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 compreender as dificuldades que os nossos clientes têm de enfrentar antes de se dedicarem a essa tarefa, por isso, faça a si próprio algumas perguntas:
- Você pode obter conteúdo mais perto de seus usuários por meio de uma rede de distribuição de conteúdo?
- Precisa mesmo de dimensionar este sistema para duas (ou mais) áreas geográficas? Por exemplo, um utilizador nos Estados Unidos precisa de ter exatamente a mesma conta no Reino Unido? Os sistemas independentes seriam mais adequados? Esse padrão é comum no e-commerce.
- Se precisar realmente de um sistema distribuído globalmente, de que consistência precisa para a base de dados? 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
Vejamos um pouco mais detalhadamente 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 deve alterar os dados afetados apenas de maneiras permitidas. Existem dois modelos de consistência utilizados na computação distribuída.
Uma forte consistência oferece uma garantia de linearização. As leituras são garantidas para retornar a versão confirmada mais recente de um item.
E depois há uma eventual consistência, a ideia de que uma base de dados ou sistema acabará por se tornar consistente ao longo do tempo. Não existe uma garantia de ordenação para leituras. Na ausência de escritas adicionais, as réplicas acabam por convergir.
Ferramentas para se tornar global
Se considerar que precisa mesmo de dimensionar a sua aplicação globalmente, existem alguns serviços do Azure que podem ajudá-lo a alcançar esse objetivo. Vamos dar uma olhada no Azure Traffic Manager e no Azure Front Door:
- O 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. Esta definição pode ser baseada 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.
- O Azure Front Door Service é uma Rede de Entrega de Aplicações (ADN) como serviço que fornece várias funcionalidades de balanceamento de carga de camada 7 para as suas aplicações. Proporciona a aceleração de sites dinâmicos (DSA), juntamente com um balanceamento de carga global com ativação pós-falha quase em tempo real. É um serviço altamente disponível e escalável, totalmente gerenciado pelo Azure.
O Azure Front Door é basicamente um balanceador de carga global baseado em HTTP. O cliente estabelece uma ligação com o próprio Front Door, pelo que o pedido dos utilizadores é suportado com proxy pelo Front Door. 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 proxy 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 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 roteamento baseado em caminho em seu aplicativo Web no Serviço de Aplicativo e em VMs.