迁移到应用服务环境 v3

注意

可选择两种自动迁移功能来帮助你升级到应用服务环境 v3。 如果需要了解更多关于这些功能的信息,或需要帮助以确定适合你的迁移选项,请参阅迁移路径决策树。 请考虑使用其中一个自动化选项,以便更快地迁移至应用服务环境 v3

如果当前使用的是应用服务环境 v1 或 v2,则有机会将工作负载迁移到应用服务环境 v3。 应用服务环境 v3 具有优势和功能差异,可为工作负载提供增强的支持并可减少整体成本。 如果环境满足迁移路径决策树中所述的条件,请考虑使用自动化迁移功能

如果迁移功能不支持你的应用服务环境,则必须使用一种手动方式来迁移到应用服务环境 v3。

先决条件

场景:你有一个应用在应用服务环境 v1 或应用服务环境 v2 上运行,但你需要在应用服务环境 v3 上运行该应用。

对于任何不使用自动迁移功能的迁移方法,你需要使用自己选择的方法创建应用服务环境 v3 资源和新子网。

应用服务环境 v1/v2 与应用服务环境 v3 之间的网络变更涉及新的 IP 地址(对于面向 Internet 的环境,则还涉及其他 IP 地址)。 需要更新依赖于这些 IP 的任何基础结构。 请务必考虑入站依赖项变更,例如 Azure 负载均衡器端口。

单个子网中不能存在多个应用服务环境。 如果需要将现有子网用于新的应用服务环境 v3 资源,则必须在创建新应用服务环境前删除现有应用服务环境。 对于此场景,我们建议你备份应用,然后在创建和配置新环境后在该环境中还原这些应用。 此过程会导致应用程序出现故障,因为需要以下时间:

  • 删除旧环境。
  • 创建应用服务环境 v3 资源。
  • 配置任何基础结构和连接的资源以使用新环境。
  • 将应用部署到新环境。

迁移应用前的清单

  • 创建应用服务环境 v3 资源。
  • 使用与新环境关联的 IP 地址更新任何网络依赖项。
  • 计划故障时间(如果适用)。
  • 决定在新环境中重新创建应用的过程。

调整环境大小和缩放环境

应用服务环境 v3 使用独立 v2 Azure 应用服务计划,该计划的定价和大小与独立计划不同。 查看定价详细信息,了解新环境需要如何调整大小和缩放以确保达到合适的容量。 与以前的版本相比,为应用服务环境 v3 创建应用服务计划没有任何区别。

评估备份和还原

在迁移到新环境时,可以使用备份和还原功能来保持应用配置、文件内容和数据库与应用的连接。

你必须为应用配置自定义备份,才能将其还原到应用服务环境 v3。 自动备份不支持在不同的应用服务环境版本上还原。 有关自定义备份的详细信息,请参阅自动备份与自定义备份屏幕截图显示了为应用服务应用配置自定义备份的选项。

你可以选择自定义备份,并将其还原到应用服务环境 v3 资源中的应用服务中。 在还原应用之前,必须创建要还原到的应用服务计划。 你可以选择将备份还原到生产槽、现有槽或在还原过程中创建的新槽。

屏幕截图显示了在应用服务环境 v3 中如何使用备份还原来还原应用服务应用。

好处 限制
快速 - 每个应用应只需 5 到 10 分钟。 支持仅限于某些数据库类型
你可以同时还原多个应用。 (需要单独为每个应用配置还原。) 旧环境、新环境和支持性资源(例如应用、数据库、存储帐户和容器)必须全部位于同一订阅中。
应用内 MySQL 数据库无需任何配置即可自动备份。 最多可备份 10 GB 的应用和数据库内容。 其中最多 4 GB 的内容可以是数据库备份。 如果备份大小超过此限制,会出错。
你可以将应用还原到以前状态的快照。 不支持将启用了防火墙的存储帐户用作备份目标。
你可以与 Azure 流量管理器Azure 应用程序网关集成以在旧环境和新环境中分布流量。 不支持将具有专用终结点的存储帐户用于进行备份和还原。
在开始还原之前,可以在新环境中创建要还原到的空 Web 应用,以加快该过程。 仅支持自定义备份。

将应用克隆到应用服务环境 v3

克隆应用是另一项功能,可用于将 Windows 应用部署到应用服务环境 v3 上。 克隆应用的限制与应用服务备份功能的限制相同。 有关详细信息,请参阅在 Azure 应用服务中备份应用

