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 .
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>
Assurez-vous de disposer du rôle
roles/aiplatform.user
ou d'un rôle similaire sur le projet.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 est2.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écutantcodmod 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 danscodmod
.
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 commandecreate 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
etrevise section
n'acceptent que le format de rapporthtml
.create section
,revise section
etlist-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 commandechmod +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èlegemini-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é.