Oefening: Automatische failover inschakelen met behulp van prioriteitsroutering

Voltooid

Stel dat uw toepassing voor muziekstreaming een gelijke verdeling heeft van gebruikers in het westen Verenigde Staten en West-Europa. U wilt een failoverversie van de app in één regio.

In de voorbeeldtoepassing die we voor deze oefening gebruiken, wordt de regio weergegeven waarin deze wordt uitgevoerd. Een van de twee exemplaren heeft een hogere prioriteit en is het primaire eindpunt. Het andere exemplaar heeft een lagere prioriteit en is het failovereindpunt. Wanneer het primaire eindpunt offline is, wordt al het verkeer automatisch omgeleid naar het failovereindpunt.

In deze oefening stelt u Traffic Manager in om het Verenigde Staten-eindpunt te gebruiken als primair, waarbij u een failover naar het Europese eindpunt uitvoert als er fouten optreden.

Een nieuw Traffic Manager-profiel maken

  1. Voer de volgende opdracht uit in Cloud Shell om een nieuw Traffic Manager-profiel te maken:

    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
    

    U gebruikt deze parameters in de opdracht:

    • --routing-method Priority: Hiermee maakt u het Traffic Manager-profiel met behulp van de routeringsmethode voor prioriteit.
    • --unique-dns-name: maakt de wereldwijd unieke domeinnaam <unique-dns-name>.trafficmanager.net. We gebruiken de $RANDOM Bash-functie voor het retourneren van een willekeurig geheel getal om ervoor te zorgen dat de naam uniek is.

De webtoepassingen implementeren

  1. Voer de volgende opdracht uit om een Resource Manager-sjabloon te implementeren. Met de sjabloon worden twee servers gemaakt, één in de regio Europa - west en één in de regio VS - west 2. Wees geduldig, omdat de implementatie enkele minuten kan duren.

    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)"
    

De eindpunten toevoegen aan Traffic Manager

  1. De webtoepassingen worden nu uitgevoerd op virtuele machines. Voer de volgende opdrachten uit om de resources van het openbare IP-adres van de virtuele machines als eindpunten toe te voegen aan het Traffic Manager-profiel:

    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
    

    Met de code worden de resource-id's van beide virtuele machines opgehaald. Vervolgens voegt de code ze met behulp van de id's als eindpunten toe aan het Traffic Manager-profiel. De code maakt gebruik van de --priority-vlag om de app VS - west op de hoogste prioriteit in te stellen.

  2. Laten we de eindpunten die we hebben geconfigureerd eens bekijken. Voer de volgende opdracht uit:

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

De app testen

  1. Laten we eens kijken wat DNS weergeeft voor de web-apps en voor ons Traffic Manager-profiel. Voer de volgende opdrachten uit om de IP-adressen weer te geven voor elk van de resources die we hebben gemaakt.

  2. Haal het adres op voor de web-app VS - west 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. Haal het adres op voor de web-app Europa - west:

    nslookup $(az network public-ip show \
            --resource-group "<rgn>[Sandbox resource group]</rgn>" \
            --name westeurope-vm-nic-pip \
            --query dnsSettings.fqdn \
            --output tsv)
    
  4. Haal het adres voor het Traffic Manager-profiel op:

    # 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)
    

    Het adres voor het Traffic Manager-profiel moet overeenkomen met het IP-adres voor de openbare IP westus2-vm-nic-pip die is toegewezen aan de virtuele machine westus2-vm.

  5. Voer de volgende opdracht uit om naar de FQDN (Fully Qualified Domain Name) van het Traffic Manager-profiel te gaan. Uw aanvraag wordt doorgestuurd naar het eindpunt dat reageert met de hoogste prioriteit.

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

    De code drukt de FQDN af in Cloud Shell. Selecteer de FQDN om een nieuw browservenster of tabblad te openen.

  6. Controleer of de toepassing werkt en of de locatie onderaan de pagina US - west 2 is:

    Screenshot of the running West US web app.

  7. Voer de volgende opdracht uit om het primaire eindpunt uit te schakelen:

    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. Laten we opnieuw kijken wat DNS aangeeft voor de web-apps en voor ons Traffic Manager-profiel.

  9. Haal het adres op voor de web-app VS - west 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. Haal het adres op voor de web-app Europa - west.:

    nslookup $(az network public-ip show \
                --resource-group "<rgn>[Sandbox resource group]</rgn>" \
                --name westeurope-vm-nic-pip \
                --query dnsSettings.fqdn \
                --output tsv)
    
  11. Haal het adres voor het Traffic Manager-profiel op:

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

    Het adres voor het Traffic Manager-profiel moet nu overeenkomen met de web-app Europa - west.

  12. Test de toepassing opnieuw vanuit de browser door de webpagina te vernieuwen. Traffic Manager moet het verkeer automatisch omleiden naar het eindpunt europa - west. Afhankelijk van uw browser kan het enkele minuten duren voordat het adres in de lokale cache verloopt. Wanneer u de site in een privévenster opent, wordt de cache overgeslagen, zodat u kunt de wijziging onmiddellijk kunt zien.

    Screenshot of the running West Europe web app.