注意

只有 Windows 版应用服务计划才支持克隆应用。

对于使用 Windows 版应用服务且无法使用迁移功能的用户,我们建议使用此解决方案。 在克隆任何应用之前,需要设置新的应用服务环境 v3 资源。 克隆一个应用最多需要 30 分钟。

若要使用 PowerShell 克隆应用,请参阅说明

若要使用 Azure 门户克隆应用,请执行以下操作:

  1. Azure 门户中,转到现有的应用服务计划。 在“开发工具”下,选择“克隆应用”

  2. 使用新应用服务环境 v3 资源的详细信息填写必填字段:

    1. 对于“资源组”,请选择现有资源组或创建新的资源组。
    2. 对于“名称”,请为应用命名。 此名称可以与旧应用相同,但新环境的网站默认 URL 将有所不同。 需要更新任何自定义 DNS 或连接的资源,以指向新 URL。
    3. 对于“区域”,请使用应用服务环境 v3 名称。
    4. 如果要克隆部署源,请选中“克隆部署源”复选框。
    5. 对于“Windows 计划”,你可以使用新环境中的现有应用服务计划(如果已创建计划),也可以创建一个新计划。 新的应用服务环境 v3 资源中的可用应用服务计划将显示在下拉列表中。
    6. 对于“Sku 和大小”,如果要创建新的应用服务计划,请使用其中一个独立 v2 选项根据需要修改内存和 CPU。 应用服务环境 v3 使用独立 v2 计划,与独立计划相比,每个相应的实例大小都具有更多的内存和 CPU。 有关详细信息,请参阅应用服务环境 v3 定价详细信息

屏幕截图显示了通过使用门户将应用克隆到应用服务环境 v3 的选项。

好处 限制
你可以使用 PowerShell 自动执行克隆。 仅支持 Windows 版应用服务计划。
你可以同时克隆多个应用。 (需要单独为每个应用配置克隆或通过脚本进行配置。) 支持仅限于某些数据库类型
你可以与 Azure 流量管理器Azure 应用程序网关集成以在旧环境和新环境中分布流量。 旧环境、新环境和支持性资源(例如应用、数据库、存储帐户和容器)必须全部位于同一订阅中。

在应用服务环境 v3 中手动创建应用

如果迁移功能不支持你的应用或你想要采取更手动的路由,则可以按照用于现有应用服务环境的相同过程部署应用。

你可以导出现有应用的 Azure 资源管理器模板(ARM 模板)、应用服务计划和任何其他受支持的资源,并将其部署在新的环境中或随新环境一起部署。 若要仅导出某个应用的模板,请转到应用服务计划。 在“自动化”下,选择“导出模板”。

在 Azure 门户左侧窗格中导出模板的选项的屏幕截图。

你还可以直接从资源组导出多个资源的模板。 转到资源组,选择要为其创建模板的资源,然后选择“导出模板”

用于从资源组导出资源模板的选项的屏幕截图。

将应用部署到应用服务环境 v3 时,需要对 ARM 模板进行以下初始更改:

  • 将应用服务计划的 sku 参数更新为独立 v2 计划:

    "type": "Microsoft.Web/serverfarms",
    "apiVersion": "2021-02-01",
    "name": "[parameters('serverfarm_name')]",
    "location": "China North3",
    "sku": {
        "name": "I1v2",
        "tier": "IsolatedV2",
        "size": "I1v2",
        "family": "Iv2",
        "capacity": 1
    },
    
  • 将应用将部署到的应用服务计划 (serverfarm) 参数更新为与应用服务环境 v3 关联的计划。

  • 将托管环境配置文件 (hostingEnvironmentProfile) 参数更新为新的应用服务环境 v3 资源 ID。

  • ARM 模板导出包括资源提供程序为资源公开的所有属性。 移除所有不需要的属性,例如指向旧应用的域的属性。 例如,可以将 sites 资源简化为以下示例:

    "type": "Microsoft.Web/sites",
    "apiVersion": "2021-02-01",
    "name": "[parameters('site_name')]",
    "location": "China North3",
    "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', parameters('serverfarm_name'))]"
    ],
    "properties": {
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('serverfarm_name'))]",
        "siteConfig": {
            "linuxFxVersion": "NODE|14-lts"
         },
        "hostingEnvironmentProfile": {
            "id": "[parameters('hostingEnvironments_externalid')]"
        }
    }
    

