Bewertung der Anwendungsmodernisierung erstellen

Die Bewertung der Anwendungsmodernisierung von Migration Center (codmod) ist ein KI-basiertes Tool, das den Prozess der Modernisierungsbewertung für Ihre Anwendung automatisiert. Auf dieser Seite werden die Schritte zum Installieren, Verwenden und Beheben von Problemen mit dem Tool codmod beschrieben.

Bewertung der Anwendungsmodernisierung

Der typische Prozess der Modernisierungsbewertung dauert einige Wochen und erfordert viel Fachwissen. Durch die Automatisierung dieses Prozesses verkürzt das Tool codmod diese Zeit erheblich auf wenige Stunden.

Dieses Tool soll evidenzbasierte Informationen zur aktuellen Architektur, Funktionalität und zu potenziellen Blockern der Anwendung liefern, die die Transformation in die Cloud verlangsamen könnten.

Dieses Tool ist für die folgenden Rollen vorgesehen:

  • IT-Architekten
  • Entscheidungsträger
  • Anwendungsinhaber

Das codmod Tool soll die Transformation von Anwendungen beschleunigen, indem es für Transparenz hinsichtlich der erforderlichen Änderungen und der Vorteile sorgt, die sich aus der Transformation der Anwendung in Google Cloudergeben. Der codmod ist ein portables CLI Tool, das Gemini verwendet, um Quellcode zu analysieren und Empfehlungen basierend auf Google Cloud Best Practices zu geben.

Hinweis

Für das Tool codmod sind die folgenden Voraussetzungen erforderlich:

  • Eine Linux - oder Windows -Workstation (Version 10 oder höher).
  • Zugriff auf ein Google Cloud Projekt, in dem die Vertex AI API aktiviert ist.
  • Eine gcloud CLI-Installation auf Ihrer Workstation. Weitere Informationen finden Sie unter gcloud CLI installieren.

Preise

Die Kosten für die Verwendung von Gemini zur Codebewertung hängen hauptsächlich von der Größe der Codebasis ab und werden in Tokens gemessen. In der folgenden Tabelle sind die geschätzten Kosten aufgeführt, die je nach Anzahl der Codezeilen und dem von Ihnen ausgewählten Modell anfallen können:

Codebasis Codezeilen (Lines of Code, LOC) Geschätzte Kosten
adaptive 2.0-flash 2.5-pro (Standard) 2.5-flash
Spring Petclinic ~6.500 20 $ 2 $ 30 $ 4 $
James Project ~1.000.000 60 $ 30 $ 500 $ 40 $
Elasticsearch ~5.000.000 200 $ 200 $ 3.000 $ 200 $

Diese Werte sind möglicherweise zu hoch, da mögliche Einsparungen aufgrund der folgenden Faktoren nicht berücksichtigt werden:

  • Niedrigere Preise für kurze Abfragen.
  • Niedrigere Preise für implizites Caching.
  • Rabatte für zugesicherte Nutzung (Committed Use Discounts, CUDs).

Die Kosten für diese Parameter machen voraussichtlich nur einen geringen Teil der Gesamtkosten aus, insbesondere bei größeren Codebasen. Weitere Informationen finden Sie unter Gemini API-Preise.

Weitere Informationen

Das Tool nutzt die erweiterten Funktionen der Vertex AI API zum Verständnis und zur Analyse von Code. Weitere Informationen zu den verfügbaren Modellen und ihren Funktionen finden Sie in der Vertex AI API-Dokumentation unter Google-Modelle.

Um eine optimale Leistung und Kosteneffizienz zu gewährleisten, hat codmod ein Limit für die Größe der Codebasis von etwa 6 Millionen Codezeilen. Bei Codebasen, die dieses Limit überschreiten, empfehlen wir, sie für die Analyse in kleinere, überschaubare Teile aufzuteilen. Die Analyse kleinerer Abschnitte kann auch zu gezielteren Bewertungen beitragen und die Gesamtverarbeitungszeit möglicherweise verkürzen.

codmod einrichten

