Перенос приложений .NET на Azure с помощью модернизации GitHub Copilot в Copilot CLI

Обзор

Узнайте, как перенести приложения .NET в Azure с помощью подключаемого модуля GitHub Copilot modernization в Copilot CLI.

Плагин предоставляет автономный многоагентный рабочий процесс, который оценивает ваше приложение .NET, создает выполнимый план модернизации и выполняет миграцию — всё из терминала. Она поддерживает миграцию в Azure, устранение уязвимостей CVE и реархитектуру приложений.

Замечание

GitHub Copilot CLI доступен в планах GitHub Copilot Pro, GitHub Copilot Pro+, GitHub Copilot Business и GitHub Copilot Enterprise. Если вы получаете Copilot через организацию, администратор должен в параметрах организации включить политику Copilot CLI.

Что можно сделать

Capability Description
миграция .NET на Azure Оценка и перенос приложений .NET в службы Azure (служебная шина, Azure SQL, Redis, Key Vault, Application Insights, Управляемое удостоверение), включая аудиты безопасности NuGet и миграции ASP.NET в Azure
Исправление уязвимостей и CVE Сканирование и исправление уязвимостей CVE в зависимостях NuGet
Переработка архитектуры приложения Структурная переработка, такая как декомпозиция монолита на микросервисы, модернизация устаревшего пользовательского интерфейса и выделение модулей

Предпосылки

Установка подключаемого модуля

  1. В терминале запустите copilot, чтобы запустить интерфейс командной строки Copilot.

    copilot
    
  2. Добавьте маркетплейс и установите плагин:

    copilot plugin marketplace add microsoft/github-copilot-modernization
    copilot plugin install github-copilot-modernization@github-copilot-modernization
    
  3. Убедитесь, что плагин установлен, выведя список установленных плагинов:

    /plugin list
    

    Вы увидите github-copilot-modernization:modernize в списке.

Обновить плагин

Чтобы обновить плагин, когда станет доступна новая версия, выполните:

copilot plugin update github-copilot-modernization@github-copilot-modernization

Запуск задачи модернизации

Вариант 1. Начало работы с агентом напрямую

Перейдите в папку проекта .NET и запустите интерфейс командной строки Copilot с помощью агента модернизации:

cd /path/to/your/dotnet-project
copilot --agent=github-copilot-modernization:modernize

Вариант 2. Выбор агента из Copilot CLI

Если вы уже находитесь в сеансе интерфейса командной строки Copilot, используйте команду /agent для переключения на агент модернизации:

/agent

Выберите github-copilot-modernization:modernize из списка.

Important

Перед выполнением любых запросов на модернизацию необходимо выбрать агента github-copilot-modernization:modernize. Если этот агент не выбран, Copilot CLI использует агент по умолчанию, который не поддерживает полноценную многоагентную оркестрацию, поддержку корпоративных плейбуков и специализированные возможности миграции, предоставляемые этим плагином.

Запустить запрос модернизации

После того как агент активен, опишите, что требуется на естественном языке:

copilot> modernize my application

Или будьте более конкретными:

copilot> modernize my .NET application for Azure
copilot> migrate this app from local SQL Server to Azure SQL Database
copilot> fix CVE vulnerabilities in my project

Для автоматического выполнения используйте --allow-all флаг:

copilot --agent=github-copilot-modernization:modernize --allow-all

Как работает рабочий процесс

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

Этап 1. Оценка

  • Обнаруживает .NET структуру проекта и использует соответствующие средства анализа.
  • Анализирует зависимости, платформы и версии.
  • Определяет возможности модернизации и риски.
  • Сохраняет результаты в .github/modernize/assessment/.

Этап 2. Планирование

  • Загружает результаты оценки и ограничения корпоративного сборника сценариев (если таковые имеются).
  • Создает исполняемый план задач.
  • Сохраняет план в .github/modernize/<app>/plan.md и tasks.json.

Этап 3. Выполнение

  • Направляет задачи специализированным агентам-исполнителям в зависимости от типа задачи.
  • Каждый исполнитель запрашивает базу знаний для шаблонов миграции.
  • Отслеживает ход выполнения с автоматическим повтором при сбое.
  • Создает подробные фиксации для каждой задачи для проверки.

Оркестратор поддерживает несколько точек входа в зависимости от намерения:

Workflow Когда это активируется Что происходит
Широкое намерение "модернизация приложения" Полный конвейер: оценка → планирование → выполнение
Конкретная задача "Миграция из SQL Server в Azure SQL" Пропускает этап оценки и сразу переходит к планированию → выполнению
Выполнение существующего плана "Выполнение плана" Пропускает оценку и планирование, выполняет существующий план
Безголовый Выполнение без участия пользователя с --allow-all То же, что и общий интент, без пользовательских подсказок

Определение политик модернизации предприятия

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

Настройте плейбук

Поместите файлы Markdown в .github/modernize/playbook/ каталог проекта. Этап планирования автоматически считывает все .md файлы в этой папке и объединяет их с результатами оценки перед созданием плана задач.

Important

Ограничения плейбука имеют приоритет над рекомендациями оценки. Если сборник схем указывает "использовать Служебная шина Azure для обмена сообщениями", этот выбор имеет приоритет независимо от того, что обнаруживает оценка.

Что можно определить в сборнике схем

Тип политики Examples
Целевые архитектуры Вычислительные службы (служба приложений, AKS, приложения-контейнеры), выбор базы данных (Azure SQL, Cosmos DB), платформы обмена сообщениями (служебная шина, Центры событий)
Стандарты обновления Целевые .NET версии, пути миграции платформы
Ограничения Запрещенные технологии, требования к безопасности, ограничения соответствия требованиям, стандарты проверки подлинности
Стандарты программирования Правила именования, шаблоны аутентификации, фреймворки журналирования
Стратегия миграции Границы охвата, предпочтения по классификации 6R (перенос без изменений, рефакторинг или переработка архитектуры), стратегия поэтапного выполнения

Пример плейбука

Создайте файл в .github/modernize/playbook/enterprise-standards.md:

# Enterprise Modernization Standards

## Target Architecture
- Use Azure Container Apps for microservices deployments
- Use Azure Service Bus for all asynchronous messaging
- Use Azure SQL Database for relational data
- Use Azure Blob Storage for file storage

## Security & Compliance
- All services must authenticate using Managed Identity — no connection strings or passwords in code
- All public endpoints must be behind Azure Front Door

## Guardrails
- Do not use Azure Functions for long-running processes
- All infrastructure must be defined in Bicep

Не требуется фиксированного именования или структуры— оркестратор определяет назначение каждого файла из его содержимого.

Встроенные значения по умолчанию

Без сценария плагин применяет разумные настройки по умолчанию:

  • Azure: Управляемое удостоверение для проверки подлинности; службы управляемых баз данных для реляционных данных.
  • Messaging: локальный обмен сообщениями → Служебная шина Azure.
  • Infrastructure: по умолчанию используется Bicep.

Распространенные сценарии

миграция Azure

copilot --agent=github-copilot-modernization:modernize
copilot> modernize my .NET application for Azure

Переход с локального SQL Server на Azure SQL

copilot --agent=github-copilot-modernization:modernize
copilot> migrate this app from local SQL Server to Azure SQL Database with managed identity

Миграция из файлового ввода-вывода в Хранилище BLOB-объектов Azure

copilot --agent=github-copilot-modernization:modernize
copilot> migrate this app from local file I/O to Azure Blob Storage

Исправление CVE и проблем безопасности

copilot --agent=github-copilot-modernization:modernize
copilot> fix CVE vulnerabilities in my project

Реархитектура приложения

copilot --agent=github-copilot-modernization:modernize
copilot> rearchitect my monolithic application into microservices

Полная модернизация

copilot --agent=github-copilot-modernization:modernize
copilot> modernize my application

Troubleshooting

Подключаемый модуль не найден

# Verify marketplace is added
copilot plugin marketplace list

# Re-add marketplace if needed
copilot plugin marketplace add microsoft/github-copilot-modernization

# Reinstall
copilot plugin install github-copilot-modernization@github-copilot-modernization

Оценка завершается ошибкой: приложение не найдено

  • Убедитесь, что корневой каталог проекта содержит файл .csproj или .sln файл.
  • Перед запуском Copilot CLI убедитесь, что вы находитесь в правильном каталоге.

Проблемы с сервером MCP

Плагин использует сервер MCP, определённый в его конфигурации. Если у вас возникнут проблемы, переустановите плагин, чтобы сбросить конфигурацию MCP.

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

Поделитесь отзывом о GitHub Copilot CLI с помощью формы обратной связи GitHub Copilot CLI.

Reference