共用方式為


使用 GitHub Copilot 現代化代理進行批次評估

批次評估讓您能同時分析多個應用程式,全面呈現整個應用程式的現代化現況。 本文將引導您有效評估多個資料庫的過程。

批次評估對於遷移規劃特別有價值,因為它能讓你有效地同時評估各種應用程式的準備度與需求。 透過批次評估,您可以同時評估不同的資料庫,並為每個應用程式取得詳細的評估報告。 它會產生兩種報告來支持您的遷移規劃:

  • 每個應用程式報告:提供對個別儲存庫層級所識別所有現代化問題的詳細見解。
  • 彙整報告:呈現所有評估應用程式的整體觀點,提供摘要見解、Azure 服務、目標平台及升級路徑的建議。 此外,彙整報告還包含捷徑,方便你輕鬆存取每個應用程式的報告。

批次評量帶來以下好處:

  • 跨應用程式可見性:

    • 彙整報告:全面檢視各應用。
    • 跨儲存庫分析:識別應用程式間的共通模式與依賴關係。
    • 優先排序洞察:了解哪些應用程式需要立即關注。
  • 規模與效率:

    • 平行處理:使用雲端編碼代理同時處理多個資料庫。
    • 自動化工作流程:整合 CI/CD 管線以進行排程評估。
    • 節省時間:將總評估時間從數週縮短為數小時。

先決條件

設定存放庫

要啟用批次評估,請在您的工作目錄中建立 .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"
  }
]

儲存庫配置

每篇條目要求:

  • 名稱:對資料庫的友善名稱(用於報告與儀表板)。
  • 網址:Git 克隆 URL 以 HTTPS 格式呈現。

小提示

只要你有權限,你可以包含不同組織的資料庫,並使用不同的認證方法。

檔案位置

您必須將 repos.json 檔案放置於 .github/modernize/repos.json

現代化代理在執行批次操作時會自動偵測此檔案。

執行批次評估

有兩種執行模式可供選擇:

  • 本地執行:現代化代理會依序在你的本地機器上處理一個又一個的儲存庫。 此模式最適合較小的應用群或初期測試。
  • 雲端編碼代理委派:現代化代理將任務提交給 GitHub 雲端編碼代理,進行雲端平行處理。 此模式在多倉庫場景中速度更快。

小提示

透過使用 Cloud Coding Agent 委派,你可以在所有儲存庫間實現平行執行。 此方法大幅縮短大型投資組合的總評估時間。

互動模式(本地評估)

  1. 執行現代化代理程式:

    modernize
    
  2. 代理程式偵測該 repos.json 檔案並顯示儲存庫清單:

    Modernize CLI 的截圖,顯示終端機中的儲存庫清單。

  3. 選擇要評估的儲存庫,並按下 Enter 確認你的選擇。

    • Ctrl+A 選擇所有儲存庫。
    • 使用方向鍵 導航,按鍵 Space 選擇個別儲存庫。
  4. 選擇 1. 評估申請 從主選單。

    Modernize CLI 的截圖,顯示終端機中的 modernize 選單。

  5. 要執行評估,請選擇在本地評估或委託給雲端編碼代理。 選擇 1:在地評估

    Modernize CLI 的截圖,顯示終端機的評估選單。

  6. 代理程式會自動:

    • 複製所有選擇的儲存庫。

    • 逐一評估每個儲存庫。

    • 產生個別評估報告。

      Modernize CLI 的截圖,顯示終端機中個別評估報告產生的輸出。

    • 建立彙整報告。

      Modernize CLI 的截圖,顯示終端機中彙整報告產生的輸出。

  7. 評估結束後,客服會自動開啟彙整報告。

    Modernize CLI 的截圖,顯示彙整報告的內容。

互動模式(委派給雲端編碼代理)

首先,在每個應用程式儲存庫中配置雲端編碼代理程式。 要設定雲端編碼代理程式,請分支範例倉庫。

.NET 應用程式的設定

配置為在 Windows 上執行 .NET Framework 應用程式

預設情況下,Copilot 編碼代理程式運行於 Ubuntu Linux 環境中。 對於 .NET Framework 應用程式,你需要 Windows 環境。 要啟用它,請在.github/workflows/copilot-setup-steps.yaml你的應用程式倉庫分支中配置main,如以下範例所示:

# 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 編碼代理的內建防火牆,如下圖所示:

GitHub 截圖顯示了倉庫設定,且將啟用防火牆設定設為關閉。

Java 應用程式的設定

