Použití funkce souběžné migrace k migraci služby App Service Environment v2 do služby App Service Environment v3

Poznámka:

Funkce migrace popsaná v tomto článku se používá pro souběžnou (jinou podsíť) automatizovanou migraci služby App Service Environment v2 do služby App Service Environment v3.

Pokud hledáte informace o místní funkci migrace, přečtěte si téma Migrace do služby App Service Environment v3 pomocí funkce místní migrace. Pokud hledáte informace o možnostech ruční migrace, přečtěte si téma Možnosti ruční migrace. Nápovědu k rozhodování o tom, která možnost migrace je pro vás nejvhodnější, najdete v rozhodovacím stromu cesty migrace. Další informace o službě App Service Environment v3 najdete v přehledu služby App Service Environment v3.

Pomocí funkce souběžné migrace můžete automaticky migrovat app Service Environment v2 do služby App Service Environment v3 . Další informace o procesu migrace a informace o tom, jestli služba App Service Environment v tuto chvíli podporuje migraci, najdete v přehledu funkce souběžné migrace.

Důležité

Před migrací jakýchkoli produkčních prostředí doporučujeme tuto funkci použít pro vývojová prostředí, abyste se vyhnuli neočekávaným problémům. Pomocí tlačítek v dolní části stránky uveďte zpětnou vazbu související s tímto článkem nebo funkcí.

Požadavky

Ujistěte se, že rozumíte tomu, jak migrace do služby App Service Environment v3 ovlivňuje vaše aplikace. Projděte si proces migrace, abyste pochopili časovou osu procesu a kde a kdy se potřebujete zapojit. Projděte si také nejčastější dotazy, které vám můžou odpovědět na některé otázky.

Ujistěte se, že ve virtuální síti, skupinách prostředků, prostředcích nebo předplatném nejsou žádné zámky. Během migrace zamkne blokované operace platformy.

Ujistěte se, že žádné zásady Azure neblokují akce, které jsou potřeba k migraci, včetně úprav podsítě a vytváření prostředků služby Aplikace Azure. Zásady, které blokují úpravy a vytváření prostředků, můžou způsobit zablokování nebo selhání migrace.

Vzhledem k tomu, že vaše služba App Service Environment v3 je ve vaší virtuální síti v jiné podsíti, musíte zajistit, abyste ve virtuální síti měli dostupnou podsíť, která splňuje požadavky na podsíť pro App Service Environment v3. Zvolená podsíť musí být také schopná komunikovat s podsítí, ve které je vaše stávající služba App Service Environment. Ujistěte se, že mezi těmito dvěma podsítěmi nic neblokuje komunikaci. Pokud nemáte dostupnou podsíť, musíte ji před migrací vytvořit. Vytvoření nové podsítě může zahrnovat zvýšení adresního prostoru virtuální sítě. Další informace najdete v tématu Vytvoření virtuální sítě a podsítě.

Vzhledem k tomu, že během migrace je škálování zablokované, měli byste před zahájením migrace škálovat prostředí na požadovanou velikost. Pokud po migraci potřebujete škálovat prostředí, můžete to udělat po dokončení migrace.

Postupujte podle kroků popsaných v uvedeném pořadí a jak je napsané, protože provádíte volání rozhraní Azure REST API. K volání těchto rozhraní API doporučujeme použít Azure CLI. Informace o dalších metodách najdete v referenčních informacích k rozhraní Azure REST API.

Pro účely této příručky nainstalujte Azure CLI nebo použijte Azure Cloud Shell a použijte prostředí Bash.

Poznámka:

Ke spuštění příkazů uvedených v této příručce doporučujeme použít prostředí Bash. Příkazy nemusí být kompatibilní s konvencemi PowerShellu a řídicími znaky.

Důležité

Během migrace se na webu Azure Portal můžou zobrazit nesprávné informace o službě App Service Environment a vašich aplikacích. Nechoďte na webu Azure Portal do prostředí migrace, protože funkce souběžné migrace není k dispozici. Ke kontrole stavu migrace doporučujeme použít Azure CLI. Pokud máte jakékoli dotazy ohledně stavu migrace nebo aplikací, kontaktujte podporu.