In diesem Abschnitt finden Sie Installations- und Authentifizierungsanweisungen für die Verwendung des Tools codmod.

codmod installieren

Windows

Führen Sie in Windows PowerShell den folgenden Befehl aus, um die neueste Version von codmod herunterzuladen:

$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

Führen Sie den folgenden Befehl aus, um die neueste Version von codmod herunterzuladen:

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

Wenn Sie den Befehl codmod verwenden möchten, fügen Sie die ausführbare Datei dem Pfad hinzu oder erstellen Sie einen Alias.

Authentifizierung bei Google Cloud

Um das codmod Tool verwenden zu können, benötigen Sie ein Google Cloud Projekt.

  1. Achten Sie darauf, dass die Vertex AI API im Projekt in der Console oder über die CLI aktiviert ist:

    gcloud services enable aiplatform.googleapis.com --project <project-id>
    
  2. Achten Sie darauf, dass Sie die Rolle roles/aiplatform.user oder eine ähnliche Rolle für das Projekt haben.

  3. Führen Sie zur Authentifizierung den folgenden Befehl aus:

    gcloud auth application-default login
    

Alternativ können Sie ein Dienstkonto verwenden und die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS festlegen. Weitere Informationen finden Sie unter Funktionsweise von Standardanmeldedaten für Anwendungen.

Konfiguration von codmod verwalten

In den folgenden Abschnitten wird beschrieben, wie Sie codmod mit dem codmod config Befehl konfigurieren.

Alle Einstellungen auflisten

Führen Sie den folgenden Befehl aus, um alle aktuellen Konfigurationseigenschaften und ihre Werte aufzurufen:

codmod config list

Standardwert für ein Flag festlegen

Verwenden Sie den Befehl set, um einen Standardwert für eine Eigenschaft festzulegen. Führen Sie beispielsweise Folgendes aus, um die Standardprojekt-ID festzulegen:

codmod config set project "PROJECT_ID"

Ersetzen Sie PROJECT_ID durch die Google Cloud Projekt-ID.

Führen Sie Folgendes aus, um die Standardregion festzulegen:

codmod config set region "REGION"

Ersetzen Sie REGION durch die Google Cloud Region. Eine Liste der verfügbaren Regionen finden Sie hier. Wenn Sie nicht sicher sind, welche Region Sie verwenden sollen, verwenden Sie us-central1.

Bestimmten Wert abrufen

Verwenden Sie den Befehl get, um den Wert einer einzelnen Eigenschaft aufzurufen. Führen Sie beispielsweise den folgenden Befehl aus, um die konfigurierte Projekt-ID abzurufen:

codmod config get project

Standardwert aufheben

Verwenden Sie den Befehl unset, um einen konfigurierten Standardwert zu entfernen und zur ursprünglichen Standardeinstellung des Tools zurückzukehren. Führen Sie beispielsweise den folgenden Befehl aus, um die Standardprojekt-ID zu entfernen:

codmod config unset project

Bewertungsbericht für codmod erstellen

In den folgenden Abschnitten wird beschrieben, wie Sie die Standardbewertung erstellen und an Ihre Bedürfnisse anpassen.

Standardbericht erstellen

Führen Sie das Tool codmod mit den folgenden Flags aus, um einen Bewertungsbericht zu erstellen:

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

Ersetzen Sie Folgendes:

  • CODEBASE: gibt das Verzeichnis mit dem zu analysierenden Quellcode an und kann mehrmals angegeben werden.
  • OUTPUT: gibt den Pfad an, in dem der generierte Bericht gespeichert wird. Der Bericht liegt im HTML-Format vor.

Sie können das Standardprojekt und die Standardregion mit den -p "PROJECT_ID" bzw. -r "REGION" Flags überschreiben.

