Exercício – Habilitar o failover automático usando o roteamento de prioridade

Concluído

Digamos que seu aplicativo de streaming de música tenha uma distribuição igual de usuários no Oeste dos Estados Unidos e na Europa Ocidental. Você gostaria de ter uma versão de failover do aplicativo em uma região.

O aplicativo de exemplo usado para esse exercício exibe a região em que está sendo executado. Uma das duas instâncias tem prioridade mais alta e é o ponto de extremidade primário. A outra instância tem prioridade mais baixa e é o ponto de extremidade de failover. Colocar o ponto de extremidade primário offline roteia automaticamente todo o tráfego para o ponto de extremidade de failover.

Neste exercício, você vai configurar o Gerenciador de Tráfego para usar o ponto de extremidade dos Estados Unidos como o primário, fazendo failover para o ponto de extremidade europeu se ocorrerem erros.

Criar um perfil do Gerenciador de Tráfego

  1. Execute o comando a seguir no Cloud Shell para criar um perfil do Gerenciador de Tráfego:

    az network traffic-manager profile create \
        --resource-group "<rgn>[Sandbox resource group]</rgn>" \
        --name TM-MusicStream-Priority \
        --routing-method Priority \
        --unique-dns-name TM-MusicStream-Priority-$RANDOM
    

    Use estes parâmetros no comando:

    • --routing-method Priority: Cria o perfil do Gerenciador de Tráfego usando o método de roteamento de prioridade.
    • --unique-dns-name: Cria o nome de domínio globalmente exclusivo <unique-dns-name>.trafficmanager.net. Usamos a função Bash $RANDOM para retornar um número inteiro aleatório para garantir que o nome seja exclusivo.

Implantar os aplicativos Web

  1. Execute o comando a seguir para implantar um modelo do Resource Manager. O modelo cria dois servidores, um na região do Oeste da Europa e outro na região Oeste dos EUA 2. Lembre-se de que a implantação poderá levar alguns minutos.

    az deployment group create \
        --resource-group "<rgn>[Sandbox resource group]</rgn>" \
        --template-uri  https://raw.githubusercontent.com/MicrosoftDocs/mslearn-distribute-load-with-traffic-manager/master/azuredeploy.json \
        --parameters password="$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 32)"
    

Adicionar os pontos de extremidade ao Gerenciador de Tráfego

  1. Os aplicativos Web agora estão em execução em máquinas virtuais. Execute os seguintes comandos para adicionar os recursos de endereço IP público das máquinas virtuais como pontos de extremidade ao perfil do Gerenciador de Tráfego:

    WestId=$(az network public-ip show \
        --resource-group "<rgn>[Sandbox resource group]</rgn>" \
        --name westus2-vm-nic-pip \
        --query id \
        --output tsv)
    
    az network traffic-manager endpoint create \
        --resource-group "<rgn>[Sandbox resource group]</rgn>" \
        --profile-name TM-MusicStream-Priority \
        --name "Primary-WestUS" \
        --type azureEndpoints \
        --priority 1 \
        --target-resource-id $WestId
    
    WestId=$(az network public-ip show \
        --resource-group "<rgn>[Sandbox resource group]</rgn>" \
        --name westeurope-vm-nic-pip \
        --query id \
        --output tsv)
    
    az network traffic-manager endpoint create \
        --resource-group "<rgn>[Sandbox resource group]</rgn>" \
        --profile-name TM-MusicStream-Priority \
        --name "Failover-WestEurope" \
        --type azureEndpoints \
        --priority 2 \
        --target-resource-id $WestId
    

    O código obtém as IDs do recurso de ambas as máquinas virtuais. Em seguida, o código usa as IDs para adicioná-los como pontos de extremidade ao perfil do Gerenciador de Tráfego. O código usa o sinalizador --priority para definir o aplicativo do Oeste dos EUA para a prioridade mais alta.

  2. Vamos dar uma olhada rápida nos pontos de extremidade que configuramos. Execute o comando a seguir:

    az network traffic-manager endpoint list \
        --resource-group "<rgn>[Sandbox resource group]</rgn>" \
        --profile-name TM-MusicStream-Priority \
        --output table
    

