你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

迁移到 Azure 容器应用

注意

基本、标准和企业计划将从 2025 年 3 月中旬开始弃用,停用期为 3 年。 建议转换到 Azure 容器应用。 有关详细信息,请参阅 Azure Spring Apps 停用公告

标准消耗和专用计划将于 2024 年 9 月 30 日开始弃用,并在六个月后完全关闭。 建议转换到 Azure 容器应用。 有关详细信息,请参阅将 Azure Spring Apps 标准消耗和专用计划迁移到 Azure 容器应用

本文适用于:✅基本计划/标准计划 ✅ 企业计划

Azure Spring Apps 和 Azure 容器应用都是 Azure 上的托管平台,旨在简化应用程序的运行,而无需管理复杂的基础结构。 这两项服务都使开发人员能够专注于其应用程序,而不用担心基础系统的设置和维护。 它们以本机方式与 Azure 生态系统集成,可轻松地连接到 Azure Monitor、Key Vault 和 Azure DevOps 等服务来进行监视、保护和部署。

由于 Azure Spring Apps 的停用,我们建议将 Azure 容器应用作为迁移在 Azure Spring Apps 上运行的工作负载的主要服务。 Azure 容器应用为容器化应用程序提供了新式、灵活且可缩放的基础,确保工作负载为未来做好准备且与 Azure 生态系统无缝集成。

本文提供了详细的指南,可帮助你将工作负载从 Azure Spring Apps 迁移到 Azure 容器应用,最大程度地减少中断,并帮助你最大限度地利用新平台的优势。

概念映射

下面的概念映射表突出了 Azure Spring Apps 和 Azure 容器应用之间的相似之处。 它可帮助你了解 Azure Spring Apps 中熟悉的概念如何转换为 Azure 容器应用中的等效功能。

Azure Spring Apps 和 Azure 容器应用之间的概念映射图。

Azure Spring Apps 服务 Azure 容器应用服务
服务实例为应用和其他资源提供托管和保护边界,并支持自定义虚拟网络。 环境为容器应用程序建立安全边界,并支持自定义虚拟网络。
应用是一种商业应用程序,用作服务实例中的子资源。 容器应用是一种商业应用程序,定义为连接到托管环境的独立 Azure 资源。
部署是应用的版本。 应用可以有一个生产部署和一个过渡部署。 修订是容器应用的每个版本的不可变快照。 容器应用可以有一个或多个修订。
应用程序实例是由服务管理的最小运行时单元。 容器(副本)是一组容器和最小的运行时单元。 可以同时配置多个容器(包括 sidecar 和 init 容器),以便为一个容器应用提供服务。

Azure 基于角色的访问控制设置

Azure Spring Apps 和 Azure 容器应用都支持 Azure 基于角色的访问控制 (RBAC) 设置。 但是,它们的资源层次结构不同,因此它们的体验不同。

在 Azure Spring Apps 中,资源层次结构以服务实例为中心。 角色分配适用于实例,并自动传播到应用和部署等子资源。 这种设计提供了集中管理。 但是,如果用户需要访问特定应用或部署,而不是服务实例,则必须授予这些资源的特定权限。

从 API 的角度来看,Azure 容器应用将环境和容器应用的资源类型设计为位于同一分层级别的独立实体。 可以在托管环境或单个容器应用级别分配角色。 这种结构可实现对特定应用程序的精确控制。 例如,你可以为不同的团队或个人授予对不同容器应用的访问权限。 这种灵活性使在共享环境中独立管理资源变得更加容易。 它还与管理其他 Azure 资源的熟悉体验很好地保持一致。

迁移方法

从 Azure Spring Apps 迁移到 Azure 容器应用的方法涉及到下面关键步骤:

本文所述的迁移步骤示意图。

  1. 评估和计划:评估 Azure Spring Apps 上的当前工作负载,包括依赖项、配置和网络设置。

  2. 实现应用程序容器化:尽管 Azure 容器应用支持从 JAR 或源代码进行部署,但我们建议将应用程序容器化为具有更佳可移植性和效率的 Docker 容器。 可以使用 Azure 容器注册表或 Docker Hub 等工具创建 Dockerfile 和生成容器映像,从而实现应用程序容器化。 还可以在本地通过 buildpack 来生成容器映像。 若要了解如何实现应用程序容器化并生成类似于在 Azure Spring Apps 中运行的容器映像,请参阅容器化概述

  3. 设置 Azure 容器应用环境:在 Azure 容器应用中预配托管环境(包括配置虚拟网络、子网和任何必要的安全设置),以匹配 Azure Spring Apps 中之前的网络配置。 有关详细信息,请参阅预配 Azure 容器应用迁移自定义虚拟网络

  4. 在 Azure 容器应用中创建和配置 Java 组件:启用和配置 Eureka 服务器、Config Server、网关和管理控制台。这些组件对于 Spring 应用程序中的微服务业务流程和管理至关重要。 确保它们已正确配置,以便无缝转换。

    如果使用企业计划,请参阅以下文章:

    如果使用标准计划,请参阅以下文章:

  5. 部署容器:将容器化应用程序部署到 Azure 容器应用环境。 根据要求设置应用程序修订、缩放策略和网络配置。 有关详细信息,请参阅应用程序迁移概述

  6. 监视:在迁移期间,使用 Azure Monitor 持续监视应用程序性能,并根据需要调整配置来进行优化,例如调整缩放设置或资源分配。 有关详细信息,请参阅 Azure 容器应用中的日志和指标

  7. 测试和验证:运行彻底的测试,确保容器化应用程序在新环境中按预期运行。 验证网络连接、缩放以及与其他服务的集成。

  8. 客户端和自动化工具:若要简化日常开发和操作任务,请利用客户端工具和自动化解决方案。 这些工具包括客户端工具或 IDE 中的 Azure CLI、Azure DevOps、GitHub Actions 和扩展。 这些工具可帮助自动执行部署、监视性能和有效地管理资源,从而减少手动工作量并提高操作敏捷性。 若要了解常用工具,请参阅适用于 Azure 容器应用客户端或自动化工具

教程

我们提供了一个教程,演示在 Azure 容器应用中运行 ACME Fitness Store 应用程序的端到端体验。 有关详细信息,请参阅 acme-fitness-store/azure-container-apps。 本教程提供动手指导,帮助你快速获得在平台上部署和管理容器化应用程序的实际见解和信心。