Évaluer les applications Java pour la modernisation

Cette page vous explique comment utiliser Google Cloud Modernization Hub dans la consoleGoogle Cloud pour évaluer les applications Java d'entreprise en vue de leur conteneurisation Linux et de leur modernisation vers des versions Java LTS (Long-Term Support) multiplates-formes (telles que Java 17 ou Java 21) sur Google Cloud.

De nombreuses applications Java d'entreprise dépendent d'anciennes API Java EE, de configurations de serveur d'application propriétaires (telles que WebLogic, WebSphere ou JBoss) ou de bibliothèques tierces obsolètes qui empêchent le déploiement direct dans des conteneurs Linux. Une évaluation automatisée dans Modernization Hub analyse votre code source, identifie les obstacles à la migration, évalue la compatibilité des dépendances Maven ou Gradle, et recommande des chemins de refactoring pour Cloud Run ou Google Kubernetes Engine.

Quand utiliser une évaluation d'application Java ?

Exécutez une évaluation d'application Java lorsque vous prévoyez d'effectuer l'une des opérations suivantes :

  • Changer de plate-forme pour les conteneurs Linux : identifiez les dépendances spécifiques à l'environnement (telles que l'accès au système de fichiers local, les bibliothèques JNI ou les API de serveur d'application propriétaires) avant de conteneuriser les applications pour Cloud Run ou GKE.
  • Mettre à niveau les versions de l'environnement d'exécution Java : évaluez l'effort et les écarts de compatibilité lors de la migration de Java 8 ou Java 11 vers les versions LTS modernes de Java (Java 17 ou Java 21), ou lors du passage de Java EE (javax.*) à Jakarta EE (jakarta.*).
  • Découplage des architectures monolithiques : découvrez les composants EJB étroitement couplés, les courtiers de messages JMS ou les déploiements WAR et EAR monolithiques qui nécessitent une refactorisation en microservices cloud natifs ou en applications Spring Boot.

Avant de commencer

Avant de lancer une tâche d'évaluation Java dans la console, activez les API requises, vérifiez les autorisations IAM (Identity and Access Management) de votre projet, enregistrez un bucket de paramètres d'espace de travail et importez votre archive de code source dans Cloud Storage.

Activer les API requises

Pour utiliser Modernization Hub, activez les API de service Google Cloudrequises dans votre projet :

gcloud services enable \
    aiplatform.googleapis.com \
    artifactregistry.googleapis.com \
    cloudbuild.googleapis.com \
    cloudresourcemanager.googleapis.com \
    compute.googleapis.com \
    logging.googleapis.com \
    storage.googleapis.com \
    --project=PROJECT_ID

Remplacez PROJECT_ID par l'ID du projet Google Cloud .

Rôles requis

