通过批处理评估,可以同时分析多个应用程序,从而全面了解应用程序的现代化环境。 本文指导你完成高效评估多个存储库的过程。
批处理评估对于迁移规划尤其有用,因为它使你能够一次性有效地评估各种应用程序的准备情况和要求。 通过使用批处理评估,可以同时评估不同的存储库,并为每个应用程序获取详细的评估报告。 它生成两种类型的报告来支持迁移规划:
- 每个应用报告:提供有关在单个存储库级别确定的所有现代化问题的详细见解。
- 聚合报表:提供所有评估应用程序的总体视角、提供摘要见解、有关 Azure 服务的建议、目标平台和升级路径。 此外,聚合报表还包含用于轻松访问每个应用报表的快捷方式。
批处理评估具有以下优势:
跨应用程序可见性:
- 聚合报表:跨应用程序获取全面视图。
- 跨存储库分析:确定应用程序之间的常见模式和依赖关系。
- 优先级见解:了解哪些应用程序需要立即注意。
规模和效率
- 并行处理:使用云编码代理同时处理多个存储库。
- 自动化工作流:与用于计划评估的 CI/CD 管道集成。
- 节省时间:将总评估时间从数周减少到数小时。
先决条件
- 现代化命令行界面 (CLI)
- 访问要评估的所有存储库。
- 已配置 GitHub 身份验证(
gh auth login)。
配置存储库
若要启用批处理评估,请在工作目录中创建一个 .github/modernize/repos.json 文件,其中列出了要评估的所有存储库。
请确保你对存储库具有适当的权限,或为其创建分支。
[
{
"name": "PhotoAlbum-Java",
"url": "https://github.com/Azure-Samples/PhotoAlbum-Java.git"
},
{
"name": "PhotoAlbum",
"url": "https://github.com/Azure-Samples/PhotoAlbum.git"
},
{
"name": "eShopOnWeb",
"url": "https://github.com/dotnet-architecture/eShopOnWeb.git"
}
]
存储库配置
每个条目都需要:
- 名称:存储库的友好名称(用于报表和仪表板)。
- url:采用 HTTPS 格式的 Git 克隆 URL。
小窍门
你可以包括来自不同组织的存储库,只要你有权访问,就可以使用不同的身份验证方法。
文件位置
必须将repos.json文件放置于.github/modernize/repos.json。
新式化代理在运行批处理作时自动检测此文件。
运行批量评估
有两种执行模式可用:
- 本地执行:现代化代理在本地计算机上逐个处理存储库。 此模式最适合一组较小的应用程序或初始测试。
- 云编码代理委派:现代化代理将任务提交到 GitHub 云编码代理,以便在云中并行处理。 对于多存储库方案,此模式更快。
小窍门
通过使用云编码代理委派,可以跨所有存储库启用并行执行。 此方法大大减少了大型投资组合的总评估时间。
交互模式(在本地评估)
运行现代化工具:
modernize代理检测到
repos.json文件并显示存储库列表:选择要评估的存储库,然后按
Enter以确认选择。-
按
Ctrl+A以选择所有存储库。 -
使用箭头键 导航并按
Space以选择单个存储库。
-
按
选择 1。 从主菜单中评估应用程序。
若要运行评估,请选择本地评估或委托给云编码代理。 选择 1. 本地评估。
代理自动:
评估完成后,代理会自动打开聚合报表。
交互模式(委派给云编码代理)
首先,在每个应用程序存储库中配置云编码代理。 若要配置云编码代理,请分叉示例存储库。
.NET 应用程序的配置
配置为在 Windows 上运行用于 .NET Framework 应用程序
默认情况下,Copilot 编码代理在 Ubuntu Linux 环境中运行。 对于 .NET Framework 应用程序,需要 Windows 环境。 若要启用它,请在应用程序代码仓库的main分支中配置.github/workflows/copilot-setup-steps.yaml,如以下示例所示:
# Windows-based Copilot Setup Steps for .NET tasks
# Note: Windows runners have firewall limitations that may affect some network operations
# Use this workflow for .NET projects that require Windows-specific tooling
name: "Copilot Setup Step (Windows)"
on:
workflow_dispatch:
jobs:
copilot-setup-steps:
runs-on: windows-latest
permissions:
contents: read
steps:
- name: Checkout code
uses: actions/checkout@v5
详细了解: 使用 Copilot 设置步骤自定义 Copilot 的开发环境
禁用防火墙
在存储库设置中禁用 Copilot 编码代理的集成防火墙,如下图所示:
Java 应用程序的配置
在存储库设置的云编码代理部分中配置 GitHub Copilot 现代化 MCP 服务器,如以下示例所示:
{
"mcpServers": {
"app-modernization": {
"type": "local",
"command": "npx",
"tools": [
"*"
],
"args": [
"-y",
"@microsoft/github-copilot-app-modernization-mcp-server"
]
}
}
}
步骤
运行现代化工具:
modernize代理检测到
repos.json文件并显示存储库列表:选择要评估的存储库,然后按
Enter以确认选择。-
按
Ctrl+A以选择所有存储库。 -
使用箭头键 导航并按
Space以选择单个存储库。
-
按
选择 1。 从主菜单中评估应用程序。
若要运行评估,请选择 2。委托给云编码代理。
代理会自动将每个存储库的评估任务委托给云编码代理,并在云中并行执行它们。
然后,代理将每个应用评估结果拉回本地,并在本地生成聚合报表。
评估完成后,代理会自动打开聚合报表。
非交互模式 (CLI)
还可以通过直接指定命令参数来使用非交互式模式。 使用 modernize assess 命令:
在本地评估:
modernize assess --multi-repo
通过委托给云编码代理进行评估:
modernize assess --delegate cloud
有关详细信息,请参阅 评估 - CLI 命令。
了解聚合报表
聚合报表提供跨评估应用程序的综合视图,如下所示:
仪表板
- 项目组合健康状况概况:应用总数、需要升级的数量,以及总括阻塞问题和问题数量统计。
- 技术分发:正在使用哪些框架以及有多少应用共享它们。
- 工作量分配:总体迁移是一项小型或大型迁移。
建议
- Azure 服务:将当前依赖项映射到建议的 Azure 等效项。 跨应用的共享依赖项仅需决定一次,因此可以避免每个应用的重复工作。
- 目标平台:指导托管选择,例如容器应用与 AKS,并呈现整合机会。
- 升级路径:确定哪些应用需要框架升级作为先决条件,将升级工作与迁移工作分开。
- 迁移波:按就绪情况和风险对应用进行排序,分为阶段。 方法使得在准备更复杂的应用程序的同时取得初步成功。
应用程序评估矩阵
- 有关框架、目标平台、升级建议、问题细分(必需、潜在、可选)、工作量调整等各方面的应用程序的快速概述。
- 指向各个应用报表的链接,以便在需要时深入查看。
批处理评估疑难解答
常见问题
存储库访问错误:
- 使用
gh auth status.. 验证 GitHub 身份验证。 - 请确保有权访问列出的
repos.json所有存储库。
克隆失败:
- 验证存储库
repos.jsonURL 是否正确且可访问。 - 请确保对所有存储库具有正确的访问权限。
- 检查网络连接和 VPN 设置。
评估失败:
- 检查存储库是否包含有效的 Java 或 .NET 项目。
- 验证是否存在生成文件,例如
pom.xml,build.gradle*.csproj或*.sln。 - 查看控制台输出中的错误消息。
云编码代理委派问题:
- 请确保你有权创建 GitHub Actions 工作流。
- 检查组织的 GitHub Actions 权限和配额限制。
- 对于 .NET Framework 应用,请确保正确设置 Windows 运行程序配置。
- 检查 MCP 服务器配置。
后续步骤
完成批次评估后,您可以:
继续现代化工作流:
- 跨存储库运行批处理升级 - 根据评估结果应用一致的升级。
了解详细信息:
提供反馈
我们重视你的输入! 如果对批处理评估或现代化代理有任何反馈, 请在 github-copilot-appmod 存储库中创建问题 ,或使用 GitHub Copilot 现代化反馈表单。