1. Vyberte podsíť pro novou službu App Service Environment v3.

Vyberte podsíť ve službě App Service Environment v3, která splňuje požadavky na podsíť pro App Service Environment v3. Poznamenejte si název vybrané podsítě. Tato podsíť se musí lišit od podsítě, ve které je vaše stávající služba App Service Environment.

2. Získání ID služby App Service Environment

Spuštěním následujících příkazů získejte ID služby App Service Environment a uložte ho jako proměnnou prostředí. Zástupné symboly pro název a skupiny prostředků nahraďte hodnotami služby App Service Environment, kterou chcete migrovat. ASE_RG a VNET_RG jsou stejné, pokud jsou vaše virtuální síť a App Service Environment ve stejné skupině prostředků.

ASE_NAME=<Your-App-Service-Environment-name>
ASE_RG=<Your-ASE-Resource-Group>
VNET_RG=<Your-VNet-Resource-Group>
ASE_ID=$(az appservice ase show --name $ASE_NAME --resource-group $ASE_RG --query id --output tsv)

3. Ověření podpory migrace

Následující příkaz zkontroluje, jestli je vaše služba App Service Environment podporovaná pro migraci. Pokud se zobrazí chyba nebo pokud je vaše služba App Service Environment ve špatném nebo pozastaveném stavu, nemůžete v tuto chvíli migrovat. Popis potenciálních chybových zpráv, které můžete získat, najdete v části řešení potíží. Pokud vaše prostředí nepodporuje migraci pomocí funkce souběžné migrace nebo chcete migrovat do služby App Service Environment v3 bez použití funkce souběžné migrace, podívejte se na možnosti ruční migrace. Tento příkaz také ověří, že je vaše služba App Service Environment v podporované verzi sestavení pro migraci. Pokud vaše služba App Service Environment není v podporované verzi buildu, musíte upgrade spustit sami. Další informace o upgradu předběžné migrace najdete v tématu Ověření podpory migrace pomocí funkce souběžné migrace pro službu App Service Environment.

az rest --method post --uri "${ASE_ID}/NoDowntimeMigrate?phase=Validation&api-version=2022-03-01"

Pokud nedojde k žádným chybám, migrace se podporuje a můžete pokračovat dalším krokem.

Pokud potřebujete spustit upgrade pro upgrade služby App Service Environment na podporovanou verzi sestavení, spusťte následující příkaz. Tento příkaz spusťte pouze v případě, že krok ověření selže a budete vyzváni k upgradu služby App Service Environment.

az rest --method post --uri "${ASE_ID}/NoDowntimeMigrate?phase=PreMigrationUpgrade&api-version=2022-03-01"

4. Generování odchozích IP adres pro novou službu App Service Environment v3

Vytvořte soubor s názvem zoneredundancy.json s následujícími podrobnostmi pro vaši oblast a výběr redundance zóny.

{
    "location":"<region>",    
    "Properties": {
        "zoneRedundant": "<true/false>"
    }
}

Novou zónu služby App Service Environment v3 můžete nastavit jako redundantní, pokud je vaše stávající prostředí v oblasti, která podporuje redundanci zón. Zónovou redundanci lze nakonfigurovat nastavením zoneRedundant vlastnosti na truehodnotu . Redundance zón je volitelná konfigurace. Tuto konfiguraci je možné nastavit pouze při vytváření nové služby App Service Environment verze 3 a není možné ji později odebrat.

Spuštěním následujícího příkazu vytvořte nové odchozí IP adresy. Dokončení tohoto kroku trvá přibližně 15 minut. Během této doby neudělávejte škálování ani neprovádejte změny ve stávající službě App Service Environment.

az rest --method post --uri "${ASE_ID}/NoDowntimeMigrate?phase=PreMigration&api-version=2022-03-01" --body @zoneredundancy.json