Sie können auch die folgenden optionalen Flags angeben:

  • --modelset [2.0-flash|2.5-flash|2.5-pro|adaptive]: gibt an, welche Gemini-Modelle verwendet werden sollen. Der Standardwert ist 2.5-pro. Mit „adaptive“ lassen sich die Kosten erheblich senken, wobei die Qualität des Berichts im Vergleich zu 2.5-pro möglicherweise geringer ist.
  • --format <html|markdown|odt|json>: das Format, das für den generierten Bericht verwendet wird. Der Standardwert ist HTML.
  • --allow-large-codebase: Standardmäßig fragt codmod nach einer Bestätigung, bevor Codebasen mit mehr als 1 Million Codezeilen analysiert werden, um hohe Kosten zu vermeiden. Diese Option dient als nicht interaktive Bestätigung. Sie können diese Option auch standardmäßig aktivieren, indem Sie codmod config set allow_large_codebase true ausführen.
  • --improve-fidelity: Wenn diese Option festgelegt ist, generiert codmod Abschnitte seriell anstatt parallel. Dadurch wird die Konsistenz zwischen den verschiedenen Abschnitten des Abschlussberichts verbessert, die Ausführungszeit ist jedoch länger.
  • --force-include <strings>, --force-exclude <strings>: Standardmäßig scannt codmod gängige Dateiendungen wie Java, .NET und Python. Mit diesen Flags können Sie Dateiendungen ein- oder ausschließen. Das Argument muss ein regulärer Ausdruck mit der RE2-Syntax sein.
  • --experiments: Geben Sie --experiments=enable_pdf,enable_images an, um PDFs und Bilder in codmod zu unterstützen.
  • --context <string>: zusätzlicher Kontext, den Sie zum Projekt angeben möchten Das Tool berücksichtigt diesen Kontext beim Generieren des Berichts.
  • --context-file <path>: entspricht --context, wobei der Kontext in der angegebenen Datei bereitgestellt wird.
  • --supporting-documents <path>: gibt ein Verzeichnis mit unterstützender Dokumentation zur Codebasis an. Auf Dateien in diesem Verzeichnis kann über den Kontext verwiesen werden, der mit den --context oder --context-file Flags bereitgestellt wird, damit sie in die Analyse einbezogen werden. Unterstützte Formate sind Text, PDF und Bilder (PNG, JPG, JPEG).

Vollständigen Bericht erstellen

Wenn Sie eine vollständige Analyse benötigen, erstellen Sie einen Bericht mit dem Befehl create full:

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

Bericht mit Schwerpunkt auf der Datenschicht erstellen

Wenn die Datenschicht genauer betrachtet werden muss, kann ein Bericht mit Schwerpunkt auf diesem Bereich erstellt werden:

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

Bericht für eine bestimmte Transformationsabsicht erstellen

Wenn Sie den Bericht auf eine bestimmte Modernisierungsabsicht ausrichten möchten, können Sie eine der folgenden unterstützten Absichten verwenden:

  • Microsoft-Workload-Transformation (MICROSOFT_MODERNIZATION): Bei Anwendungen, die unter Microsoft OS ausgeführt werden, konzentriert sich die Bewertung auf Transformationsprozesse, mit denen Frameworks auf .NET-Basis modernisiert werden, um die neueste Version zu verwenden und die Abhängigkeiten von Microsoft-Lizenzen zu reduzieren.
  • Cloud-to-Cloud-Workload-Transformation (CLOUD_TO_CLOUD): Bei Anwendungen, die in der Infrastruktur anderer Hyperscaler ausgeführt werden. Die Bewertung konzentriert sich auf die empfohlenen Änderungen für die Transformation der Anwendung, z. B. die Zuordnung von Diensten anderer Cloudanbieter zu Google Cloud Diensten.
  • Legacy-Java-Transformation (JAVA_LEGACY_TO_MODERN): Bei Anwendungen, die mit Java 8 oder einer ähnlichen Version ausgeführt werden, konzentriert sich die Bewertung auf die Suche nach Upgrade-Abhängigkeiten und Bereichen im Code, die von der Umstellung auf Java 21 (die aktuelle LTS-Version) betroffen sind.
  • Legacy-Java-WILDFLY-Transformation (WILDFLY_LEGACY_TO_MODERN): Bei Java EE-/Jakarta EE-Codebasen, die auf WildFly-Anwendungsserverversionen vor der neuesten Version ausgeführt werden. Die Bewertung konzentriert sich auf die Ermittlung von Upgrade-Abhängigkeiten und Bereichen im Code, die vom Upgrade der WildFly-Anwendungsserverversion betroffen sind, einschließlich der Änderungen, die aufgrund von API-Unterschieden und Kompatibilität erforderlich sind.
  • Migration von C/C++-Anwendungen zur Arm-Architektur (ARM_MIGRATION): Bei C/C++-Anwendungen, um ihre Bereitschaft und den Aufwand zu bewerten, der für die Migration von x86-basierten Architekturen zu Arm-basierten Architekturen wie Google Cloud Axion C4A VMs erforderlich ist. Die Bewertung konzentriert sich auf die Ermittlung potenzieller Probleme mit der Codeportabilität, architekturspezifischer Abhängigkeiten, Änderungen am Build-System und Testüberlegungen, die für eine erfolgreiche Umstellung auf Arm von Google Cloud oder einem anderen CSP wie den Graviton-Instanzen von AWS erforderlich sind.

