Imagine uma estrutura de nuvem mantém um aplicativo Web, que tem usuários espalhados em diversos locais do mundo. Nossa missão é garantir que a aplicação tenha um SLA de no mínimo 99,9% de disponibilidade.
Além de todos esses requisitos acima, também é necessário que os usuário de diversos pontos do mundo tenham a melhor experiência possível ao utilizar o aplicativo.
Com certeza podemos pensar em várias soluções, para atender esta demanda, porém neste artigo vou tratar o Gerenciado de Tráfego no Azure.
Bora conhecer esse recurso??
Gerenciador de Tráfego
O Gerenciador de Tráfego do Azure, basicamente é um balanceador de carga, porém o gerenciamento é baseado consultas de DNS. Dessa forma é possível distribuir o tráfego de rede respeitando uma série de regras que podem direcionar o tráfego de rede para diferentes regiões do Azure.
É possível obter alta disponibilidade com opções de failover automático, aumento de capacidade de resposta de um aplicativo aproveitando o melhor desempenho de roteamento, combinação de sistemas locais e em nuvem e muito mais.
Como funciona o Gerenciador de Tráfego
Quando um cliente tenta se conectar ao aplicativo através de um nome (DNS), o Gerenciador de Tráfego usa o DNS para encaminhar a solicitação do cliente diretamente para o ponto de extremidade que melhor atende a solicitação baseado nas regras pré-definidas.
Como o Gerenciamento de tráfego não é um gateway ou um proxy a requisição é redirecionada diretamente no aplicativo ou serviço publicado.
Ponto de extremidade
O ponto de extremidade é a nomenclatura que a Microsoft utiliza para definir o endereço que é retornado para cada nova requisição.
O Gerenciamento de Tráfego, tem 3 tipos de pontos extremidades.
Ponto de extremidade do Azure: É usado para os serviços hospedados no Azure. Exemplo: Serviços de Aplicativos, IP Públicos, VMs, Load Balancers, etc
Ponto de extremidade externo: É usado para serviços hospedados fora do Azure, Exemplo: IPv4/IPv6, FQDN, etc.
Ponto de extremidade aninhados: Este ponto de extremidade é utilizado para combinar perfis de Gerenciamento de Tráfego, para criar esquemas de roteamento mais granularizados.
Métodos de Roteamento
Como mencionei anteriormente, o Gerenciado de Tráfego do Azure tem suporte a diferentes métodos de roteamento de tráfego, permitindo que o uso do recurso seja adaptado da maneira que melhor pode atende a necessidade do ambiente.
Abaixo vou detalhar os seis tipos diferentes de métodos de roteamento oferecidos.
Roteamento ponderado
Vamos utilizar o roteamento ponderado se o objetivo for distribuir o tráfego entre 2 ou mais pontos de extremidade de forma equilibrada ou de acordo com pesos diferentes que podem ser definidos conforme a capacidade de cada ponto de extremidade.
O peso pode ser definido através de uma “pontuação” que vai de 1 a 1000.
Toda vez que uma consulta DNS é recebida o Gerenciador de Tráfego trata de distribuir a requisição aleatoriamente entre os pontos de extremidade disponíveis, essa distribuição baseia-se nos pesos atribuídos.
Roteamento por desempenho
O roteamento por desempenho é mais indicado para utilização quando nosso ambiente possui pontos de extremidade provisionados em regiões geográficas diferentes.
Este método é muito interessante, pois através de uma tabela de latência da internet, o Gerenciador de Tráfego consegue direcionar a solicitação para o ponto de extremidade com maior desempenho, para isso é utilizada a tabela de latência em conjunto com a localização geográfica que originou a pesquisa de DNS.
Quando uma requisição é processada, o Gerenciador de Tráfego analisa a localização do usuário, e com base na tabela de latência para redirecionar a requisição ao ponto de extremidade com a menor latência possível.
Roteamento geográfico
Este método pode ser o mais indicado para o cenário que descrevi lá na introdução do artigo.
Quando temos uma ambiente distribuído em vários locais do mundo, provavelmente vamos necessitar que a nossa aplicação se comporte com algumas particularidades em cada região, seja para atender uma necessidade de compliance local, layout personalizado, o idioma, etc…
E através do roteamento geográfico, podemos criar regras que delimitam o tráfego direcionando a solicitação para o ponto de extremidade definido baseado na região geográfica que originou a solicitação.
Em alguns países o recurso é tão completo que podem ser criadas regras baseadas em estados ou províncias.
Roteamento de vários valores
No roteamento de vários valores, podemos obter respostas a uma consulta de DNS, vários pontos de extremidade íntegros e ativos. Utilizando este modelo de roteamento, podemos observar um aumento na disponibilidade do serviço, além da redução da latência.
Roteamento de sub-rede
Quando falamos em roteamento de sub-rede, podemos identificar alguma semelhança com o método de Roteamento geográfico. Porém no método de sub-rede é possível definir experiência de uso ou acessos diferente para usuários que se conectem através um determinado range de sub-rede.
Podemos por exemplo definir que todo tráfego de uma unidade da empresa sejam encaminhadas para um site secundário enquanto a matriz utiliza um ponto de extremidade diferente.
Roteamento de prioridade
E por fim, chegamos ao método de roteamento de prioridade, neste método, adicionamos uma lista com todos os pontos de extremidade disponíveis em nosso ambiente e com um nível de prioridade para cada item desta lista.
O Gerenciador de Tráfego irá se encarregar de entregar as solicitações de DNS para o ponto de extremidade primário, ou seja, o ponto de extremidade com prioridade mais alta. Se em algum momento este ponto de extremidade não estiver disponível, o Gerenciador de Tráfego irá rotear as solicitações para o próximo ponto de extremidade disponível.
Neste método de roteamento, é necessário observar o status e o monitoramento de cada ponto de extremidade, pois estes dois fatores irão determinar se o ponto de extremidade está ou não disponível.
Se você gostou do Gerenciador de Tráfego e quer ver ele funcionando na prática, logo abaixo vou deixar a gravação de uma Live que eu fiz, mostrando o passo a passo para a configuração do Gerenciador de Tráfego.
No vídeo eu explico como configurar um Gerenciador de Tráfego e como utilizar os principais métodos de roteamento disponíveis.
Se você gostou deste conteúdo, tem alguma dica, dúvida ou recomendação de conteúdo, deixe o seu comentário abaixo!!!!
Que a força esteja com você!!!
Diretor técnico na Supreme Tecnologia.
MVP Azure, MTAC e Azure Administrator Associate