Créer une évaluation de la modernisation des applications

L'évaluation de la modernisation des applications Migration Center (codmod) est un outil optimisé par l'IA qui automatise le processus d'évaluation de la modernisation de votre application. Cette page décrit les étapes à suivre pour installer, utiliser et dépanner l'outil codmod.

À propos de l'évaluation de la modernisation des applications

Le processus d'évaluation de la modernisation prend généralement quelques semaines et nécessite beaucoup d'expertise. En automatisant ce processus, l'outil codmod réduit considérablement ce délai à quelques heures.

Cet outil vise à fournir des informations basées sur des preuves concernant l'architecture et les fonctionnalités de l'application actuelle, ainsi que les éventuels bloqueurs susceptibles de ralentir la transformation vers le cloud.

Cet outil est destiné aux rôles suivants :

  • Architectes informatiques
  • Décisionnaires
  • Propriétaires d'applications

L'outil codmod vise à accélérer la transformation des applications en offrant une visibilité claire sur les modifications requises et les avantages obtenus en transformant l'application en Google Cloud. codmod est un outil CLI portable qui utilise Gemini pour analyser le code source et fournit des recommandations basées sur les bonnes pratiques de Google Cloud .

Avant de commencer

L'outil codmod nécessite les conditions préalables suivantes :

  • Un poste de travail Linux ou Windows (10 ou version ultérieure).
  • Accès à un projet Google Cloud pour lequel l'API Vertex AI est activée.
  • Une installation de la gcloud CLI sur votre poste de travail. Pour en savoir plus, consultez Installer la gcloud CLI.

Tarifs

Le coût d'utilisation de Gemini pour l'évaluation de code dépend principalement de la taille de la codebase et est mesuré en jetons. Le tableau suivant présente les estimations de coûts auxquelles vous pouvez vous attendre en fonction de vos lignes de code et du modèle que vous choisissez :

Codebase Lignes de code (LOC) Coût estimé
adaptatif 2.0-flash 2.5-pro (par défaut) 2.5-flash
Spring Petclinic ~6 500 20 $ 2 $ 30 $ 4 $
Projet James ~1 000 000 60 $ 30 $ 500 $ 40 $
Elasticsearch ~5 000 000 200 $ 200 $ 3 000 $ 200 $

Ces valeurs peuvent être surestimées, car elles ne tiennent pas compte des économies potentielles dues aux éléments suivants :

  • Tarification réduite pour les requêtes courtes.
  • Tarifs réduits pour la mise en cache implicite.
  • Remises sur engagement d'utilisation

Les coûts associés à ces paramètres devraient représenter une part négligeable du coût total, en particulier pour les bases de code plus volumineuses. Pour en savoir plus, consultez la page Tarifs de l'API Gemini.

Informations supplémentaires

L'outil utilise les fonctionnalités avancées de compréhension et d'analyse du code de l'API Vertex AI. Pour en savoir plus sur les modèles disponibles et leurs fonctionnalités, consultez Modèles Google dans la documentation de l'API Vertex AI.

Pour maintenir des performances et une rentabilité optimales, la taille de la base de code de codmod est limitée à environ six millions de lignes de code. Pour les bases de code dépassant cette limite, nous vous recommandons de les diviser en parties plus petites et gérables pour l'analyse. L'analyse de sections plus petites peut également aider à effectuer des évaluations plus ciblées et potentiellement réduire le temps de traitement global.

Configurer codmod

Cette section fournit des instructions d'installation et d'authentification pour utiliser l'outil codmod.

Installer codmod

Windows

Exécutez la commande suivante dans Windows PowerShell pour télécharger la dernière version de codmod :

$version=curl.exe -s https://codmod-release.storage.googleapis.com/latest
curl.exe -O "https://codmod-release.storage.googleapis.com/${version}/windows/amd64/codmod.exe"

Linux

Exécutez la commande suivante pour télécharger la dernière version de codmod :