根据你配置应用的方式,可能还需要进行其他更改。 例如,如果使用系统分配的托管标识,并对旧环境和新环境使用相同的应用程序名称,那么你可能会遇到冲突。 若要解决此冲突并避免停机,可以使用用户分配的托管标识。

你可以使用 Azure 门户、Azure CLI 或 PowerShell 部署 ARM 模板

手动迁移

迁移功能可自动执行到应用服务环境 v3 的迁移,并将所有应用转移到新环境。 此迁移期间大约需要停机一小时。 如果应用不允许有故障时间,建议使用手动选项之一在应用服务环境 v3 中重新创建应用。

你可以使用应用程序网关在新旧环境之间分配流量。 如果使用内部负载均衡器 (ILB) 应用服务环境,请创建 Azure 应用程序网关实例(带有额外的后端池),以在环境之间分配流量。 有关 ILB 应用服务环境和面向 Internet 的应用服务环境的信息,请参阅应用程序网关集成

在完成迁移以及对新环境的所有测试后,请删除旧应用服务环境、该环境中的应用以及不再需要的所有支持性资源。 对于未删除的任何资源,你将继续付费。

常见问题解答

  • 如何知道我是否应该使用手动选项迁移到应用服务环境 v3?
    如果在确定适合你的迁移选项时需要帮助,请参阅迁移路径决策树。 如果环境满足迁移路径决策树中所述的条件,请考虑使用自动化迁移功能,以便更快地迁移到应用服务环境 v3。 如果需要将应用缓慢移动到新环境并在整个过程中进行验证,建议手动迁移。

  • 迁移期间是否会出现停机?
    故障时间取决于迁移过程。 如果你有一个不同的应用服务环境(可以在迁移时将流量指向该环境),或者如果你可以使用不同的子网来创建新环境,则不会出现故障时间。 如果必须使用同一子网,则在删除旧环境、创建应用服务环境 v3 资源、创建新的应用服务计划、重新创建应用以及更新使用新 IP 地址的任何资源时,会出现故障时间。

  • 是否需要更改有关应用的任何内容以使它们在应用服务环境 v3 上运行?
    错误。 在应用服务环境 v1 和 v2 上运行的应用不需要任何修改即可在应用服务环境 v3 上运行。 如果使用 IP SSL,则必须在迁移之前删除 IP SSL 绑定。

  • 如果我的应用服务环境具有自定义域后缀,应该怎么办?
    迁移功能支持该迁移方案。 如果你不想使用迁移功能,可以使用手动方法进行迁移。 你可以在创建应用服务环境 v3 资源期间或之后的任何时间配置自定义域后缀

  • 如果我的应用服务环境 v2 资源是区域锁定的,该怎么办?
    应用服务环境 v3 不支持区域固定功能。 你可以在创建应用服务环境 v3 资源时选择启用区域冗余。

  • 我的应用服务环境的哪些属性会更改?
    请查看应用服务环境 v3 和早期版本之间的功能差异。 对于 ILB 应用服务环境,你会保留相同的 ILB IP 地址。 对于面向 Internet 的应用服务环境,公共 IP 地址和出站 IP 地址会发生更改。

    对于面向 Internet 的应用服务环境,以前入站和出站使用同一个 IP。 对于应用服务环境 v3,它们是独立的。 有关详细信息,请参阅应用服务环境 v3 网络

  • 备份和还原是否支持将应用从应用服务环境 v2 移动到 v3? 备份和还原功能支持在各应用服务环境版本之间还原应用,前提是使用自定义备份进行还原。 自动备份不支持还原到不同的应用服务环境版本。

  • 2024 年 8 月 31 日之后,我的应用服务环境 v1 和 v2 资源会发生什么变化?
    2024 年 8 月 31 日之后,如果尚未迁移到应用服务环境 v3,则应用服务环境 v1和 v2 资源以及其中部署的应用将不再可用。

    应用服务环境 v1 和 v2 托管在 Azure 云服务(经典)体系结构上运行的应用服务缩放单元中。 由于此体系结构将于 2024 年 8 月 31 日停用,因此应用服务环境 v1 和 v2 在该日期之后将不再可用。 请迁移到应用服务环境 v3,以使应用保持正常运行,或者保存或备份需要保留的任何资源或数据。

后续步骤