請如以下範例所示,在你的倉庫設定中以雲端編碼代理(Cloud Coding Agent)配置 GitHub Copilot 現代化 MCP 伺服器:

{
  "mcpServers": {
    "app-modernization": {
      "type": "local",
      "command": "npx",
      "tools": [
        "*"
      ],
      "args": [
        "-y",
        "@microsoft/github-copilot-app-modernization-mcp-server"
      ]
    }
  }
}

GitHub 截圖顯示倉庫的 Coding agent 設定,並標示 MCP 設定區塊。

Steps

  1. 執行現代化代理程式:

    modernize
    
  2. 代理程式偵測該 repos.json 檔案並顯示儲存庫清單:

    Modernize CLI 的截圖,顯示終端機的儲存庫清單。

  3. 選擇要評估的儲存庫,並按下 Enter 確認你的選擇。

    • Ctrl+A 選擇所有儲存庫。
    • 使用方向鍵 導航,按鍵 Space 選擇個別儲存庫。
  4. 選擇 1. 評估應用程式 從主選單。

    Modernize CLI 的截圖,顯示終端機中的 modernize 選單。

  5. 要執行評估,請選擇 2。委託給雲端編碼代理

    Modernize CLI 的截圖顯示評估選單,並選擇了「委派到雲端編碼代理」選項。

  6. 代理程式會自動將每個資料庫的評估任務委派給雲端編碼代理程式,並在雲端平行執行。

    Modernize CLI 的截圖,顯示將評估委派給終端機中雲端編碼代理的進度輸出。

    代理會將每個應用程式的評估結果拉回本地,並在本地產生彙整報告。

    Modernize CLI 的截圖,顯示終端機中彙整評估報告。

  7. 評估結束後,客服會自動開啟彙整報告。

非互動模式(CLI)

你也可以直接指定指令參數來使用非互動模式。 使用 modernize assess 命令:

在地評估:

modernize assess --multi-repo

透過委派雲端編碼代理來評估:

modernize assess --delegate cloud

欲了解更多資訊,請參閱 assess - CLI 指令

理解彙整報告

彙整報告提供以下評估應用程式的全面概覽:

Dashboard

  • 投資組合健康概況:應用程式總數、需要升級的數量,以及總體阻擋因素和問題數量。
  • 技術分發:使用了哪些框架,以及有多少應用程式共享這些框架。
  • 工作量分配:判斷整體遷移是小型還是大型專案。

建議

  • Azure 服務:將當前的相依性映射到建議的 Azure 等效項。 跨應用程式的共用依賴是一次性決定的,避免每個應用程式都重新設計。
  • 目標平台:指導主機選擇,如容器應用程式與 AKS 的選擇,並呈現整合機會。
  • 升級路徑:識別哪些應用程式需要框架升級作為前提,將升級工作與遷移工作區分開來。
  • 遷移波:依照準備度與風險將應用程式排序為階段。 這種方式能實現初步成功,同時準備更複雜的應用程式。

申請評估矩陣

  • 每個應用程式的快速概述,涵蓋框架、目標平台、升級建議、問題分解(強制、潛在、可選)、工作量大小等。
  • 需要時提供個別應用程式報告連結,方便深入分析。

批次評估排除故障

常見問題

儲存庫存取錯誤:

  • 請使用 gh auth status 驗證 GitHub 身份驗證。
  • 確保你能存取 repos.json 中列出的所有儲存庫。

複製失敗:

  • 請確認儲存 repos.json 庫的網址是否正確且可存取。
  • 確保你擁有所有資料庫的正確存取權限。
  • 檢查你的網路連線和 VPN 設定。

評估失敗:

  • 檢查該倉庫是否包含有效的 Java 或 .NET 專案。
  • 確認建置檔是否存在,例如 pom.xmlbuild.gradle*.csproj*.sln
  • 請檢視主控台輸出中的錯誤訊息。

雲端編碼代理委派問題:

  • 確保你擁有建立 GitHub Actions 工作流程的正確權限。
  • 請檢查你組織的 GitHub Actions 權限和配額限制。
  • 對於 .NET Framework 應用程式,請確保 Windows 運行程式的設定正確。
  • 檢查你的 MCP 伺服器設定。

下一步

完成批次評估後,您可以:

持續現代化工作流程:

深入了解:

提供意見反應

我們重視您的意見! 如果你對批次評估或現代化代理有任何回饋,請 在 github-copilot-appmod 倉庫建立問題 ,或使用 GitHub Copilot 現代化回饋表單