Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans cet article, vous allez apprendre à utiliser la modernisation des applications GitHub Copilot pour évaluer, corriger, conteneuriser et déployer des applications Java dans Azure Container Apps. La modernisation des applications avec GitHub Copilot est un assistant alimenté par l'IA qui combine GitHub Copilot avec des outils open source tels que OpenRewrite pour automatiser les étapes complexes de mise à niveau et de migration.
L’outil prend en charge les projets Maven et Gradle, cible les mises à niveau entre les versions 8, 11, 17 et 21 de Java et se concentre sur la modernisation des applications Spring Boot. Il fournit des tâches prédéfinies pour les scénarios de migration courants et intègre les meilleures pratiques pour l’exécution d’applications sur Azure Container Apps.
Prerequisites
- Un compte Azure avec un abonnement actif. Créez-en un gratuitement.
- Un compte GitHub avec un abonnement GitHub Copilot actif sous n’importe quel plan.
- L’un des éditeurs suivants :
- Dernière version de Visual Studio Code. Doit être version 1.106 ou ultérieure.
- GitHub Copilot dans Visual Studio Code. Pour obtenir des instructions d’installation, consultez Configurer GitHub Copilot dans Visual Studio Code. Veillez à vous connecter à votre compte GitHub dans Visual Studio Code.
- Modernisation des applications GitHub Copilot. Redémarrez Visual Studio Code après l’installation.
- Dernière version d’IntelliJ IDEA. Doit être version 2023.3 ou ultérieure.
- GitHub Copilot. Doit être version 1.5.59 ou ultérieure. Pour plus d’instructions, consultez Configurer GitHub Copilot dans IntelliJ IDEA. Veillez à vous connecter à votre compte GitHub dans IntelliJ IDEA.
- Modernisation des applications GitHub Copilot. Redémarrez IntelliJ IDEA après l’installation.
- Dernière version de Visual Studio Code. Doit être version 1.106 ou ultérieure.
- Java 21 ou version ultérieure.
- Maven ou Gradle pour générer des projets Java.
- Docker installé et en cours d’exécution (pour la conteneurisation).
- Azure CLI installé et configuré.
Note
Si vous utilisez Gradle, seul le wrapper Gradle version 5 ou ultérieure est pris en charge. Le langage DSL (Domain Specific Language) Kotlin n’est pas pris en charge. La fonction My Tasks n’est pas encore prise en charge pour IntelliJ IDEA.
Mettre à niveau JDK et les versions du framework
Avant de migrer vers Azure Container Apps, vérifiez que votre application Java s’exécute sur une version JDK prise en charge et up-to-date. La mise à niveau de votre JDK et de vos frameworks garantit d’abord que les étapes de migration suivantes ciblent une base de code moderne.
Il existe deux façons de mettre à niveau votre version JDK. Les deux méthodes utilisent le volet de modernisation des applications GitHub Copilot, auquel vous pouvez accéder à partir de la barre latérale dans Visual Studio Code.
- Sélectionnez Mettre à niveau le runtime et les frameworks dans la section DÉMARRAGE RAPIDE .
- Vous pouvez également exécuter la tâche d’exécution Java mise à niveau dans la section TÂCHES - Mettre à niveau les tâches .
Pour mettre à niveau l’infrastructure Spring ou une dépendance non-Microsoft, exécutez la tâche Mettre à niveau Java Framework dans la section TÂCHES - Mettre à niveau les tâches .
Évaluer la préparation du cloud pour Azure Container Apps
L’évaluation identifie les défis de préparation du cloud dans votre codebase et évalue leur impact. Il fournit des recommandations spécifiques pour Azure Container Apps.
Configurer l’évaluation
Avant d’exécuter l’évaluation, configurez-la en sélectionnant Configurer l’évaluation dans le volet Évaluation de la modernisation des applications GitHub Copilot.
Pour Azure Container Apps, utilisez la configuration suivante :
appcat:
- target:
- azure-container-apps
os:
- linux
mode: source-only
Exécuter l’évaluation
Pour exécuter l’évaluation, procédez comme suit :
Dans la barre latérale, sélectionnez le volet de modernisation des applications GitHub Copilot, puis migrez vers Azure ou Exécutez l’évaluation dans la section ASSESSMENT .
La fenêtre de conversation GitHub Copilot avec le mode agent s’ouvre pour appeler l’évaluateur de modernisation. Sélectionnez Continuer pour confirmer.
L’évaluateur de modernisation vérifie d’abord votre environnement local. Si AppCAT et ses dépendances ne sont pas installés, l’agent vous aide à les installer. Après l’installation, l’agent appelle AppCAT pour évaluer votre projet. Cette étape peut prendre plusieurs minutes.
Une fois l’évaluation terminée, l’évaluateur de modernisation produit une vue catégorisée des problèmes de préparation du cloud dans le rapport d’évaluation.
Interpréter le rapport d’évaluation
Le rapport d’évaluation fournit des résultats d’analyse complets. Le rapport se compose de plusieurs sections clés :
- Informations sur l’application : informations de base, notamment la version Java, les frameworks, les outils de génération, la structure de projet et le service Azure cible.
- Résumé du problème : vue d’ensemble des problèmes de migration classés par domaine avec des pourcentages de criticité.
-
Analyse détaillée organisée en quatre onglets :
- Problèmes : liste classée des problèmes de préparation du cloud et de mise à niveau Java que vous devez résoudre.
- Dépendances : toutes les dépendances empaquetées Java trouvées dans l’application.
- Technologies : technologies regroupées par fonction trouvées dans l’application analysée.
- Insights : Informations et détails de fichier pour vous aider à comprendre les technologies détectées.
Le rapport catégorise les problèmes par les niveaux de criticité suivants :
| Criticité | Description |
|---|---|
| Obligatoire | Problèmes que vous devez résoudre pour la migration vers Azure Container Apps. |
| Potentiel | Problèmes susceptibles d’affecter la migration et d’avoir besoin d’un examen. |
| Optionnel | Problèmes à faible impact. Les corriger est recommandé mais facultatif. |
Vous pouvez développer chaque problème signalé pour afficher une liste de fichiers impactés et une description détaillée, notamment le problème, les solutions connues et la documentation de prise en charge.
Gérer les rapports d’évaluation
L’extension prend en charge l’importation, l’exportation et la suppression de rapports d’évaluation afin de pouvoir partager des résultats avec votre équipe ou maintenir votre espace de travail organisé.
- Importation : sélectionnez Importer dans la section d’évaluation pour importer des rapports à partir des résultats de l’interface CLI AppCAT , d’un rapport exporté ou d’un fichier de contexte d’application.
- Exporter : cliquez avec le bouton droit sur Rapport d’évaluation et sélectionnez Exporter pour partager des rapports avec d’autres utilisateurs.
- Supprimer : cliquez avec le bouton droit sur Rapport d’évaluation , puis sélectionnez Supprimer pour supprimer un rapport.
Corriger les problèmes de migration
Une fois l’évaluation terminée, corrigez les problèmes identifiés à l’aide de tâches prédéfinies ou personnalisées. La modernisation des applications Copilot GitHub fournit deux approches : les tâches prédéfinies qui répondent aux modèles de migration courants et les tâches personnalisées que vous définissez pour les besoins spécifiques de votre organisation.
Sélectionnez l’agent AppModernization
L’agent AppModernization offre la meilleure expérience pour les tâches de migration et de modernisation des applications Java. Pour le sélectionner :
- Ouvrez la fenêtre de conversation Copilot en sélectionnant l’icône de conversation dans la barre d’activité.
- Dans la fenêtre de conversation, recherchez le menu déroulant sélecteur d’agent en haut de la zone d’entrée de conversation et sélectionnez AppModernization dans la liste.
Note
Dans Visual Studio Code, la modernisation des applications utilise l’agent AppModernization personnalisé avec le modèle recommandé sélectionné par défaut pour obtenir les meilleurs résultats. Vous pouvez modifier le modèle en sélectionnant Configurer des agents personnalisés dans le menu Agent.
Avec l’agent AppModernization sélectionné, utilisez des invites de langage naturel simples pour effectuer des tâches de migration :
-
Migration de base de données :
migrate to Managed Identity for Azure SQL Database -
Migration du stockage :
migrate from AWS S3 to Azure Storage Blob -
Migration de messagerie :
migrate from RabbitMQ to Azure Service Bus -
Gestion des secrets :
migrate secrets to Azure Key Vault - Migration de l’authentification :
Exécuter des tâches de migration prédéfinies
La fonctionnalité de modernisation des applications GitHub Copilot prend en charge les tâches prédéfinies suivantes pour les migrations Azure Container Apps :
| Tâche | Description |
|---|---|
| Migration de Spring RabbitMQ vers Azure Service Bus | Convertit Spring AMQP/JMS avec RabbitMQ en Azure Service Bus, en préservant les modèles de messagerie et en activant l’authentification sécurisée. |
| Identités managées pour la migration de base de données | Prépare votre codebase pour l’authentification d’identité managée sur Azure SQL Server, Azure Database pour MySQL, Azure Database pour PostgreSQL, Azure Cosmos DB pour l’API Cassandra et Azure Cosmos DB pour MongoDB. |
| Identités managées pour la migration des informations d’identification | Transforme vos applications Java pour utiliser l’authentification Azure Managed Identity pour les services de messagerie tels qu’Azure Event Hubs et Azure Service Bus, éliminant ainsi les chaînes de connexion. |
| AWS S3 vers Azure Blob Storage | Convertit le code interagissant avec AWS S3 en code fonctionnant avec Azure Storage Blob, tout en conservant la même sémantique. |
| Journalisation dans un fichier local | Convertit la journalisation basée sur les fichiers en journalisation basée sur la console, ce qui le rend prêt pour l’intégration à Azure Monitor. |
| E/S de fichier local vers des montages de partages de fichiers Stockage Azure | Convertit les lectures et écritures de fichiers locaux en accès via un chemin de montage unifié, permettant le montage de partages de fichiers Azure Storage sur Azure Container Apps. Pour plus d’informations, consultez Utilisez les montages de stockage dans Azure Container Apps. |
| Messagerie Java vers Azure Communication Service | Convertit les applications qui envoient du courrier via SMTP pour utiliser Azure Communication Services, qui est entièrement compatible avec l’hébergement d’Azure Container Apps. |
| Secrets et Gestion des Certificats pour Azure Key Vault | Migre les secrets codés en dur et les certificats TLS/mTLS locaux vers Azure Key Vault. Pour plus d’informations, consultez Gérer les secrets dans Azure Container Apps. |
| Authentification de l’utilisateur auprès de l’ID Microsoft Entra | Transfère les mécanismes d’authentification des utilisateurs locaux (par exemple, basés sur LDAP) vers l’ID Microsoft Entra pour l’authentification. Pour plus d’informations, consultez la page Authentification et autorisation dans Azure Container Apps. |
| Dialecte SQL : Oracle vers PostgreSQL | Convertit les requêtes SQL spécifiques à Oracle, les types de données et les fonctions propriétaires en équivalents PostgreSQL à utiliser avec Azure Database pour PostgreSQL. |
| AWS Secret Manager vers Azure Key Vault | Transforme tous les aspects de la gestion des secrets d’AWS Secret Manager vers Azure Key Vault. |
| ActiveMQ to Azure Service Bus | Convertit les producteurs de messages ActiveMQ, les consommateurs, les fabriques de connexions et les interactions de file d’attente/sujets en équivalents Azure Service Bus. |
| AWS SQS vers Azure Service Bus | Traduit des constructions de code propres à SQS en équivalents Azure Service Bus, en préservant la sémantique de messagerie. |
Appliquer une tâche prédéfinie à partir de l’évaluation
- Dans le rapport d’évaluation, sélectionnez la solution souhaitée sous un problème détecté et sélectionnez Exécuter la tâche.
- La fenêtre de conversation Copilot s’ouvre avec le mode Agent. L’agent génère
plan.mdetprogress.md, et vous pouvez passer en revue le plan avant de continuer. -
continueEntrez manuellement pour confirmer et démarrer le processus de migration. - Avant d’apporter des modifications de code, le programme vérifie l’état du système de contrôle de version et crée une nouvelle branche.
- Répétez la sélection ou appuyez sur Continuer pour confirmer l'utilisation de l'outil et attendez que les modifications du code soient terminées.
Passer en revue les résultats de validation
Une fois que vous avez terminé les modifications du code, l’agent exécute une boucle de validation automatique qui inclut les vérifications suivantes :
- Validate-CVEs : détecte les vulnérabilités et les expositions courantes dans les dépendances actuelles et les corrige.
- Build-Project : tente de résoudre les erreurs de build.
- Validation de cohérence : analyse le code pour la cohérence fonctionnelle.
- Run-Test : exécute des tests unitaires et génère automatiquement un plan pour corriger les défaillances.
- Validation de l’intégrité : intercepte les éléments de migration manqués dans la migration initiale du code et les corrige.
Une fois toutes les vérifications terminées, entrez continue pour générer le résumé de la migration. Passez en revue les modifications du code et confirmez en sélectionnant Conserver.
Créer des tâches personnalisées
En plus des tâches prédéfinies, vous pouvez créer des tâches personnalisées en fonction des modèles de migration spécifiques de votre organisation. Les tâches personnalisées utilisent des références à partir de validations Git, de liens externes ou de fichiers texte pour guider l’agent de migration.
Créer une tâche personnalisée à partir de validations Git
Dans la barre latérale de l’activité, ouvrez le volet d’extension de modernisation des applications GitHub Copilot, pointez sur la section TÂCHES , puis sélectionnez Créer une tâche personnalisée.
Dans le fichier ouvert
task.md, entrez le nom de la tâche et l'instruction de la tâche.Sélectionnez Ajouter des références , puis sélectionnez Validations Git dans la boîte de dialogue contextuelle.
Recherchez et sélectionnez la validation appropriée, puis sélectionnez OK.
Cliquez sur Enregistrer. Votre tâche personnalisée apparaît maintenant dans la section TÂCHES - Mes tâches .
Créer une tâche personnalisée à partir de liens externes et de fichiers texte
Ouvrez le fichier
task.mdet entrez le nom et l'invite de la tâche. Par exemple:-
Nom de la tâche :
Expose health endpoint via Spring Boot Actuator -
Invite de commande :
You are a Spring Boot developer assistant, follow the Spring Boot Actuator documentation to add basic health endpoints for Azure Container Apps deployment.
-
Nom de la tâche :
Sélectionnez Ajouter des références, sélectionnez Liens externes, puis collez la référence d’URL. Sélectionnez à nouveau Ajouter des références , sélectionnez Fichiers texte, puis ajoutez un fichier avec des instructions supplémentaires.
Sélectionnez Enregistrer pour créer la tâche.
Partager des tâches personnalisées
Vous pouvez partager des tâches personnalisées avec d’autres membres de l’équipe en partageant le dossier des tâches.
Pour partager une tâche personnalisée, copiez le dossier sous .github/appmod/custom-tasks et partagez-le avec le destinataire prévu. Le destinataire colle le dossier des tâches dans le .github/appmod/custom-tasks répertoire et sélectionne Actualiser la tâche dans le volet d’extension.
Exécuter une tâche personnalisée
Sélectionnez Exécuter en bas du fichier de tâches, ou recherchez votre tâche dans la section TÂCHES - Mes tâches , puis sélectionnez Exécuter la tâche. La fenêtre de conversation Copilot s’ouvre en mode Agent et exécute automatiquement le flux de travail de migration.
Si votre application utilise une base de données Oracle, passez à la section suivante. Sinon, passez à Conteneurisez votre application.
Migrer d’Oracle vers PostgreSQL
Note
Cette section s’applique uniquement si votre application utilise une base de données Oracle. Si votre application n’utilise pas Oracle, passez à Containerize votre application.
La modernisation des applications GitHub Copilot fournit une tâche de migration dédiée pour le scénario Oracle vers Azure Database pour PostgreSQL qui inclut :
- Outils de migration de base de données optimisés pour l’IA : pour plus d’informations, consultez Qu’est-ce que l’extension PostgreSQL pour Visual Studio Code en préversion ?.
- Conversion SQL intelligente dans le code de l’application : fonctionnalité de conversion SQL intégrée dans la modernisation des applications GitHub Copilot, intégrée en toute transparence dans le cadre d’un flux de travail de tâche unifié.
Utiliser la tâche de migration Oracle vers PostgreSQL
Exécutez l’évaluation de l’application comme décrit dans Évaluer la préparation du cloud pour Azure Container Apps.
Une fois l’évaluation terminée, passez en revue le rapport. Si votre application utilise Oracle, le rapport révèle un problème lié à Oracle Database Migration (Oracle) avec la solution par défaut Migrer d’Oracle DB vers PostgreSQL.
Si vous le souhaitez, vérifiez si
coding_notes.mdest présent dans le répertoire.github/postgre-migrations/*/results/application_guidance/. Si elle est présente, la modernisation des applications fait référence à ces notes pour une conversion SQL de meilleure qualité. Si ce n’est pas le cas, contactez votre équipe de base de données pour les générer à l’aide de l’extension PostgreSQL Visual Studio Code.Sélectionnez Exécuter la tâche pour exécuter la migration.
Conteneuriser votre application
Une fois la migration du code terminée, conteneurisez votre application Java pour la préparer au déploiement sur Azure Container Apps.
Vérifiez que Docker est installé et en cours d’exécution.
Dans Visual Studio Code, ouvrez votre projet migré.
Dans la barre latérale de l’activité, ouvrez le volet d’extension de modernisation des applications GitHub Copilot.
Dans la section Tâches , ouvrez Java, puis ouvrez Containerize Tasks et sélectionnez Containerize Application.
Confirmez chaque action d’outil en sélectionnant Continuer lorsque vous y êtes invité.
Copilot effectue les étapes suivantes :
- Vérifie que Docker est installé et en cours d’exécution.
- Vérifie que le code de l’application est prêt à s’exécuter dans un conteneur.
- Crée un fichier Dockerfile pour chaque projet.
- Génère des images Docker pour chaque projet.
- Crée un résumé des résultats de conteneurisation.
Note
Pour obtenir les meilleurs résultats, utilisez le dernier modèle recommandé indiqué dans les paramètres de l’agent de l’extension. Copilot peut prendre quelques itérations pour corriger les erreurs de conteneurisation.
Pour plus d’informations sur les outils de conteneurisation, consultez le référentiel containerization-assist sur GitHub.
Déployer sur Azure Container Apps
Après avoir conteneurisé votre application, déployez-la sur Azure Container Apps.
Dans Visual Studio Code, ouvrez votre projet migré.
Dans la barre latérale de l’activité, ouvrez le volet de l'extension GitHub Copilot pour la modernisation des applications.
Dans la section Tâches , ouvrez Java, puis ouvrez Tâches de déploiement, puis sélectionnez l’une des options de déploiement suivantes :
- Déployer sur l’infrastructure Azure existante : Copilot demande votre groupe de ressources existant et se déploie sur les ressources correspondantes.
- Provisionner l’infrastructure et déployer sur Azure : Copilot crée de nouvelles ressources Azure et déploie votre projet.
Confirmez chaque action d’outil en sélectionnant Continuer lorsque vous y êtes invité et fournissez les informations requises, telles que l’abonnement et le groupe de ressources.
Copilot effectue les étapes suivantes :
- Génère un fichier markdown de plan de déploiement avec l’objectif de déploiement, les informations du projet, l’architecture des ressources Azure, les ressources Azure et les étapes d’exécution.
- Suit les étapes d’exécution du plan.
- Corrige les erreurs de déploiement.
- Génère un fichier récapitulative qui explique les résultats du déploiement.
Note
Pour obtenir les meilleurs résultats, utilisez le dernier modèle recommandé indiqué dans les paramètres de l’agent de l’extension. Copilot peut prendre quelques itérations pour corriger les erreurs de déploiement.
Bonnes pratiques après la migration
Après avoir migré votre application Java vers Azure Container Apps, tenez compte des meilleures pratiques suivantes :
- Configurer des sondes d’intégrité : configurez des sondes d’intégrité pour permettre à Azure Container Apps de surveiller l’intégrité de votre application.
- Configurer la journalisation : configurez la journalisation basée sur la console pour l’intégration à Azure Monitor pour l’agrégation et l’analyse centralisées des journaux.
- Configurer des règles de mise à l’échelle : configurez des règles de mise à l’échelle en fonction du trafic HTTP, du processeur, de la mémoire ou des métriques personnalisées pour gérer différentes charges de travail.
- Gérer les secrets : utilisez la gestion des secrets Azure Container Apps ou Azure Key Vault pour stocker et accéder en toute sécurité aux valeurs de configuration sensibles.
- Configurer des pipelines CI/CD : automatisez votre pipeline de déploiement à l’aide de GitHub Actions ou d’Azure Pipelines pour l’intégration et la livraison continues.
- Activer les déploiements bleu-vert : utilisez les révisions et le fractionnement du trafic pour implémenter des déploiements sans temps d’arrêt.
- Configurer des domaines personnalisés : configurez des domaines et des certificats personnalisés pour le trafic de production.
- Surveiller avec des métriques et des alertes : utilisez des métriques et des alertes pour surveiller de manière proactive l’intégrité et les performances des applications.
- Activer la redondance de zone : configurez la redondance de zone pour la haute disponibilité entre les zones de disponibilité.
Contenu connexe
- Documentation sur la modernisation des applications GitHub Copilot
- Modernisation des applications GitHub Copilot pour les développeurs Java
- Tâches prédéfinies pour la modernisation des applications GitHub Copilot
- Vue d’ensemble d’Azure Container Apps
- Démarrage rapide : Déployer votre première application conteneur