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 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 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 usuário nos Estados Unidos precisa 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? A consistência forte a nível global é difícil de alcançar, e não é permitida em serviços como o Cosmos DB, devido, literalmente, à velocidade da luz.
Consistência dos dados
Vamos olhar um pouco mais de perto para a questão da consistência de dados.
Consistência em 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 usados na computação distribuída.
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.
Ferramentas para se tornar global
Se você achar que realmente precisa dimensionar seu aplicativo globalmente, há alguns serviços do Azure que podem ajudá-lo a alcançar isso. Vamos dar uma olhada no Azure Traffic Manager e no Azure Front Door:
- O Azure Traffic Manager é 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 backend saudável é identificado, os clientes sempre se conectam diretamente ao backend.
- O Azure Front Door Service é uma Rede de Entrega de Aplicativos (ADN) como um serviço, oferecendo vários recursos de balanceamento de carga de camada 7 para seus aplicativos. 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 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, 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. 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 serve de proxy para a conexão, pode realizar algumas funções avançadas, como implementar um firewall de aplicação web e armazenamento em cache, o que ajuda no 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 o roteamento baseado em caminhos na sua aplicação web no Serviço de Aplicativos e em VMs.