Verwenden Sie das Flag --intent, um einen auf die Absicht ausgerichteten Bericht zu erstellen:

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

Bericht mit zusätzlichen Abschnitten erstellen

Das Tool unterstützt das Einbeziehen zusätzlicher Abschnitte, die standardmäßig nicht enthalten sind, um Kosten zu senken. Die folgenden Abschnitte werden unterstützt:

  • files: eine strukturierte hierarchische Ansicht der Projektordner und eine Beschreibung des Inhalts der einzelnen Ordner, damit Sie sich in den Projektdateien besser zurechtfinden.
  • classes: ein Katalog von Codeklassen mit Informationen zu jeder Klasse und ihren Abhängigkeiten von anderen Klassen. Die unterstützten Sprachen sind Java und C#.

Verwenden Sie das Flag --optional-sections, um die zusätzlichen Abschnitte zu erstellen:

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

Ersetzen Sie SECTIONS durch eine durch Kommas getrennte Liste von Werten.

Benutzerdefinierten Bericht erstellen

Wenn Sie bestimmte benutzerdefinierte Themen untersuchen möchten, können Sie einen benutzerdefinierten Bericht basierend auf dem von Ihnen bereitgestellten Kontext erstellen. Verwenden Sie dazu den folgenden Befehl:

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

Standardmäßig wird ein LLM verwendet, um den bereitgestellten Kontext zu erweitern und anzupassen, damit ein kohärenter Abschnitt generiert wird. Sie können dieses Verhalten deaktivieren, indem Sie --improve-context=false angeben.

Zusätzliche Flags:

  • --from-template <path>: gibt eine Vorlagendatei an, die die Dokumentstruktur im Text- oder PDF-Dateiformat definiert. codmod erkennt die Struktur und fordert eine Bestätigung an, um den Bericht weiter zu generieren.
  • --skip-template-approval: überspringt die Genehmigungsanfrage, wenn das Flag --from-template verwendet wird.

Vorhandenen Bericht ändern

Sie können einen neuen Abschnitt in einem Bericht erstellen oder einen vorhandenen Abschnitt basierend auf einem bestimmten Abschnitt ändern. Beispielsweise möchten Sie sich möglicherweise auf einen bestimmten Aspekt der Systemarchitektur oder eine bestimmte Art von Sicherheitslücke konzentrieren.

Für Befehle, die einen Bericht ändern, sind die folgenden Flags erforderlich:

  • Eines von --context und --context-file: gibt die Änderungsanfrage an.
  • --from-report: gibt den Pfad zur vorhandenen Berichtsdatei an.
  • --from-section: Name des Abschnitts, der als Grundlage für einen neuen Abschnitt verwendet werden soll (z. B. „Übersicht“ oder „Architektur“).

