Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описано, как настроить план модернизации, созданный средством GitHub Copilot modernization для миграции приложений Java и .NET в Azure.
Вы можете начать сеанс модернизации, создав план в отчете об оценке, выбрав несколько проблем, либо щелкнув Перейти в Azure, чтобы создать и выполнить план модернизации из боковой панели. При запуске сеанса модернизации GitHub Copilot создает файл plan.md (и вспомогательный файл .metadata/tasks.json), описывающий цель миграции, область, текущую и целевую архитектуру и список задач. Эта пара файлов служит схемой, выполняемой агентом модернизации. Вы можете уточнить план перед выполнением, чтобы лучше соответствовать потребностям проекта.
После создания агента plan.md он автоматически открывается в редакторе Visual Studio Code. На этом этапе можно просмотреть и настроить план, чтобы он соответствовал конкретным целям модернизации.
Important
Настройте план, попросив Copilot заново создать или обновить план, вместо того чтобы вручную редактировать plan.md напрямую. Прямые изменения в plan.md не обновляют сопутствующий файл tasks.json, который управляет выполнением, и эти два файла могут рассинхронизироваться. Рекомендуемый подход в каждом разделе ниже: «сначала сообщите Copilot, что нужно изменить, а затем позвольте ему заново сгенерировать результат».
Пример структуры файлов plan.md
Агент создает файл plan.md со следующими разделами. Та же структура используется для Java и .NET проектов.
| Секция | Purpose | Настраиваемый с помощью запроса |
|---|---|---|
| Заголовок проекта | Название проекта и наименование модернизации. | Да — измените заголовок, чтобы он отражал волну или масштаб. |
| Техническая платформа | Текущий язык, платформа, средство сборки, база данных и ключевые зависимости, обнаруженные из исходного кода. | Косвенно — исправьте ошибочные сведения с помощью запросов к Copilot. |
| Обзор | Описание цели модернизации: что меняется, почему и поэтапного подхода. Ориентировано на бизнес-аудиторию, без технических деталей. | Да. Уточняйте бизнес-намерения, добавляйте или удаляйте маркеры. |
| Сводка по влиянию на миграцию | Сопоставление таблиц для каждого приложения × исходной службы → новой службы Azure, метода проверки подлинности и комментариев. | Да. Измените целевую службу, измените проверку подлинности, добавьте или удалите строки. |
| Открытые вопросы & опросник | Уточняющие вопросы, возникающие во время создания плана, и ответы пользователя. Определяет выбор задачи. | Да — отвечать на открытые вопросы, пересматривать предыдущие ответы. |
Подробного списка задач нет в plan.md. Он находится в .metadata/tasks.json и формируется на основе ваших ответов в разделе «Открытые вопросы и анкета», а также на основе анализа агента. Чтобы изменить задачи, предложите Copilot повторно создать план (см. раздел Как настроить).
Что можно настроить
План модернизации предусматривает четыре области настройки. Каждый сопоставляется с разделом plan.md, и доступ к нему осуществляется через запрос Copilot, а не путем прямого редактирования.
1. Область модернизации
Область определяет, какие типы задач создает агент. План поддерживает четыре типа областей:
- Upgrade — обновления версий среды выполнения и платформы (например, JDK 11 → 17, Spring Boot 2.x → 3.x, .NET Framework → .NET 8).
- Миграция на Azure — замена локальной или не Azure службы эквивалентом Azure (например, Oracle → База данных Azure для PostgreSQL, ActiveMQ → Служебная шина Azure, жестко закодированных секретов → Azure Key Vault).
- Контейнеризация — создание Dockerfile и связанных артефактов сборки.
- Deployment — создание файлов развертывания и развертывание в Azure. Задачи развертывания включают неявную контейнеризацию.
Чтобы настроить область, сообщите Copilot, какие типы областей применяются к этому запуску. Рассмотрим пример.
For this modernization plan, only include Upgrade and Migration to Azure tasks. Do not generate containerization or deployment tasks — those are handled by a separate pipeline.
2. Целевые службы Azure и проверка подлинности
В таблице Migration Impact Summary записывается целевой метод Azure службы и проверки подлинности для каждого перенесенного компонента. Настройте эти значения с помощью запроса Copilot до или после создания исходного плана. Рассмотрим пример.
Update the Migration Impact Summary:
- Use Azure Container Apps as the deployment target, not Azure Kubernetes Service.
- Use Managed Identity for the PostgreSQL connection. Do not use Key Vault for the DB password.
- Migrate file-based logging to Azure Monitor (Application Insights), not to console-only.
Агент повторно генерирует и plan.md, и tasks.json, чтобы список задач оставался согласованным с таблицей.
3. Ответы на анкету
Если агенту доступна возможность ask_user, он задаёт несколько коротких вопросов, чтобы определить объём плана. Ниже приведены три вопроса по умолчанию:
| Вопрос | Ответ по умолчанию | Влияние на план |
|---|---|---|
| Целевой объект развертывания на Azure | Нет развертывания | Добавляет или пропускает задачу развертывания и выбирает целевую вычислительную службу (Контейнеры приложений Azure, Служба Azure Kubernetes, Служба приложений Azure, App Service Управляемый экземпляр, Azure Function Apps, Статические веб-приложения Azure). |
| Включить тестирование интеграции? | Нет | Если задано значение "Да, локальная интеграция с контейнерами" или "Да, локальная интеграция и тесты дыма", добавляется задача тестирования интеграции после задач миграции и перед контейнеризацией. |
| Включить контейнеризацию (создание Dockerfile)? | Нет | Добавляет автономную задачу контейнеризации. Пропускается автоматически, если выбрана задача развертывания, так как развертывание охватывает контейнеризацию. |
Если агент не задал вопрос (например, поскольку ask_user был недоступен) или вы хотите изменить предыдущий ответ, обратитесь к Copilot. Рассмотрим пример.
Update the plan with these answers:
- Deployment target: Azure Container Apps
- Integration testing: Yes, Local Integration and Smoke Tests
- Containerization: handled by deployment task, no standalone containerization needed
Ответы фиксируются как отмеченные пункты в разделе Открытые вопросы и анкета и определяют выбор задачи.
4. Добавление, удаление или уточнение конкретных задач
Вы можете попросить Copilot добавить задачу, которая не была создана, удалить задачу, которую вы не хотите, или настроить область существующей задачи. Запрос с помощью intent — позвольте Copilot выбрать соответствующий навык и шаблон из своей базы знаний.
Примеры:
Add a task to migrate from ActiveMQ to Azure Service Bus.
Drop the integration test task — we have an existing test suite that covers this.
The Spring Boot upgrade task should target Spring Boot 3.2 specifically, not "latest".
Замечание
Агент создает задачи только для тех миграций, для которых у него есть соответствующий навык или шаблон. Если вы запрашиваете миграцию, которую агент не поддерживает (например, внутреннюю проприетарную службу), в раздел области охвата добавляется предупреждение, а задача не добавляется. В этом случае считайте миграцию шагом, выполняемым вручную, и добавьте инструкцию в разделе Guidelines (см. следующий раздел), чтобы задокументировать этот шаг.
Как настроить: попросить Copilot создать заново
Используйте следующий рабочий процесс:
- Просмотрите исходный
plan.mdпосле того, как агент его создаст. - Определите, что нужно изменить: область, целевая служба, проверка подлинности, ответы на анкеты или конкретные задачи.
- Обратитесь к Copilot с этим изменением. Будьте конкретны: укажите раздел и желаемый результат.
- Пусть Copilot заново создаст
plan.mdи.metadata/tasks.jsonвместе. Оба файла должны оставаться синхронизированными, чтобы выполнение работало. - Повторно просмотрите обновленный план. Повторяйте, пока объём, целевая архитектура и список задач не будут соответствовать вашему замыслу.
Пример полного запроса:
Update the modernization plan with these changes:
1. Add Migration to Azure scope for messaging — migrate ActiveMQ to Azure Service Bus.
2. Use Managed Identity for all Azure service connections; do not introduce Key Vault.
3. Deployment target is Azure Container Apps.
4. Include Layer 1 and Layer 2 integration tests.
5. The Spring Boot upgrade task should explicitly include the JDK 17 and Jakarta EE migration in its description, as a single task (do not split).
Copilot повторно создает план, обновляет таблицу, записывает ответы на анкеты и изменяет список задач соответствующим образом.
Предоставление рекомендаций по выполнению
Помимо объёма работ и задач, предоставьте Copilot руководящие принципы — методологию, соглашения, инструменты и правила, — которые определяют порядок выполнения модернизации. Чаще всего добавляйте рекомендации в виде раздела Guidelines в плане или в качестве ссылок на локальные файлы правил.
Добавьте все инструкции, помогающие управлять тем, как Copilot изменяет код, например:
- Ограничения или запреты на определённые подходы к миграции (например, не добавляйте стартеры Spring Cloud Azure; используйте собственные SDK).
- Требования к соглашениям или стилю кода.
- Ссылки на внутренние файлы, документацию или сценарии, к которые агент может получить доступ.
- Знания о домене, полезные для устранения ошибок или выполнения миграции.
- Требования к описанию того, как агент должен замечать или комментировать изменения кода.
- Инструкции по очистке временных артефактов, созданных в процессе выполнения.
Пример:
Add these guidelines to the plan:
- Use Azure Managed Identity for every Azure service connection. Do not introduce connection strings or Key Vault secrets unless a service has no Managed Identity support.
- Follow the code conventions defined in `/docs/internal/code-style.md`.
- Provide detailed comments explaining why each code change is necessary.
- After execution, remove any temporary scripts or scratch files created during migration.