Pour exécuter une évaluation, deux identités ont besoin d'autorisations IAM distinctes lorsqu'elles utilisent Cloud Build et Gemini Enterprise Agent Platform :

  • Utilisateur de la console authentifié (qui lance le job et accède aux buckets) :
    • Administrateur de l'espace de stockage (roles/storage.admin)
    • Utilisateur du compte de service (roles/iam.serviceAccountUser)
    • Éditeur Cloud Build (roles/cloudbuild.builds.editor)
  • Compte de service dédié (exécutant le conteneur d'évaluation) :
    • Utilisateur Agent Platform (roles/aiplatform.user)
    • Utilisateur d'objets de l'espace de stockage (roles/storage.objectUser) ou Administrateur de l'espace de stockage (roles/storage.admin)

Pour obtenir les autorisations nécessaires pour lancer une évaluation et exécuter le conteneur d'analyse, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet :

  • Utilisateur : pour gérer les archives sources et les configurations de buckets : administrateur de l'espace de stockage (roles/storage.admin)
  • Utilisateur : associez le compte de service dédié au job : Utilisateur du compte de service (roles/iam.serviceAccountUser)
  • Utilisateur : envoie des jobs d'évaluation (cloudbuild.builds.create) et affiche les journaux : Éditeur Cloud Build (roles/cloudbuild.builds.editor)
  • Compte de service : exécutez le conteneur codmod : Utilisateur Agent Platform (roles/aiplatform.user)
  • Compte de service : lire les archives sources et écrire les rapports d'évaluation : Utilisateur des objets Storage (roles/storage.objectUser) ou Administrateur Storage (roles/storage.admin)

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ces rôles prédéfinis contiennent les autorisations requises pour lancer une évaluation et exécuter le conteneur d'analyse. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour lancer une évaluation et exécuter le conteneur d'analyse :

  • Utilisateur (Cloud Storage, Cloud Build et IAM) :
    • storage.objects.get (pour télécharger ou lire des fichiers)
    • storage.objects.list (pour lister les fichiers dans le bucket)
    • storage.objects.create (pour importer ou créer des fichiers)
    • storage.objects.update (pour modifier les métadonnées des fichiers existants)
    • storage.objects.delete (pour supprimer ou écraser des fichiers)
    • storage.buckets.get (Afficher les configurations au niveau du bucket)
    • cloudbuild.builds.create (pour envoyer des tâches d'évaluation)
    • iam.serviceAccounts.actAs (pour associer le compte de service au job)
  • Compte de service (Agent Platform et Cloud Storage) :
    • aiplatform.endpoints.predict (pour exécuter l'analyse du code assistée par l'IA)
    • storage.objects.get (pour lire ou télécharger les archives sources)
    • storage.objects.list (pour lister les fichiers du dossier d'entrée)
    • storage.objects.create (pour rédiger des rapports d'évaluation)
    • storage.objects.delete (pour supprimer les fichiers temporaires)

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Configurer un bucket de paramètres d'espace de travail

Enregistrez un bucket Cloud Storage désigné sur la page Modernization Hub > Paramètres (par exemple, gs://PROJECT_ID-modernization-hub) pour stocker les fichiers d'état binaires de l'espace de travail (dotnet_jobs.pb, java_jobs.pb et mainframe_jobs.pb).

Examiner les limites de taille du codebase

Pour maintenir des performances optimales, le moteur d'évaluation codmod applique les consignes suivantes concernant l'échelle et l'archivage :

  • Taille maximale du code : environ six millions de lignes de code par job d'évaluation. Si votre dépôt dépasse six millions de lignes de code, divisez la base de code en modules ou services plus petits et indépendants avant de l'importer.
  • Structure d'archive propre : excluez les binaires compilés, les caches de packages et les métadonnées de contrôle des versions (telles que target/, build/, bin/, node_modules/ et .git/) de votre fichier ZIP afin que seuls les fichiers sources et les configurations de compilation soient analysés.

Préparer et importer votre archive de sources Java

Empaquetez votre code Java sous forme de fichier ZIP qui exclut les résultats de compilation, puis importez le fichier dans un bucket Cloud Storage de votre projet.

  1. Sur votre ordinateur local, créez un fichier ZIP de votre dépôt à l'aide de l'une des méthodes suivantes :

    • Utiliser Git (recommandé) :

      git archive --format=zip -o repository.zip HEAD
      
    • Utiliser la CLI zip :

      zip -r repository.zip . \
          -x "*.git*" "*/target/*" "*/build/*" "*/bin/*" "*/node_modules/*"
      
  2. Importez le fichier ZIP dans votre bucket Cloud Storage cible à l'aide de Google Cloud CLI :

    gcloud storage cp repository.zip \
        gs://INPUT_BUCKET/codebase/repository.zip
    

    Remplacez INPUT_BUCKET par le nom de votre bucket Cloud Storage cible.

Exécuter une évaluation

Pour lancer un job d'évaluation dans Modernization Hub, procédez comme suit :

  1. Dans la console, accédez à la page Modernization Hub.

    Accéder au Modernization Hub

  2. Sur la page de destination, recherchez la fiche Charges de travail Java, puis cliquez sur Démarrer l'évaluation.

  3. Dans le champ Nom du job, saisissez un nom unique pour votre job d'évaluation.

  4. Dans le champ Emplacement du code source, sélectionnez un bucket Cloud Storage contenant votre code source sous forme de fichier ZIP.

  5. Dans le champ Emplacement du rapport, sélectionnez un bucket Cloud Storage pour enregistrer les rapports d'évaluation générés.

  6. Dans la liste Recette de modernisation, sélectionnez une recette de modernisation.

  7. Dans la liste Emplacement, sélectionnez une région pour votre tâche d'évaluation.

  8. Dans le champ Compte de service, sélectionnez un compte de service dédié disposant des rôles IAM requis listés dans la section Rôles requis. Cloud Build exécute le job d'évaluation sous ce compte de service, qui nécessite les autorisations Utilisateur Agent Platform et Cloud Storage.

  9. Cliquez sur Générer un rapport.

    La console démarre un conteneur d'évaluation en arrière-plan exécutant le moteur codmod pour analyser votre projet. L'état de la tâche s'affiche dans le tableau Historique des évaluations.

Examiner le rapport d'évaluation

Selon la taille de votre code, les tâches d'évaluation se terminent généralement en quelques minutes. Le conteneur d'arrière-plan se termine automatiquement une fois le traitement terminé.

Pour accéder aux résultats de votre évaluation :

  1. Dans le tableau Historique des évaluations de la page Modernization Hub, recherchez votre tâche d'évaluation.
  2. Lorsque la colonne État passe à Terminé, cliquez sur Télécharger le rapport.
  3. Sélectionnez le format de sortie de votre choix :
    • Rapport HTML : récapitulatif interactif qui vous permet de filtrer les API incompatibles, d'inspecter les listes de bloqueurs fichier par fichier et d'afficher des suggestions de correction.
    • Rapport Markdown : résumé exécutif mis en forme, adapté au partage avec les parties prenantes et les comités d'examen de l'architecture.

Examiner le rapport d'évaluation

Le rapport d'évaluation généré classe l'état de préparation de la migration de votre application dans plusieurs domaines clés :

  • Score de compatibilité global : pourcentage de lignes sources et de dépendances pouvant migrer vers l'environnement d'exécution Java cible sans modification.
  • Répartition des bloqueurs : dépendances Java ou contraintes d'environnement spécifiques qui nécessitent une refactorisation, par exemple :
    • Modifications de l'espace de noms de Java EE (javax.*) à Jakarta EE (jakarta.*).
    • Suppression ou obsolescence des API internes du JDK (telles que les packages sun.misc.* ou les modules CORBA).
    • Configurations ou API de serveur d'application propriétaires (telles que les descripteurs de déploiement WebLogic, WebSphere ou JBoss).
  • Analyse des dépendances : inventaire détaillé des dépendances Maven ou Gradle existantes, indiquant si chaque bibliothèque est compatible avec la version cible du runtime Java ou si une mise à niveau est requise.
  • Actions recommandées : transformations de code suggérées, recettes de refactoring assistées par l'IA et chemins de migration générés par codmod pour préparer votre application à la conteneurisation sur Google Cloud.

Étapes suivantes