version=$(curl -s https://codmod-release.storage.googleapis.com/latest)
curl -O "https://codmod-release.storage.googleapis.com/${version}/linux/amd64/codmod"
chmod +x codmod

S'authentifier auprès de Google Cloud

Pour utiliser l'outil codmod, vous avez besoin d'un projet Google Cloud .

  1. Assurez-vous que l'API Vertex AI est activée dans le projet dans la console ou à l'aide de la CLI :

    gcloud services enable aiplatform.googleapis.com --project <project-id>
    
  2. Assurez-vous de disposer du rôle roles/aiplatform.user ou d'un rôle similaire sur le projet.

  3. Pour vous authentifier, exécutez la commande suivante :

    gcloud auth application-default login
    

Vous pouvez également utiliser un compte de service et définir la variable d'environnement GOOGLE_APPLICATION_CREDENTIALS. Pour en savoir plus, consultez Fonctionnement des identifiants par défaut de l'application.

Gérer la configuration codmod

Les sections suivantes expliquent comment configurer codmod avec la commande codmod config.

Lister tous les paramètres

Pour afficher toutes les propriétés de configuration actuelles et leurs valeurs, exécutez la commande suivante :

codmod config list

Définir une valeur par défaut pour un indicateur

Pour définir une valeur par défaut pour une propriété, utilisez la commande set. Par exemple, pour définir l'ID de projet par défaut, exécutez la commande suivante :

codmod config set project "PROJECT_ID"

Remplacez PROJECT_ID par l'ID du projet Google Cloud .

Pour définir la région par défaut, exécutez la commande suivante :

codmod config set region "REGION"

Remplacez REGION par la région Google Cloud . Consultez la liste des régions disponibles. En cas de doute, utilisez la région us-central1.

Obtenir une valeur spécifique

Pour afficher la valeur d'une seule propriété, utilisez la commande get. Par exemple, pour obtenir l'ID du projet configuré, exécutez la commande suivante :

codmod config get project

Supprimer une valeur par défaut

Pour supprimer une valeur par défaut configurée et revenir au paramètre par défaut d'origine de l'outil, utilisez la commande unset. Par exemple, pour supprimer l'ID du projet par défaut, exécutez la commande suivante :

codmod config unset project

Créer un rapport d'évaluation codmod

Les sections suivantes expliquent comment créer l'évaluation par défaut et comment la personnaliser en fonction de vos besoins.

Créer le rapport par défaut

Pour créer un rapport d'évaluation, exécutez l'outil codmod avec les indicateurs suivants :

codmod create -c "CODEBASE" -o "OUTPUT"

Remplacez les éléments suivants :

  • CODEBASE : spécifie le répertoire contenant le code source à analyser. Il peut être spécifié plusieurs fois.
  • OUTPUT : spécifie le chemin d'accès où le rapport généré est enregistré. Le rapport est au format HTML.

Vous pouvez remplacer le projet et la région par défaut à l'aide des options -p "PROJECT_ID" et -r "REGION", respectivement.

Vous pouvez également spécifier les options facultatives suivantes :

  • --modelset [2.0-flash|2.5-flash|2.5-pro|adaptive] : spécifie les modèles Gemini à utiliser. La valeur par défaut est 2.5-pro. Le mode adaptatif permet de réduire considérablement les coûts, mais peut entraîner une baisse de la qualité des rapports par rapport à 2.5-pro.
  • --context <string> : tout contexte supplémentaire que vous souhaitez fournir sur le projet. L'outil prend en compte ce contexte lors de la génération du rapport.
  • --context-file <path> : identique à --context, où le contexte est fourni dans le fichier donné.
  • --format <html|markdown|odt|json> : format utilisé pour le rapport généré. La valeur par défaut est HTML.
  • --allow-large-codebase : par défaut, codmod demandera une confirmation avant d'analyser les codebases de plus d'un million de lignes de code, afin d'éviter des coûts élevés. Cette option sert de confirmation non interactive. Vous pouvez également l'activer par défaut en exécutant codmod config set allow_large_codebase true.
  • --improve-fidelity : si cette valeur est définie, codmod génère les sections de manière séquentielle au lieu de les générer en parallèle. Cela améliore la cohérence entre les différentes sections du rapport final, mais nécessite un temps d'exécution plus long.
  • --force-include <strings>, --force-exclude <strings> : par défaut, codmod analyse les extensions de fichier courantes, y compris Java, .NET et Python. Utilisez ces indicateurs pour inclure ou exclure des extensions de fichier. L'argument doit être une expression régulière avec la syntaxe RE2.
  • --experiments : spécifiez --experiments=enable_pdf,enable_images pour prendre en charge les PDF et les images dans codmod.

Créer un rapport complet

Si vous avez besoin d'une analyse complète, créez un rapport à l'aide de la commande create full :

codmod create full -c "~/mycodebase/" -o "report.html"

Créer un rapport axé sur la couche de données

Si vous avez besoin d'analyser plus en détail la couche de données, vous pouvez créer un rapport axé sur cette zone :

codmod create data-layer -c "CODEBASE" -o "OUTPUT"

Créer un rapport pour une intention de transformation spécifique

Si vous souhaitez axer le rapport sur une intention de modernisation particulière, vous pouvez utiliser l'une des intentions acceptées suivantes :

  • Transformation des charges de travail Microsoft (MICROSOFT_MODERNIZATION) : à utiliser avec les applications exécutées sur un OS Microsoft. L'évaluation se concentrera sur les parcours de transformation qui moderniseront les frameworks basés sur .NET pour utiliser la dernière version et réduire les dépendances aux licences Microsoft.
  • Transformation de charge de travail de cloud à cloud (CLOUD_TO_CLOUD) : à utiliser avec les applications exécutées sur une autre infrastructure hyperscale. L'évaluation se concentrera sur les modifications recommandées pour transformer l'application, comme le mappage des services d'autres fournisseurs de services cloud vers les servicesGoogle Cloud .
  • Transformation Java héritée (JAVA_LEGACY_TO_MODERN) : à utiliser avec les applications exécutant Java 8 ou une version similaire. L'évaluation se concentrera sur la recherche des dépendances de mise à niveau et des zones du code impactées par le passage à Java 21 (la version LTS actuelle).
  • Transformation WILDFLY Java hérité (WILDFLY_LEGACY_TO_MODERN) : à utiliser avec les bases de code Java EE/Jakarta EE exécutées sur des versions de serveur d'applications WildFly antérieures à la dernière. L'évaluation se concentrera sur l'identification des dépendances de mise à niveau et des zones du code concernées par la mise à niveau de la version du serveur d'applications WildFly, y compris les modifications requises pour les différences et la compatibilité des API.

Pour créer un rapport axé sur les intentions, utilisez l'option --intent :

codmod create -c "CODEBASE" -o "OUTPUT" --intent "INTENT"

Créer un rapport avec des sections supplémentaires

L'outil permet d'inclure des sections supplémentaires qui ne sont pas incluses par défaut pour réduire les coûts. Les sections suivantes sont acceptées :

  • files : vue hiérarchique structurée des dossiers de projet et description du contenu de chaque dossier pour vous aider à vous orienter dans les fichiers du projet.
  • classes : catalogue de classes de code contenant des informations sur chaque classe et ses dépendances vis-à-vis d'autres classes. Les langages acceptés sont Java et C#.

Pour créer les sections supplémentaires, utilisez l'option --optional-sections :

codmod create -c "CODEBASE" -o "OUTPUT" --optional-sections "SECTIONS"

Remplacez SECTIONS par une liste de valeurs séparées par une virgule.

Créer un rapport personnalisé

Si vous souhaitez explorer des thèmes personnalisés spécifiques, vous pouvez créer un rapport personnalisé basé sur le contexte que vous fournissez à l'aide de la commande suivante :

codmod create custom -c "CODEBASE" -o "OUTPUT" --context "CONTEXT"

Par défaut, un LLM est utilisé pour développer le contexte fourni et l'adapter afin de générer une section cohérente. Vous pouvez désactiver ce comportement en spécifiant --improve-context=false.

Options supplémentaires :

  • --from-template <path> : spécifie un fichier de modèle qui définit la structure du document au format texte ou PDF. codmod détecte la structure et demande l'autorisation de continuer à générer le rapport.
  • --skip-template-approval : ignore la demande d'approbation lorsque vous utilisez l'option --from-template.

Modifier un rapport existant

Vous pouvez créer une section dans un rapport ou modifier une section existante en fonction d'une section spécifique. Par exemple, vous pouvez choisir de vous concentrer sur un aspect particulier de l'architecture du système ou sur un type particulier de faille de sécurité.

Les commandes qui modifient un rapport nécessitent les indicateurs suivants :

  • L'une des valeurs --context et --context-file : spécifiez la demande de modification.
  • --from-report : spécifie le chemin d'accès au fichier de rapport existant.
  • --from-section : nom de la section à utiliser comme base pour une nouvelle section (par exemple, "Présentation", "Architecture").

Pour afficher toutes les sections disponibles dans un rapport spécifique, exécutez la commande suivante :

codmod list-sections --from-report "REPORT"

Réviser une section de rapport

Pour modifier une section existante, exécutez la commande suivante :

codmod revise section -c "CODEBASE" --from-report "REPORT" \
  -o "REVISED_REPORT" --from-section "SECTION_NAME" \
  --context "CONTEXT"

Créer une section de rapport

Créez une section à l'aide de la commande suivante :

codmod create section -c "CODEBASE" --from-report "REPORT" \
  -o "REGENERATED_REPORT" --from-section "SECTION_NAME" \
  --context "CONTEXT"
  • L'option from-section de la commande create section est facultative.
  • Par défaut, un LLM est utilisé pour développer le contexte fourni et l'adapter afin de générer une section cohérente. Vous pouvez désactiver ce comportement en spécifiant --improve-context=false.

Veuillez noter les points suivants :

  • create section et revise section n'acceptent que le format de rapport html.
  • create section, revise section et list-sections s'attendent à ce que l'indicateur --from-report pointe vers un rapport au format HTML.

Estimer les coûts d'évaluation

L'outil codmod vous aide à comprendre le coût de son utilisation en vous permettant de calculer le coût approximatif de la création d'un rapport. Pour afficher votre estimation des coûts, exécutez la commande suivante :

codmod create --estimate-cost -c "CODEBASE"

Les estimations de coûts ne sont pas disponibles pour les commandes create section et create custom.

Définir le niveau de verbosité

Le niveau de verbosité codmod est configuré à l'aide de l'indicateur --verbosity LEVEL. Le niveau de détail des journaux est l'un des suivants : debug, info, warn, error ou none. La valeur par défaut est warn.

Dépannage

  • Autorisation refusée : si vous rencontrez une erreur "Autorisation refusée", assurez-vous d'avoir accordé l'autorisation d'exécution au binaire codmod en exécutant la commande chmod +x codmod.
  • La CLI semble bloquée : l'analyse peut prendre beaucoup de temps, mais vous pouvez généralement voir la progression dans la barre de progression de la CLI. Si la barre de progression reste à 0 % après 15 minutes, vérifiez que vous disposez d'un quota suffisant pour le modèle concerné. Par défaut, codmod utilise le modèle gemini-2.5-pro. Toutefois, cela peut changer, car différents ensembles de modèles utilisent des modèles différents à des fins différentes.
  • Signaler des erreurs : en cas d'erreur nécessitant une investigation, collectez les informations de débogage pour aider notre équipe de développement. Les journaux fournissent des informations essentielles pour le dépannage. Exécutez la commande suivante pour collecter les journaux, puis compressez l'archive obtenue et partagez-la avec l'équipe à l'adresse codmod-feedback-external@google.com.

    codmod collect-logs -o "codmod_logs.zip"
    

Licences Open Source

Vous pouvez télécharger les avis Open Source pour les dépendances de la dernière version de codmod en exécutant la commande suivante :

version=$(curl -s https://codmod-release.storage.googleapis.com/latest)
curl -O "https://codmod-release.storage.googleapis.com/${version}/THIRD_PARTY_NOTICES.txt"

Obtenir de l'aide et envoyer des commentaires

Pour nous aider à améliorer la qualité de ce produit, nous collectons des données d'utilisation pseudo-anonymisées. Ces données sont traitées conformément à nos règles de confidentialité Google Cloud . Vous pouvez modifier votre préférence à tout moment en exécutant la commande suivante :

codmod config set disable_usage_reporting true

Vous pouvez obtenir de l'aide et nous faire part de vos commentaires de différentes manières :

  • Pour obtenir de l'aide concernant codmod, cliquez sur le bouton Assistance dans le rapport HTML généré ou envoyez un e-mail à l'adresse codmod-feedback-external@google.com.
  • Pour nous envoyer des commentaires sur codmod, cliquez sur le bouton Commentaires dans le rapport HTML généré.