Spuštěním následujícího příkazu zkontrolujte stav tohoto kroku:

az rest --method get --uri "${ASE_ID}?api-version=2022-03-01" --query properties.status

Pokud krok probíhá, zobrazí se stav Migrating. Po zobrazení nových odchozích ReadyIP adres spusťte následující příkaz. Pokud nové IP adresy nevidíte okamžitě, počkejte několik minut a zkuste to znovu.

az rest --method get --uri "${ASE_ID}/configurations/networking?api-version=2022-03-01" --query properties.windowsOutboundIpAddresses

5. Aktualizace závislých prostředků pomocí nových odchozích IP adres

Pomocí nových odchozích IP adres aktualizujte všechny prostředky nebo síťové komponenty, abyste zajistili, že nové prostředí bude fungovat podle očekávání po dokončení migrace. Je vaší zodpovědností provést potřebné aktualizace.

6. Delegování podsítě služby App Service Environment

App Service Environment v3 vyžaduje, aby podsíť, ve které je, měla jediné delegování Microsoft.Web/hostingEnvironments. Předchozí verze nepožadovali toto delegování. Před migrací musíte ověřit, že je vaše podsíť správně delegovaná, a v případě potřeby delegování aktualizovat. Delegování můžete aktualizovat spuštěním následujícího příkazu nebo přechodem do podsítě na webu Azure Portal.

az network vnet subnet update --resource-group $VNET_RG --name <subnet-name> --vnet-name <vnet-name> --delegations Microsoft.Web/hostingEnvironments

7. Ověřte, že virtuální síť neobsahuje žádné zámky.

Virtuální síť během migrace blokuje operace platformy. Pokud má vaše virtuální síť zámky, musíte je před migrací odebrat. V případě potřeby můžete po dokončení migrace přidat zámky zpět.

Zámky můžou existovat ve třech oborech: předplatné, skupina prostředků a prostředek. Když zámek použijete u nadřazeného oboru, všechny prostředky v daném oboru dědí stejný zámek. Pokud máte zámky použité v rámci předplatného, skupiny prostředků nebo oboru prostředků, musíte je před migrací odebrat. Další informace o zámcích a dědičnosti zámků najdete v tématu Uzamčení prostředků za účelem ochrany infrastruktury.

Pomocí následujícího příkazu zkontrolujte, jestli má vaše virtuální síť nějaké zámky:

az lock list --resource-group $VNET_RG --resource <vnet-name> --resource-type Microsoft.Network/virtualNetworks

Pomocí následujícího příkazu odstraňte všechny existující zámky:

az lock delete --resource-group $VNET_RG --name <lock-name> --resource <vnet-name> --resource-type Microsoft.Network/virtualNetworks

Související příkazy pro kontrolu, jestli vaše předplatné nebo skupina prostředků mají zámky, najdete v referenčních informacích k Azure CLI pro zámky.

8. Příprava konfigurací

Pokud vaše stávající služba App Service Environment používá vlastní příponu domény, musíte ji nakonfigurovat pro nový prostředek služby App Service Environment v3 během procesu migrace. Migrace selže, pokud nenakonfigurujete vlastní příponu domény a aktuálně ji používáte. Další informace o příponách vlastní domény služby App Service Environment v3, včetně požadavků, podrobných pokynů a osvědčených postupů, najdete v tématu Vlastní přípona domény pro app Service Environment.

Poznámka:

Pokud konfigurujete vlastní příponu domény, při přidávání síťových oprávnění do trezoru klíčů Azure se ujistěte, že váš trezor klíčů umožňuje přístup z nové podsítě služby App Service Environment v3.

