Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье вы узнаете, как использовать модернизацию приложений GitHub Copilot для оценки, исправления, контейнеризации и развертывания приложений Java в приложениях контейнеров Azure. Модернизация приложений GitHub Copilot — это помощник на основе искусственного интеллекта, который объединяет GitHub Copilot с инструментами с открытым кодом, такими как OpenRewrite, чтобы автоматизировать сложные этапы обновления и миграции.
Это средство поддерживает проекты Maven и Gradle, предназначено для обновлений между версиями Java 8, 11, 17 и 21, а также ориентировано на модернизацию приложений Spring Boot. Он предоставляет предопределенные задачи для распространенных сценариев миграции и включает рекомендации по запуску приложений в приложениях контейнеров Azure.
Необходимые условия
- Учетная запись Azure с активной подпиской. Создайте аккаунт бесплатно.
- Учетная запись GitHub с активной подпиской GitHub Copilot по любому тарифному плану.
- Один из следующих редакторов:
- Последняя версия Visual Studio Code. Должен быть версии 1.106 или более поздней.
- GitHub Copilot в Visual Studio Code. Инструкции по настройке см. в разделе "Настройка GitHub Copilot" в Visual Studio Code. Обязательно войдите в учетную запись GitHub в Visual Studio Code.
- Модернизация приложения GitHub Copilot. Перезапустите Visual Studio Code после установки.
- Последняя версия IntelliJ IDEA. Должен быть версии 2023.3 или более поздней.
- GitHub Copilot. Должен быть версии 1.5.59 или более поздней. Дополнительные инструкции см. в разделе "Настройка GitHub Copilot" в IntelliJ IDEA. Обязательно войдите в учетную запись GitHub в IntelliJ IDEA.
- Модернизация приложения GitHub Copilot. Перезапустите IntelliJ IDEA после установки.
- Последняя версия Visual Studio Code. Должен быть версии 1.106 или более поздней.
- Java 21 или более поздней версии.
- Maven или Gradle для создания проектов Java.
- Docker установлен и запущен (для контейнеризации).
- Azure CLI установлен и настроен.
Замечание
Если вы используете Gradle, поддерживается только оболочка Gradle версии 5 или более поздней. Язык для конкретного домена Kotlin (DSL) не поддерживается. Функция My Tasks еще не поддерживается для IntelliJ IDEA.
Обновление версий JDK и платформы
Перед миграцией в сервисы контейнерных приложений Azure убедитесь, что ваше приложение Java выполняется на поддерживаемой и актуальной версии JDK. Обновление JDK и платформ сначала гарантирует, что последующие шаги миграции предназначены для современной базы кода.
Существует два способа обновления версии JDK. Оба способа используют область модернизации приложений GitHub Copilot, доступ к которой можно получить с боковой панели в Visual Studio Code.
- Выберите "Обновить среду выполнения" и "Платформы" в разделе QUICKSTART .
- Кроме того, запустите задачу "Обновленная среда выполнения Java " в разделе "ЗАДАЧИ — обновление задач ".
Чтобы обновить платформу Spring или зависимость, не относясь к Корпорации Майкрософт, выполните задачу Upgrade Java Framework в разделе "Задачи — обновление задач ".
Оценка готовности облака для приложений контейнеров Azure
Оценка определяет проблемы готовности облака в базе кода и оценивает их влияние. Он предоставляет конкретные рекомендации для приложений контейнеров Azure.
Настройка оценки
Перед выполнением оценки настройте ее, выбрав Настроить оценку в панели оценки модернизации приложений GitHub Copilot.
Для приложений контейнеров Azure используйте следующую конфигурацию:
appcat:
- target:
- azure-container-apps
os:
- linux
mode: source-only
Запустите оценку
Чтобы выполнить оценку, выполните следующие действия.
На боковой панели выберите область модернизации приложений GitHub Copilot, а затем выберите "Миграция в Azure " или "Выполнить оценку " в разделе "ОЦЕНКА ".
Окно чата GitHub Copilot с режимом агента открывается для вызова оценчика модернизации. Выберите Продолжить для подтверждения.
Специалист по модернизации сначала проверяет вашу локальную среду. Если AppCAT и его зависимости не установлены, агент помогает установить их. После установки агент вызывает AppCAT для оценки проекта. Этот шаг может занять несколько минут.
Когда оценка завершится, оценщик модернизации создает классифицированный обзор проблем готовности облака в отчете об оценке.
Интерпретация отчета об оценке
Отчет об оценке предоставляет комплексные результаты анализа. Отчет состоит из нескольких ключевых разделов:
- Сведения о приложении: основные сведения, включая версию Java, платформы, средства сборки, структуру проекта и целевую службу Azure.
- Сводка по проблеме: обзор проблем миграции, классифицированных по домену, с процентами критических значений.
-
Подробный анализ , организованный на четыре вкладки:
- Проблемы: список проблем, связанных с готовностью к облаку и обновлением Java, которые необходимо устранить.
- Зависимости: все зависимости, упакованные на Java, находятся в приложении.
- Технологии: технологии, сгруппированные по функциям, найденным в проанализированном приложении.
- Аналитика: сведения о файлах и сведения, помогающие понять обнаруженные технологии.
Отчет классифицирует проблемы по следующим уровням критическости:
| Критичность | Описание |
|---|---|
| Обязательный | Проблемы, которые необходимо устранить для миграции в приложения контейнеров Azure. |
| Потенциал | Проблемы, которые могут повлиять на миграцию и нуждаются в проверке. |
| Необязательно | Проблемы с незначительным воздействием. Исправление их рекомендуется, но необязательно. |
Вы можете развернуть каждую сообщаемую проблему, чтобы просмотреть список затронутых файлов и подробное описание, включая проблему, известные решения и поддержку документации.
Управление отчетами об оценке
Расширение поддерживает импорт, экспорт и удаление отчетов об оценке, чтобы вы могли обмениваться результатами с командой или упорядочить рабочую область.
- Импорт: выберите импорт в разделе оценки, чтобы импортировать отчеты из результатов Интерфейса командной строки AppCAT , экспортированного отчета или файла контекста приложения.
- Экспорт: щелкните правой кнопкой мыши отчет об оценке и выберите "Экспорт ", чтобы предоставить общий доступ к отчетам другим пользователям.
- Удалить: щелкните правой кнопкой мыши отчет об оценке и выберите "Удалить ", чтобы удалить отчет.
Устранение проблем с миграцией
После завершения оценки исправьте выявленные проблемы с помощью предопределенных или пользовательских задач. Модернизация приложений GitHub Copilot обеспечивает два подхода: предопределенные задачи, которые решают распространенные шаблоны миграции, а также пользовательские задачи, которые определяются для конкретных потребностей вашей организации.
Выберите агента "AppModernization"
Агент AppModernization обеспечивает оптимальный интерфейс для задач миграции и модернизации приложений Java. Чтобы выбрать его, выполните приведенные далее действия.
- Откройте окно чата Copilot, выбрав значок чата на панели действий.
- В окне чата найдите раскрывающееся меню селектора агента в верхней части поля ввода чата и выберите AppModernization из списка.
Замечание
В Visual Studio Code модернизация приложений использует настраиваемый AppModernization агент с рекомендуемой моделью, выбранной по умолчанию для получения наилучших результатов. Вы можете изменить модель, выбрав "Настроить настраиваемые агенты " в меню "Агент".
При выборе агента AppModernization используйте простые запросы естественного языка для выполнения задач миграции:
-
Миграция базы данных:
migrate to Managed Identity for Azure SQL Database -
Миграция хранилища:
migrate from AWS S3 to Azure Storage Blob -
Миграция сообщений:
migrate from RabbitMQ to Azure Service Bus -
Управление секретами:
migrate secrets to Azure Key Vault -
Миграция проверки подлинности:
migrate to Microsoft Entra ID authentication
Выполнение предопределенных задач миграции
Функция модернизации приложений GitHub Copilot поддерживает следующие предопределенные задачи для миграций приложений контейнеров Azure:
| задачи | Описание |
|---|---|
| Spring RabbitMQ to Azure Service Bus | Преобразует Spring AMQP/JMS с RabbitMQ в служебную шину Azure, сохраняя шаблоны обмена сообщениями и обеспечивая безопасную проверку подлинности. |
| Управляемые удостоверения для миграции базы данных | Подготавливает базу кода для проверки подлинности управляемого удостоверения в Azure SQL Server, Базе данных Azure для MySQL, Базы данных Azure для PostgreSQL, Azure Cosmos DB для API Cassandra и Azure Cosmos DB для MongoDB. |
| Управляемые удостоверения для переноса учетных данных | Преобразует приложения Java для авторизации с помощью управляемого удостоверения Azure для служб обмена сообщениями, таких как Azure Event Hubs и Azure Service Bus, исключая необходимость использования строк подключения. |
| AWS S3 в хранилище объектов BLOB в Azure | Преобразует код, взаимодействующий с AWS S3, в код, который работает с BLOB-объектом службы хранилища Azure, поддерживая ту же семантику. |
| Ведение журнала в локальный файл | Преобразует ведение журнала на основе файлов в ведение журнала на основе консоли, что делает его готовым к интеграции с Azure Monitor. |
| Подключение локальных операций ввода-вывода к общей папке хранилища Azure | Преобразует локальные операции чтения и записи файлов в единый путь подключения, что позволяет монтировать общие папки хранилища Azure в приложениях контейнеров Azure. Дополнительные сведения см. в разделе Подключение хранилища в Azure Container Apps. |
| Служба коммуникации Java Mail в Azure | Преобразует приложения, которые отправляют почту через SMTP, чтобы использовать Службы коммуникации Azure, которые полностью совместимы с размещением контейнеров Azure. |
| Секреты и управление сертификатами в Azure Key Vault | Перенос жестко закодированных секретов и локальных сертификатов TLS/mTLS в Azure Key Vault. Дополнительные сведения см. в статье "Управление секретами в приложениях контейнеров Azure". |
| Проверка подлинности пользователей с идентификатором Microsoft Entra | Преобразует механизмы проверки подлинности локальных пользователей (например, на основе LDAP) в идентификатор Microsoft Entra для проверки подлинности. Дополнительные сведения см. в статье "Проверка подлинности и авторизация" в приложениях контейнеров Azure. |
| Диалект SQL: с Oracle на PostgreSQL | Преобразует запросы SQL, типы данных и собственные функции Oracle в эквиваленты PostgreSQL для использования с Базой данных Azure для PostgreSQL. |
| AWS Secret Manager в Azure Key Vault | Преобразует все аспекты управления секретами из AWS Secret Manager в Azure Key Vault. |
| Служебная шина ActiveMQ в Azure | Преобразует производители сообщений ActiveMQ, потребители, фабрики подключений и взаимодействия с очередью и разделами в эквиваленты служебной шины Azure. |
| AWS SQS в служебную шину Azure | Преобразует конструкции кода, относящиеся к SQS, в аналоги служебной шины Azure, сохраняя семантику обмена сообщениями. |
Применение предопределенной задачи из оценки
- В отчете об оценке выберите нужное решение в области обнаруженной проблемы и выберите команду "Выполнить задачу".
- Откроется окно чата Copilot с режимом агента. Агент создает
plan.mdиprogress.md, и вы можете просмотреть план перед продолжением. - Для подтверждения и запуска процесса миграции вручную введите
continue. - Перед внесением изменений в код агент проверяет состояние системы управления версиями и проверяет новую ветвь.
- Повторно выберите или введите "Продолжить ", чтобы подтвердить использование инструмента и дождитесь завершения изменений кода.
Проверка результатов проверки
После завершения изменения кода агент запускает цикл автоматической проверки, включающий следующие проверки:
- Validate-CVEs: обнаруживает распространенные уязвимости и уязвимости в текущих зависимостях и исправляет их.
- Build-Project: пытается устранить ошибки сборки.
- Проверка согласованности: анализирует код для функциональной согласованности.
- Запуск теста: выполняет модульные тесты и автоматически создает план для устранения сбоев.
- Валидация полноты: Обнаруживает элементы миграции, пропущенные при первоначальной миграции кода, и исправляет их.
После завершения всех проверок введите continue , чтобы создать сводку по миграции. Просмотрите изменения кода и подтвердите, нажав кнопку "Сохранить".
Создание пользовательских задач
В дополнение к предопределенным задачам можно создавать пользовательские задачи на основе конкретных шаблонов миграции организации. Пользовательские задачи используют ссылки на коммиты Git, внешние ссылки или текстовые файлы для направления миграционного агента.
Создание настраиваемой задачи из фиксаций Git
В боковой панели действий откройте панель расширения модернизации приложения GitHub Copilot, наведите указатель мыши на раздел TASKS, а затем выберите Создать настраиваемую задачу.
В открывшемся
task.mdфайле введите имя задачи и запрос задачи.Выберите "Добавить ссылки" и выберите фиксации Git во всплывающем диалоговом окне.
Найдите и выберите соответствующую фиксацию, а затем нажмите кнопку "ОК".
Нажмите Сохранить. Теперь ваша пользовательская задача отображается в разделе ЗАДАЧИ - Мои задачи.
Создание настраиваемой задачи из внешних ссылок и текстовых файлов
task.mdОткройте файл и введите имя задачи и запрос. Рассмотрим пример.-
Имя задачи:
Expose health endpoint via Spring Boot Actuator -
Запрос задачи:
You are a Spring Boot developer assistant, follow the Spring Boot Actuator documentation to add basic health endpoints for Azure Container Apps deployment.
-
Имя задачи:
Выберите "Добавить ссылки", выберите "Внешние ссылки" и вставьте ссылку по URL-адресу. Снова нажмите кнопку "Добавить ссылки" , выберите "Текстовые файлы", а затем добавьте файл с дополнительными инструкциями.
Нажмите кнопку "Сохранить", чтобы создать задачу.
Предоставление общего доступа к пользовательским задачам
Вы можете поделиться пользовательскими задачами с другими участниками команды, предоставив общий доступ к папке задач.
Чтобы предоставить общий доступ к пользовательской задаче, скопируйте папку из .github/appmod/custom-tasks и поделитесь ею с предполагаемым получателем. Получатель вставляет папку задач в каталог .github/appmod/custom-tasks и выбирает «Обновить задачу» в области расширения.
Выполнение настраиваемой задачи
Выберите "Выполнить " в нижней части файла задачи или найдите задачу в разделе "Задачи " Мои задачи " и выберите "Выполнить задачу". Окно чата Copilot открывается в режиме агента и автоматически запускает рабочий процесс миграции.
Если приложение использует базу данных Oracle, перейдите к следующему разделу. В противном случае перейдите к контейнеризации приложения.
Миграция из Oracle в PostgreSQL
Замечание
Этот раздел применяется только в том случае, если приложение использует базу данных Oracle. Если приложение не использует Oracle, перейдите к контейнеризации приложения.
Модернизация приложения GitHub Copilot предоставляет специализированную задачу миграции для сценария миграции из Oracle в базу данных Azure для PostgreSQL, который включает в себя:
- Средства миграции баз данных на основе искусственного интеллекта. Дополнительные сведения см. в статье "Что такое расширение PostgreSQL для предварительной версии Visual Studio Code?".
- Преобразование Smart SQL в коде приложения: встроенные функции преобразования SQL-кода в модернизации приложений GitHub Copilot, легко интегрированные в едином рабочем процессе.
Использование задачи миграции Oracle в PostgreSQL
Запустите оценку приложения, как описано в статье "Оценка готовности облака для приложений контейнеров Azure".
После завершения оценки просмотрите отчет. Если ваше приложение использует Oracle, отчет показывает проблему, связанную с Oracle Database Migration (Oracle), с решением по умолчанию Миграция с Oracle DB на PostgreSQL.
При необходимости проверьте, присутствует ли
coding_notes.mdв папке.github/postgre-migrations/*/results/application_guidance/. Если приложение модернизируется, оно ссылается на эти заметки для улучшения преобразования SQL. В противном случае обратитесь к группе базы данных, чтобы создать их с помощью расширения PostgreSQL Visual Studio Code.Выберите "Выполнить задачу ", чтобы выполнить миграцию.
Контейнеризация приложения
После завершения миграции кода контейнеризируйте приложение Java, чтобы подготовить его к развертыванию в приложениях контейнеров Azure.
Убедитесь, что у вас установлен и запущен Docker.
В Visual Studio Code откройте перенесенный проект.
На боковой панели действий откройте панель расширения для модернизации приложений GitHub Copilot.
В разделе "Задачи " откройте Java, а затем откройте "Задачи контейнеризации " и выберите "Приложение контейнеризации".
Подтвердите каждое действие средства, нажав кнопку "Продолжить " при появлении запроса.
Copilot проходит следующие действия:
- Проверяет, установлен и запущен Docker.
- Проверяет, готов ли код приложения к выполнению в контейнере.
- Создает Dockerfile для каждого проекта.
- Создает образы Docker для каждого проекта.
- Создает сводку результатов контейнеризации.
Замечание
Для получения наилучших результатов используйте последнюю рекомендуемую модель, показанную в параметрах агента расширения. Copilot может потребоваться несколько итераций для исправления ошибок контейнеризации.
Дополнительные сведения о средствах контейнеризации см. в репозитории для поддержки контейнеризации на GitHub.
Развертывание в приложениях контейнеров Azure
После контейнеризации приложения разверните его в приложениях контейнеров Azure.
В Visual Studio Code откройте перенесенный проект.
На панели активности откройте раздел расширения для модернизации приложения GitHub Copilot.
В разделе "Задачи " откройте Java, а затем откройте "Задачи развертывания " и выберите один из следующих вариантов развертывания:
- Развертывание в существующей инфраструктуре Azure: Copilot запрашивает существующую группу ресурсов и развертывает соответствующие ресурсы.
- Подготовка инфраструктуры и развертывание в Azure: Copilot создает новые ресурсы Azure и развертывает проект.
Подтвердите каждое действие средства, нажав кнопку "Продолжить " при появлении запроса, и укажите необходимые сведения, такие как подписка и группа ресурсов.
Copilot проходит следующие действия:
- Создает файл markdown плана развертывания с целью развертывания, сведениями о проекте, архитектурой ресурсов Azure, ресурсами Azure и этапами выполнения.
- Выполняет шаги, предусмотренные в плане.
- Исправляет ошибки развертывания.
- Создает сводный файл, объясняющий результаты развертывания.
Замечание
Для получения наилучших результатов используйте последнюю рекомендуемую модель, показанную в параметрах агента расширения. Для исправления ошибок развертывания Copilot может потребоваться несколько итераций.
Лучшие практики после миграции
После переноса приложения Java в приложения контейнеров Azure рассмотрите следующие рекомендации.
- Настройте пробы работоспособности: настройте пробы работоспособности , чтобы приложения контейнеров Azure могли отслеживать работоспособность приложения.
- Настройка ведения журнала. Настройка ведения журнала на основе консоли для интеграции с Azure Monitor для централизованной агрегирования и анализа журналов.
- Настройте правила масштабирования: настройте правила масштабирования на основе ТРАФИКА HTTP, ЦП, памяти или пользовательских метрик для обработки различных рабочих нагрузок.
- Управление секретами. Используйтеуправление секретами контейнеров Azure или Azure Key Vault для безопасного хранения и доступа к конфиденциальным значениям конфигурации.
- Настройте конвейеры CI/CD: автоматизация конвейера развертывания с помощью GitHub Actions или Azure Pipelines для непрерывной интеграции и доставки.
- Включите зеленые развертывания: используйте редакции и разделение трафика для реализации развертываний без простоя.
- Настройка пользовательских доменов: настройка пользовательских доменов и сертификатов для рабочего трафика.
- Мониторинг с помощью метрик и оповещений: используйте метрики и оповещения для упреждающего мониторинга работоспособности и производительности приложений.
- Включение избыточности зоны: настройка избыточности зоны для обеспечения высокой доступности в зонах доступности.
Связанный контент
- Документация по модернизации приложений GitHub Copilot
- Модернизация приложений GitHub Copilot для разработчиков Java
- Предопределенные задачи для модернизации приложений GitHub Copilot
- Общие сведения о приложениях контейнеров Azure
- Краткое руководство по началу работы: Развертывание вашего первого контейнерного приложения