Führen Sie den folgenden Befehl aus, um alle verfügbaren Abschnitte in einem bestimmten Bericht aufzurufen:

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

Berichtsabschnitt überarbeiten

Führen Sie den folgenden Befehl aus, um einen vorhandenen Abschnitt zu ändern:

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

Neuen Berichtsabschnitt erstellen

Erstellen Sie mit dem folgenden Befehl einen neuen Abschnitt:

codmod create section -c "CODEBASE" --from-report "REPORT" \
  -o "REGENERATED_REPORT" --from-section "SECTION_NAME" \
  --context "CONTEXT"
  • Das Flag from-section im Befehl create section ist optional.
  • Standardmäßig wird ein LLM verwendet, um den bereitgestellten Kontext zu erweitern und anzupassen, damit ein kohärenter Abschnitt generiert wird. Sie können dieses Verhalten deaktivieren, indem Sie --improve-context=false angeben.

Wichtige Hinweise:

  • create section und revise section unterstützen nur das Berichtsformat html.
  • Für create section, revise section und list-sections muss das Flag --from-report auf einen Bericht im HTML-Format verweisen.

Kosten für die Bewertung schätzen

Mit dem Tool codmod können Sie die Kosten für die Verwendung des Tools nachvollziehen, indem Sie die ungefähren Kosten für die Erstellung eines Berichts berechnen. Führen Sie den folgenden Befehl aus, um die Kostenschätzung aufzurufen:

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

Kostenschätzungen werden für die Befehle create section und create custom nicht unterstützt.

Ausführlichkeitsgrad festlegen

Die Ausführlichkeit von codmod wird mit dem --verbosity LEVEL Flag konfiguriert. Die Ausführlichkeitsstufe der Logs kann debug, info, warn, error oder none sein. Der Standardwert ist warn.

Version der codmod-CLI prüfen und aktualisieren

Die codmod-CLI kann automatisch prüfen, ob eine neuere Version verfügbar ist.

Automatische Prüfungen

Alle 24 Stunden fragt die CLI einen Cloud Storage-Bucket ab, um zu prüfen, ob eine neuere Version von codmod veröffentlicht wurde. Wenn eine neuere Version gefunden wird, wird auf Ihrem Terminal eine Benachrichtigung angezeigt. Die Nachricht enthält die neue Versionsnummer und einen Link zum Herunterladen des Updates. So können Sie immer auf dem neuesten Stand sein und von den neuesten Funktionen, Verbesserungen und Fehlerkorrekturen profitieren.

Versionsprüfungen deaktivieren

Wenn Sie die automatische Versionsprüfung deaktivieren möchten, können Sie den config set Befehl verwenden:

codmod config set disable_version_check true

Setzen Sie den Wert wieder auf false, um die Versionsprüfung wieder zu aktivieren:

codmod config set disable_version_check false

Sie können den aktuellen Status dieser Einstellung und anderer Konfigurationen mit dem folgenden Befehl aufrufen:

codmod config list

Befehlszeilenvervollständigung

Das Tool codmod-CLI unterstützt die Befehlszeilenvervollständigung für Bash, Zsh, Fish und PowerShell. Mit dieser Funktion können Sie Befehle, Flags und Argumente schnell eingeben, indem Sie die Tab-Taste drücken, um verfügbare Optionen aufzurufen und auszuwählen.

Die automatische Vervollständigung bietet folgende Vorteile:

  • Befehle und Flags automatisch vervollständigen:Geben Sie einen codmod-Befehl oder ein Flag ein und drücken Sie die Tab-Taste, um mögliche Vervollständigungen aufzurufen.
  • Optionen ermitteln:Gültige Werte für bestimmte Flags aufrufen. Beispiel:
    • codmod create --modelset [TAB] schlägt verfügbare Modellsätze vor (z. B. 2.0-flash, 2.5-pro).
    • codmod create --format [TAB] schlägt Ausgabeformate vor (z. B. html, json, markdown).
    • codmod create --intent [TAB] schlägt vordefinierte Absichten vor.
  • Kontextbezogene Vorschläge:Die Vervollständigung ist auf den Befehl zugeschnitten. Beispiel:
    • codmod config set [TAB] schlägt die verfügbaren Konfigurationsschlüssel vor, die Sie festlegen können.
    • codmod config get [TAB] schlägt die verfügbaren Konfigurationsschlüssel vor, die Sie abrufen können.
    • Die Vervollständigung von Dateipfaden wird nur für Flags oder Argumente angeboten, die einen Datei- oder Verzeichnispfad erwarten (z. B. --codebase, --output-path). Für andere Flags wie --project werden keine Dateinamen mehr vorgeschlagen.