Pokud chcete nastavit tyto konfigurace, včetně identifikace dříve vybrané podsítě, vytvořte další soubor s názvem parameters.json s následujícími podrobnostmi na základě vašeho scénáře. Nezapomeňte použít novou podsíť, kterou jste vybrali pro novou službu App Service Environment v3. Nezahrnujte vlastnosti pro příponu vlastní domény, pokud se tato funkce nevztahuje na vaši migraci. Věnujte pozornost hodnotě zoneRedundant vlastnosti a nastavte ji na stejnou hodnotu, jakou jste použili v kroku generování odchozíCH IP adres. Pro redundanci zón, kterou jste použili v kroku generování odchozíCH IP adres, musíte použít stejnou hodnotu.

Pokud migrujete bez přípony vlastní domény, použijte tento kód:

{
    "Properties": {
        "VirtualNetwork": {
            "Id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<virtual-network-name>/subnets/<subnet-name>"
        },
        "zoneRedundant": "<true/false>"
    }
}

Pokud pro konfiguraci přípony vlastní domény používáte spravovanou identitu přiřazenou uživatelem, použijte tento kód:

{
    "Properties": {
        "VirtualNetwork": {
            "Id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<virtual-network-name>/subnets/<subnet-name>"
        },
        "zoneRedundant": "<true/false>",
        "customDnsSuffixConfiguration": {
            "dnsSuffix": "internal.contoso.com",
            "certificateUrl": "https://contoso.vault.azure.net/secrets/myCertificate",
            "keyVaultReferenceIdentity": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asev3-migration/providers/Microsoft.ManagedIdentity/userAssignedIdentities/ase-managed-identity"
        }
    }
}

Pokud pro konfiguraci přípony vlastní domény používáte spravovanou identitu přiřazenou systémem, použijte tento kód:

{
    "properties": {
        "VirtualNetwork": {
            "Id": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Network/virtualNetworks/<virtual-network-name>/subnets/<subnet-name>"
        },
        "zoneRedundant": "<true/false>",
        "customDnsSuffixConfiguration": {
            "dnsSuffix": "internal.contoso.com",
            "certificateUrl": "https://contoso.vault.azure.net/secrets/myCertificate",
            "keyVaultReferenceIdentity": "SystemAssigned"
        }
    }
}

9. Migrace do služby App Service Environment v3 a kontrola stavu

Po dokončení všech předchozích kroků můžete migraci spustit. Ujistěte se, že rozumíte důsledkům migrace.

Tento krok trvá tři až šest hodin. Během této doby nedojde k žádnému výpadku aplikace. Během tohoto kroku se zablokují škálování, nasazení a úpravy stávajícího prostředí App Service Environment.

Spuštěním následujícího příkazu spusťte migraci:

az rest --method post --uri "${ASE_ID}/NoDowntimeMigrate?phase=HybridDeployment&api-version=2022-03-01" --body @parameters.json

Spuštěním následujícího příkazu zkontrolujte stav migrace:

az rest --method get --uri "${ASE_ID}?api-version=2022-03-01" --query properties.subStatus

Jakmile se zobrazí stav MigrationPendingDnsChange, migrace se dokončí a máte prostředek služby App Service Environment v3. Vaše aplikace teď běží ve vašem novém prostředí a ve starém prostředí.

Podrobnosti o novém prostředí získáte spuštěním následujícího příkazu:

az appservice ase show --name $ASE_NAME --resource-group $ASE_RG

Důležité

Během migrace i během tohoto MigrationPendingDnsChange kroku se na webu Azure Portal zobrazují nesprávné informace o službě App Service Environment a vašich aplikacích. Pomocí Azure CLI zkontrolujte stav migrace. Pokud máte jakékoli dotazy ohledně stavu migrace nebo aplikací, kontaktujte podporu.

Poznámka:

Pokud migrace obsahuje příponu vlastní domény, konfigurace přípony vlastní domény se může po dokončení migrace projevit jako degradovaná kvůli známé chybě. Vaše služba App Service Environment by měla i nadále fungovat podle očekávání. Degradovaný stav by se měl vyřešit během 6 až 8 hodin. Pokud je konfigurace po 8 hodinách degradovaná nebo pokud vaše vlastní přípona domény nefunguje, obraťte se na podporu.

Snímek obrazovky s ukázkou konfigurace přípony vlastní domény se sníženým výkonem

