培训
认证
Microsoft Certified: Azure Developer Associate - Certifications
在 Microsoft Azure 中构建端到端解决方案,以创建 Azure Functions、实现和管理 Web 应用、开发使用 Azure 存储的解决方案等。
你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在本文中,你将学习如何容器化 Java Web 应用程序(在 Apache Tomcat 上运行)并使用“Azure Migrate:应用容器化工具”将其迁移到 Azure 应用服务。 容器化过程不需要访问代码库,并提供了一种简单的方法来容器化现有应用程序。 该工具的工作原理是使用服务器上应用程序的运行状态来确定应用程序组件,并帮助你将它们打包到容器映像中。 然后可将已容器化的应用程序部署到 Azure 应用服务。
Azure Migrate 应用容器化工具当前支持:
Azure Migrate 应用容器化工具可帮助你:
备注
虽然在不进行重大重构的情况下直接迁移到容器并不能使所有应用程序获益,但不进行重写地将现有应用迁移到容器中的一些好处包括:
本教程介绍以下操作:
备注
教程中演示了方案的最简单部署路径,使你能够快速设置概念证明。 教程尽可能使用默认选项,不会演示所有可能的设置和路径。
开始学习本教程之前,应做好以下准备:
要求 | 详细信息 |
---|---|
确定要安装工具的计算机 | 用于安装和运行 Azure Migrate: 应用容器化工具的 Windows 计算机。 Windows 计算机可以是服务器(Windows Server 2016 或更高版本)或客户端 (Windows 10) 操作系统,这意味着该工具也可在桌面上运行。 运行该工具的 Windows 计算机应该可以通过网络连接到那些托管要容器化的 Java Web 应用程序的服务器/虚拟机。 确保运行 Azure Migrate: 应用容器化工具的 Windows 计算机上有 6 GB 的可用空间,用于存储应用程序项目。 Windows 计算机应可以直接或通过代理访问 Internet。 |
应用程序服务器 | 在运行要容器化的 Java 应用程序的服务器的端口 22 上启用安全外壳 (SSH) 连接。 |
Java Web 应用程序 | 该工具当前支持: - 在 Tomcat 8 或 omcat 9 上运行的应用程序。 - Ubuntu Linux 16.04/18.04/20.04、Debian 7/8、Red Hat Enterprise Linux 5/6/7 上的应用程序服务器。 - 使用 Java 7 或 Java 8 的应用程序。 如果你有版本超出此范围,请查找支持所需版本的映像并修改 dockerfile 来替换映像 该工具当前不支持: - 运行多个 Tomcat 实例的应用程序服务器 |
如果没有 Azure 订阅,请在开始之前创建一个免费帐户。
订阅设置完成后,你将需要一个拥有以下权限的 Azure 用户帐户:
如果你刚刚创建了免费的 Azure 帐户,那么你就是订阅的所有者。 如果你不是订阅所有者,请让所有者分配权限,如下所示:
在 Azure 门户中,搜索“订阅”,然后在“服务”下选择“订阅” 。
在“订阅”页上,选择要在其中创建 Azure Migrate 项目的订阅。
在“订阅”中,选择“访问控制 (IAM)”>“检查访问权限” 。
在“检查访问权限”中,搜索相关的用户帐户。
在“添加角色分配”中,选择“添加” 。
在“添加角色分配”中,选择“所有者”角色,然后选择帐户(本例中为 azmigrateuser)。 选择“保存”。
Azure 帐户还需要权限才能注册 Microsoft Entra 应用。8.在 Azure 门户中,转到“Microsoft Entra ID”>“用户”>“用户设置”。 9.在“用户设置”中,验证 Microsoft Entra 用户是否可以注册应用程序(默认情况下设置为“是”)。
重要
Microsoft 建议使用权限最少的角色。 这有助于提高组织的安全性。 全局管理员是一个高度特权的角色,应仅限于无法使用现有角色的紧急情况。
在 Windows 计算机上下载 Azure Migrate: 应用容器化安装程序。
在管理员模式下启动 PowerShell,并将 PowerShell 目录更改为包含安装程序的文件夹。
使用命令运行安装脚本
.\AppContainerizationInstaller.ps1
备注
对于 Windows Server 2022,请编辑第 135 行并从功能列表中删除 PowerShell-ISE
,因为它不再受支持。
在可连接到运行应用容器化工具的 Windows 计算机的任何计算机上打开浏览器,并打开工具 URL:https://计算机名称或 IP 地址: 44369。
或者,可以在桌面上选择应用快捷方式打开该应用。
如果你看到一条警告,指出连接不是专用连接,请选择“高级”,然后选择转到网站。 Web 界面使用自签名 TLS/SSL 证书时,将显示此警告。
在登录屏幕上,使用计算机上的本地管理员帐户进行登录。
选择“Tomcat 上的 Java Web 应用”作为要容器化的应用程序类型。
若要指定目标 Azure 服务,请选择“Azure 应用服务上的容器”。
选择“登录”以登录到 Azure 帐户。
需要使用设备代码向 Azure 进行身份验证。 选择“登录”将打开具有设备代码的模式。
选择“复制代码并登录”以复制设备代码,并在新的浏览器选项卡中打开 Azure 登录提示。如果未显示该按钮,请确保已在浏览器中禁用弹出窗口阻止程序。
在新选项卡中,粘贴设备代码,并使用 Azure 帐户凭证完成登录。 登录完成后,可以关闭浏览器选项卡,然后返回到应用容器化工具的 Web 界面。
选择要使用的 Azure 租户。
选择要使用的 Azure 订阅。
应用容器化帮助程序工具使用提供的凭据远程连接到应用程序服务器,并尝试发现在应用程序服务器上托管的 Java Web 应用程序(在 Apache Tomcat 上运行)。
指定运行 Java Web 应用程序的服务器的 IP 地址/FQDN 和凭据,该服务器应用于远程连接到服务器以进行应用程序发现。
选择“验证”,验证是否可以从运行该工具的计算机访问应用程序服务器,以及凭据是否有效。 验证成功后,“状态”列会将状态显示为“已映射”。
选择“继续”,在选定的应用程序服务器上启动应用程序发现。
成功完成应用程序发现后,可以选择要容器化的应用程序列表。
使用复选框选择要容器化的应用程序。
指定容器名称:为每个选定的应用程序指定目标容器的名称。 容器名称应指定为 名称:标记,其中标记用于容器映像<>。 例如,可以将目标容器名称指定为 appname:v1。
参数化配置,使其可用作部署时间参数。 这使你可以在部署应用程序时配置此设置,而不是将其硬编码为容器映像中的特定值。 例如,此选项对数据库连接字符串等参数非常有用。
选择“应用配置”以查看检测到的配置。
选中此复选框以参数化检测到的应用程序配置。
选择要参数化的配置后,选择“应用”。
可以添加应用程序使用的其他文件夹。 指定文件夹是否应为容器映像的一部分,或者是否要通过 Azure 文件共享将文件夹外部化到永久性存储中。 对于将状态存储在容器外部或将其他静态内容存储在文件系统上的有状态应用程序,使用外部永久性存储非常有用。
选择“应用文件夹”下的“编辑”以查看检测到的应用程序文件夹。 检测到的应用程序文件夹已被识别为应用程序所需的必需项目,并将复制到容器映像中。
选择“添加文件夹”,并指定要添加的文件夹路径。
若要将多个文件夹添加到同一个卷,请提供以逗号 (,
) 分隔的值。
如果希望将文件夹存储在容器外部的永久性存储中,请选择“Azure 文件共享”作为存储选项。
查看应用程序文件夹后,选择“保存”。
选择“继续”以进入容器映像生成阶段。
选择 Azure 容器注册表:使用下拉列表选择将用于生成和存储应用容器映像的 Azure 容器注册表。 可以使用现有的 Azure 容器注册表,也可以选择使用“新建注册表”选项创建一个新的注册表。
备注
仅显示启用了管理员用户的 Azure 容器注册表。 当前需要管理员帐户才能将 Azure 容器注册表中的映像部署到 Azure 应用服务。 了解详细信息。
查看 Dockerfile:为每个所选应用程序生成容器映像所需的 Dockerfile 是在生成步骤开始时生成的。 选择“查看”,以查看 Dockerfile。 还可以在查看步骤中将任何必要的自定义添加到 Dockerfile,并在开始生成过程之前保存更改。
配置 Application Insights:可以为在应用服务上运行的 Java 应用启用监视,而无需检测代码。 该工具将安装 Java 独立代理,作为容器映像的一部分。 在部署过程中进行配置后,Java 代理会自动为应用程序收集可用于使用 Application Insights 进行监视的各项请求、依赖项、日志和指标。 默认情况下,所有 Java 应用程序均启用此选项。
触发生成过程:选择要为其生成映像的应用程序,然后选择“生成”。 选择“生成”将对每个应用程序启动容器映像生成。 该工具会持续监视生成状态,并使你能够在成功完成生成后继续执行下一步。
跟踪生成状态:通过选择“生成状态”列下的“正在进行的生成”链接,还可以监视生成步骤的进度。 触发生成过程后,该链接需要几分钟时间才能生效。
完成生成后,选择“继续”以指定部署设置。
生成容器映像后,下一步是将应用程序作为容器部署到 Azure 应用服务上。
选择 Azure 应用服务计划:指定应用程序应使用的 Azure 应用服务计划。
指定机密存储和监视工作区:如已选择参数化应用程序配置,请指定要用于该应用程序的机密存储。 你可以选择 Azure Key Vault 或应用服务应用程序设置来管理你的应用程序密钥。 了解详细信息。
指定 Azure 文件共享:如果你已添加更多目录/文件夹,并选择了“Azure 文件共享”用于永久性存储,则使用“Azure Migrate:应用容器化工具”在部署过程中指定要使用的 Azure 文件共享。 该工具将复制为 Azure 文件存储而配置的应用程序目录/文件夹,并在部署过程中将它们装载到应用程序容器中。
应用程序部署配置:完成上述步骤后,需指定应用程序的部署配置。 选择“配置”,以自定义应用程序部署。 在配置步骤中,可以提供下列自定义项:
部署应用程序:保存应用程序的部署配置后,该工具将为应用程序生成 Kubernetes 部署 YAML。
选择“查看”以查看应用程序的部署配置。
选择要部署的应用程序。
选择“部署”以启动所选应用程序的部署
部署应用程序后,可以选择“部署状态”列以跟踪为该应用程序部署的资源。
若要解决此工具的任何问题,可以查看运行应用容器化工具的 Windows 计算机上的日志文件。 工具日志文件位于 C:\ProgramData\Microsoft Azure Migrate App Containerization\Logs 文件夹。
培训
认证
Microsoft Certified: Azure Developer Associate - Certifications
在 Microsoft Azure 中构建端到端解决方案,以创建 Azure Functions、实现和管理 Web 应用、开发使用 Azure 存储的解决方案等。
文档
将 ASP.NET 应用容器化并迁移到应用服务 - Azure Migrate
本教程演示如何将 ASP.NET 应用程序容器化并迁移到 Azure 应用服务。
Azure 应用容器化 ASP.NET;容器化 ASP.NET 应用程序并将其迁移到 Azure Kubernetes。 - Azure Migrate
教程 - 容器化 ASP.NET 应用程序并将其迁移到 Azure Kubernetes 服务。