Поделиться через


Пакетная оценка с помощью агента модернизации 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"
  }
]

Конфигурация репозитория

Для каждой записи требуется:

  • имя: понятное имя репозитория (используется в отчетах и панелях мониторинга).
  • URL: Git URL-адрес клонирования в формате HTTPS.

Подсказка

Вы можете включить репозитории из разных организаций и использовать различные методы проверки подлинности до тех пор, пока у вас есть доступ.

Расположение файла

Файл repos.json необходимо поместить в .github/modernize/repos.json.

Агент модернизации автоматически обнаруживает этот файл при выполнении пакетных операций.

Запуск пакетной оценки

Доступны два режима выполнения:

  • Локальное выполнение: агент модернизации обрабатывает репозитории друг за другом на локальном компьютере. Этот режим лучше всего подходит для меньшего набора приложений или для первоначального тестирования.
  • Делегирование агента облачного программирования: агент модернизации отправляет задачи в агенты облачного программирования GitHub для параллельной обработки в облаке. Этот режим быстрее выполняет задачи в сценариях с несколькими репозиториями.

Подсказка

С помощью делегирования агента облачного программирования можно включить параллельное выполнение во всех репозиториях. Такой подход значительно сокращает общее время оценки для крупных портфелей.

Интерактивный режим (оценка локально)

  1. Запустите агент модернизации:

    modernize
    
  2. Агент обнаруживает repos.json файл и отображает список репозитория:

    Снимок экрана Modernize CLI, показывающий список репозиториев в терминале.

  3. Выберите репозитории для оценки и нажмите клавишу Enter , чтобы подтвердить выбор.

    • Нажмите Ctrl+A Для выбора всех репозиториев.
    • Используйте клавиши со стрелками для перехода и нажатия Space клавиш для выбора отдельных репозиториев.
  4. Выберите 1. Оценка приложения из главного меню.

    Снимок экрана Modernize CLI, показывающий меню модернизации в терминале.

  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

Настройте MCP-сервер для модернизации GitHub Copilot в секции Cloud Coding Agent параметров вашего репозитория, как показано в следующем примере:

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

Снимок экрана: GitHub, на котором показаны параметры агента кодирования репозитория с выделенным разделом конфигурации MCP.

Шаги

  1. Запустите агент модернизации:

    modernize
    
  2. Агент обнаруживает repos.json файл и отображает список репозитория:

    Снимок экрана Modernize CLI, показывающий список репозиториев в терминале.

  3. Выберите репозитории для оценки и нажмите клавишу Enter , чтобы подтвердить выбор.

    • Нажмите Ctrl+A Для выбора всех репозиториев.
    • Используйте клавиши со стрелками для перехода и нажатия Space клавиш для выбора отдельных репозиториев.
  4. Выберите 1. Оценка приложений из главного меню.

    Снимок экрана Modernize CLI, показывающий меню модернизации в терминале.

  5. Чтобы выполнить оценку, выберите 2. Делегировать агентам облачного программирования.

    Снимок экрана Modernize CLI, показывающий меню оценки с выбранным параметром

  6. Агент автоматически делегирует задачи оценки для каждого репозитория в облачные агенты программирования и выполняет их в облаке параллельно.

    Снимок экрана интерфейса командной строки Modernize, показывающий ход выполнения делегирования оценки в Агенты облачного кодирования в терминале.

    Затем агент извлекает результаты оценки для каждого приложения обратно на локальное устройство и создаёт совокупный отчет локально.

    Снимок экрана Modernize CLI с отображением агрегирования отчетов об оценке в терминале.

  7. После завершения оценки агент автоматически открывает агрегированный отчет.

Неинтерактивный режим (CLI)

Кроме того, можно использовать неинтерактивный режим, указав аргументы команд напрямую. Используйте команду modernize assess:

Оценка локально:

modernize assess --multi-repo

Оцените, делегируя облачным агентам кодирования:

modernize assess --delegate cloud

Дополнительные сведения см. в разделе оценка — команды CLI.

Общие сведения об агрегированном отчете

Объединенный отчет предоставляет комплексное представление для оцененных приложений следующим образом:

Панель мониторинга

  • Общий обзор состояния портфеля: общее количество приложений, сколько требуют обновления, а также общее количество блокировок и проблем.
  • Распределение технологий: какие платформы используются и сколько приложений совместно используются.
  • Распределение усилий: является ли общая миграция небольшой или большой задачей.

Рекомендации

  • Службы Azure: сопоставляют текущие зависимости с рекомендуемыми эквивалентами Azure. Общие зависимости между приложениями решаются один раз, поэтому вы избегаете повторной работы для каждого приложения.
  • Целевая платформа: руководства по выбору размещения, например, таких, как контейнерные приложения и AKS, и выявление возможностей для консолидации.
  • Путь обновления: определяет, какие приложения нуждаются в обновлении платформы в качестве обязательного условия, разделяя работу обновления от работы миграции.
  • Волны миграции: организация приложений по готовности и риску в различные этапы. Этот подход позволяет ранним выигрышам, а более трудные приложения подготавливаются параллельно.

Матрица оценки приложений

  • Краткий обзор каждого приложения по аспектам платформы, целевой платформы, рекомендации по обновлению, разбивка проблем (обязательный, потенциальный, необязательный), размер усилий и многое другое.
  • Ссылки на отдельные отчеты приложений для детализации при необходимости.

Устранение неполадок пакетного анализа

Распространенные проблемы

Ошибки доступа к репозиторию:

  • Проверьте проверку подлинности GitHub с помощью gh auth status.
  • Убедитесь, что у вас есть доступ ко всем репозиториям, перечисленным в repos.json.

Неудачи при клонировании:

  • Проверьте правильность и доступность URL-адресов repos.json репозитория.
  • Убедитесь, что у вас есть правильные разрешения на доступ для всех репозиториев.
  • Проверьте параметры сетевого подключения и VPN.

Сбои оценки:

  • Проверьте, содержит ли репозиторий допустимые проекты Java или .NET.
  • Убедитесь, что существуют файлы сборки, например pom.xml, build.gradleили *.csproj*.sln.
  • Просмотрите сообщения об ошибках в выходных данных консоли.

Проблемы с делегированием агента программирования в облаке:

  • Убедитесь, что у вас есть правильные разрешения на создание рабочих процессов GitHub Actions.
  • Проверьте разрешения GitHub Actions и ограничения квот для вашей организации.
  • Для приложений .NET Framework убедитесь, что конфигурация runner Windows настроена правильно.
  • Проверьте конфигурацию сервера MCP.

Дальнейшие действия

После завершения пакетной оценки можно:

Продолжить рабочий процесс модернизации:

Дополнительные сведения:

Предоставьте отзыв

Мы ценим ваши входные данные! Если у вас есть отзывы о пакетной оценке или агенте модернизации, создайте проблему в репозитории github-copilot-appmod или используйте форму отзывов о модернизации GitHub Copilot.