10. Získejte příchozí IP adresy pro nové služby App Service Environment v3 a aktualizujte závislé prostředky.

V této fázi procesu migrace máte dvě prostředí App Service Environment. Vaše aplikace běží v obou prostředích. Je potřeba aktualizovat všechny závislé prostředky tak, aby používaly novou příchozí IP adresu pro vaši novou službu App Service Environment v3. V případě interních prostředí App Service Environment (ILB) je potřeba aktualizovat privátní zóny DNS tak, aby odkazy na novou příchozí IP adresu.

Novou příchozí IP adresu pro novou službu App Service Environment v3 můžete získat spuštěním následujícího příkazu, který odpovídá vašemu typu nástroje pro vyrovnávání zatížení služby App Service Environment. Je vaší zodpovědností provést potřebné aktualizace.

V případě prostředí App Service Environment s interním nástrojem pro vyrovnávání zatížení získejte privátní příchozí IP adresu spuštěním následujícího příkazu:

az rest --method get --uri "${ASE_ID}?api-version=2022-03-01" --query properties.networkingConfiguration.internalInboundIpAddresses

V prostředí ELB App Service Environment získejte veřejnou příchozí IP adresu spuštěním následujícího příkazu:

az rest --method get --uri "${ASE_ID}?api-version=2022-03-01" --query properties.networkingConfiguration.externalInboundIpAddresses

11. Přesměrování provozu zákazníků, ověření služby App Service Environment v3 a dokončení migrace

Tento krok je vaší příležitostí otestovat a ověřit novou službu App Service Environment v3. Ve výchozím nastavení se provoz odesílá na front-endy služby App Service Environment v2. Pokud používáte službu App Service Environment v3 s interním nástrojem pro vyrovnávání zatížení, můžete otestovat front-endy služby App Service Environment v3 tak, že aktualizujete privátní zónu DNS novou příchozí IP adresou. Pokud používáte ELB App Service Environment v3, proces testování závisí na vaší konkrétní konfiguraci sítě. Jednou z jednoduchých metod, jak otestovat prostředí ELB, je aktualizovat soubor hostitelů tak, aby používal vaši novou příchozí IP adresu služby App Service Environment v3. Pokud máte vlastní domény přiřazené k jednotlivým aplikacím, můžete případně aktualizovat jejich DNS tak, aby odkazovaly na novou příchozí IP adresu. Testování této změny vám umožní plně ověřit službu App Service Environment v3 před zahájením posledního kroku migrace, ve které je odstraněna stará služba App Service Environment. Pokud máte přístup k aplikacím bez problémů, znamená to, že jste připraveni dokončit migraci.

Jakmile potvrdíte, že vaše aplikace fungují podle očekávání, můžete zákaznický provoz přesměrovat do nového prostředí App Service Environment v3 spuštěním následujícího příkazu. Tento příkaz také odstraní staré prostředí. K dokončení tohoto kroku máte 14 dní. Pokud tento krok během 14 dnů nedokončíte, migrace se automaticky vrátí zpět do služby App Service Environment v2. Pokud k dokončení tohoto kroku potřebujete více než 14 dní, obraťte se na podporu.

Pokud v tuto chvíli zjistíte nějaké problémy nebo se rozhodnete, že už nechcete pokračovat v migraci, obraťte se na podporu a vraťte se k migraci. Pokud potřebujete migraci vrátit, nespustíte příkaz změny DNS. Další informace najdete v tématu Vrácení migrace.

az rest --method post --uri "${ASE_ID}/NoDowntimeMigrate?phase=DnsChange&api-version=2022-03-01"

Spuštěním následujícího příkazu zkontrolujte stav tohoto kroku:

az rest --method get --uri "${ASE_ID}?api-version=2022-03-01" --query properties.subStatus

Během tohoto kroku získáte stav CompletingMigration. Jakmile se zobrazí stav MigrationCompleted, provede se krok přesměrování provozu a migrace se dokončí.

Další kroky