Testar o aplicativo

  1. Vamos dar uma olhada no que o DNS mostra para os aplicativos Web e para nosso perfil do Gerenciador de Tráfego. Execute os comandos a seguir para exibir os endereços IP de cada um dos recursos criados.

  2. Recupere o endereço do aplicativo Web do Oeste dos EUA 2:

    nslookup $(az network public-ip show \
                --resource-group "<rgn>[Sandbox resource group]</rgn>" \
                --name westus2-vm-nic-pip \
                --query dnsSettings.fqdn \
                --output tsv)
    
  3. Recupere o endereço do aplicativo Web do Oeste da Europa:

    nslookup $(az network public-ip show \
            --resource-group "<rgn>[Sandbox resource group]</rgn>" \
            --name westeurope-vm-nic-pip \
            --query dnsSettings.fqdn \
            --output tsv)
    
  4. Recupere o endereço do perfil do Gerenciador de Tráfego:

    # Retrieve the address for the Traffic Manager profile
    nslookup $(az network traffic-manager profile show \
                --resource-group "<rgn>[Sandbox resource group]</rgn>" \
                --name TM-MusicStream-Priority \
                --query dnsConfig.fqdn \
                --output tsv)
    

    O endereço do perfil do Gerenciador de Tráfego deve corresponder ao endereço IP do IP público westus2-vm-nic-pip atribuído à máquina virtual westus2-vm.

  5. Execute o comando a seguir para acessar o FQDN (nome de domínio totalmente qualificado) do perfil do Gerenciador de Tráfego. Sua solicitação é roteada para o ponto de extremidade que responde com a prioridade mais alta.

    echo http://$(az network traffic-manager profile show \
        --resource-group "<rgn>[Sandbox resource group]</rgn>" \
        --name TM-MusicStream-Priority \
        --query dnsConfig.fqdn \
        --output tsv)
    

    O código imprime o FQDN no Cloud Shell. Selecione o FQDN para abrir uma nova janela ou guia do navegador.

  6. Verifique se o aplicativo está funcionando e se a localização mostrada na parte inferior da página é Oeste dos EUA 2:

    Screenshot of the running West US web app.

  7. Execute o seguinte comando para desabilitar o ponto de extremidade primário:

    az network traffic-manager endpoint update \
        --resource-group "<rgn>[Sandbox resource group]</rgn>"  \
        --name "Primary-WestUS" \
        --profile-name TM-MusicStream-Priority \
        --type azureEndpoints \
        --endpoint-status Disabled
    
  8. Vamos examinar novamente o que DNS mostra para os aplicativos Web e para o nosso perfil do Gerenciador de Tráfego.

  9. Recupere o endereço do aplicativo Web do Oeste dos EUA 2:

    nslookup $(az network public-ip show \
                --resource-group "<rgn>[Sandbox resource group]</rgn>" \
                --name westus2-vm-nic-pip \
                --query dnsSettings.fqdn \
                --output tsv)
    
  10. Recupere o endereço do aplicativo Web do Oeste da Europa:

    nslookup $(az network public-ip show \
                --resource-group "<rgn>[Sandbox resource group]</rgn>" \
                --name westeurope-vm-nic-pip \
                --query dnsSettings.fqdn \
                --output tsv)
    
  11. Recupere o endereço do perfil do Gerenciador de Tráfego:

    nslookup $(az network traffic-manager profile show \
                --resource-group "<rgn>[Sandbox resource group]</rgn>" \
                --name TM-MusicStream-Priority \
                --query dnsConfig.fqdn \
                --output tsv)
    

    Agora, o endereço do perfil do Gerenciador de Tráfego deve corresponder ao aplicativo Web do Oeste da Europa.

  12. Teste o aplicativo novamente em seu navegador atualizando a página da Web. O Gerenciador de Tráfego deve redirecionar automaticamente o tráfego para o ponto de extremidade do Oeste da Europa. Dependendo do seu navegador, pode levar alguns minutos para que o endereço armazenado em cache local expire. Abrir o site em uma janela privada deverá ignorar o cache, de modo que você poderá ver a alteração imediatamente.

    Screenshot of the running West Europe web app.