Shell-Vervollständigung aktivieren

Bevor Sie die Shell-Vervollständigung aktivieren, prüfen Sie, ob der Befehl codmod funktioniert, indem Sie die ausführbare Datei dem Pfad hinzufügen oder einen Alias erstellen.

Führen Sie den entsprechenden Befehl aus, um Vervollständigungen für Ihre Shell zu laden. Die Anweisungen variieren je nach Shell. Verwenden Sie den Befehl help, um spezifische Anweisungen zu erhalten:

# For Bash
codmod completion bash --help

# For Zsh
codmod completion zsh --help

# For Fish
codmod completion fish --help

# For PowerShell
codmod completion powershell --help

Wenn Sie beispielsweise die Bash-Vervollständigung unter Linux laden möchten, können Sie Folgendes zu ~/.bashrc hinzufügen:

source <(codmod completion bash)

Starten Sie die Shell neu oder laden Sie Ihr Profil (z. B. source ~/.bashrc), damit die Änderungen wirksam werden.

Fehlerbehebung

  • Berechtigung verweigert: Wenn ein Fehler des Typs „Berechtigung verweigert“ auftritt, prüfen Sie, ob Sie die Ausführungsberechtigung für die codmod Binärdatei erteilt haben. Führen Sie dazu denchmod +x codmod Befehl aus.
  • CLI scheint hängen zu bleiben:Die Analyse kann lange dauern, aber normalerweise wird der Fortschritt in der Fortschrittsanzeige in der CLI angezeigt. Wenn die Fortschrittsanzeige nach 15 Minuten immer noch bei 0% liegt, prüfen Sie, ob Sie ausreichend Kontingent für das entsprechende Modell haben. Standardmäßig verwendet codmod das Modell gemini-2.5-pro. Dies kann sich jedoch ändern, da verschiedene Modellsätze unterschiedliche Modelle für unterschiedliche Zwecke verwenden.
  • Fehlerberichte:Wenn ein Fehler untersucht werden muss, erfassen Sie die Debug-Informationen, um unser Entwicklungsteam zu unterstützen. Logs enthalten wichtige Details zur Fehlerbehebung. Führen Sie den folgenden Befehl aus, um die Logs zu erfassen, und senden Sie das resultierende Archiv per E-Mail an das Team unter codmod-feedback-external@google.com.

    codmod collect-logs -o "codmod_logs.zip"
    

Open Source-Lizenzen

Sie können die Open Source-Hinweise für Abhängigkeiten der neuesten Version von codmod mit dem folgenden Befehl herunterladen:

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

Support erhalten und Feedback geben

Um die Qualität dieses Produkts zu verbessern, erheben wir pseudonymisierte Nutzungsdaten. Diese Daten werden gemäß unserer Datenschutzerklärung verarbeitet Google Cloud Datenschutzhinweis. Sie können Ihre Einstellung jederzeit ändern, indem Sie den folgenden Befehl ausführen:

codmod config set disable_usage_reporting true

Sie haben folgende Möglichkeiten, Support zu erhalten und Feedback zu geben:

  • Wenn Sie Support für codmod benötigen, klicken Sie im generierten HTML-Bericht auf die Schaltfläche Support oder senden Sie eine E-Mail an codmod-feedback-external@google.com.
  • Wenn Sie Feedback zu codmod geben möchten, klicken Sie im generierten HTML-Bericht auf die Schaltfläche Feedback.