Java-Anwendungen auf Modernisierung prüfen

Auf dieser Seite erfahren Sie, wie Sie Google Cloud Modernization Hub in derGoogle Cloud -Konsole verwenden, um Enterprise-Java-Anwendungen für die Linux-Containerisierung und Modernisierung auf plattformübergreifende Java-LTS-Releases (Long-Term Support, Langzeitunterstützung) wie Java 17 oder Java 21 auf Google Cloudzu bewerten.

Viele Java-Unternehmensanwendungen sind von alten Java EE-APIs, proprietären Anwendungsserverkonfigurationen (z. B. WebLogic, WebSphere oder JBoss) oder veralteten Drittanbieterbibliotheken abhängig, die eine direkte Bereitstellung in Linux-Containern verhindern. Bei einer automatisierten Bewertung in Modernization Hub wird Ihr Quellcode analysiert, Migrationsblocker werden identifiziert, die Kompatibilität von Maven- oder Gradle-Abhängigkeiten wird bewertet und Refaktorierungspfade für Cloud Run oder Google Kubernetes Engine werden empfohlen.

Wann sollte eine Java-Anwendungsbewertung verwendet werden?

Führen Sie eine Bewertung von Java-Anwendungen durch, wenn Sie Folgendes planen:

  • Auf Linux-Container umstellen:Ermitteln Sie umgebungsspezifische Abhängigkeiten (z. B. Zugriff auf das lokale Dateisystem, JNI-Bibliotheken oder proprietäre Anwendungsserver-APIs), bevor Sie Anwendungen für Cloud Run oder GKE in Containern bereitstellen.
  • Java-Laufzeitversionen aktualisieren:Bewerten Sie den Aufwand und die Kompatibilitätslücken bei der Migration von Java 8 oder Java 11 zu modernen Java-LTS-Releases (Java 17 oder Java 21) oder beim Übergang von Java EE (javax.*) zu Jakarta EE (jakarta.*).
  • Entkopplung monolithischer Architekturen:Erkennen Sie eng gekoppelte EJB-Komponenten, JMS-Message-Broker oder monolithische WAR- und EAR-Bereitstellungen, die in cloudnative Mikrodienste oder Spring Boot-Anwendungen refaktoriert werden müssen.

Hinweis

Bevor Sie einen Java-Bewertungsjob in der Konsole starten, müssen Sie die erforderlichen APIs aktivieren, die IAM-Berechtigungen (Identity and Access Management) Ihres Projekts überprüfen, einen Bucket für Arbeitsbereichseinstellungen registrieren und Ihr Quellcodearchiv in Cloud Storage hochladen.

Erforderliche APIs aktivieren

Wenn Sie Modernization Hub verwenden möchten, müssen Sie die erforderlichen Google CloudDienst-APIs in Ihrem Projekt aktivieren:

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

Ersetzen Sie dabei PROJECT_ID durch die ID Ihres Projekts in Google Cloud .

Erforderliche Rollen

Für die Ausführung einer Bewertung sind unterschiedliche IAM-Berechtigungen für zwei Identitäten erforderlich, die Cloud Build und die Gemini Enterprise Agent Platform verwenden:

  • Authentifizierter Console-Nutzer (der den Job initiiert und auf Buckets zugreift):
    • Storage-Administrator (roles/storage.admin)
    • Dienstkontonutzer (roles/iam.serviceAccountUser)
    • Cloud-Build-Bearbeiter (roles/cloudbuild.builds.editor)
  • Dediziertes Dienstkonto (Ausführung des Bewertungscontainers):
    • Agent Platform-Nutzer (roles/aiplatform.user)
    • Storage Object User (roles/storage.objectUser) oder Storage Admin (roles/storage.admin)

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Starten einer Bewertung und zum Ausführen des Analysecontainers benötigen:

  • Nutzer: Quellarchive und Bucket-Konfigurationen verwalten: Storage-Administrator (roles/storage.admin)
  • Nutzer: Hängen Sie das dedizierte Dienstkonto an den Job an: Dienstkontonutzer (roles/iam.serviceAccountUser)
  • Nutzer: Assessment-Jobs einreichen (cloudbuild.builds.create) und Logs ansehen: Cloud Build-Bearbeiter (roles/cloudbuild.builds.editor)
  • Dienstkonto: codmod-Container ausführen: Agent Platform User (roles/aiplatform.user)
  • Dienstkonto: Quellarchive lesen und Prüfberichte schreiben: Storage Object User (roles/storage.objectUser) oder Storage Admin (roles/storage.admin)

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Starten einer Bewertung und zum Ausführen des Analysecontainers erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um eine Bewertung zu starten und den Analysecontainer auszuführen:

  • Nutzer (Cloud Storage, Cloud Build und IAM):
    • storage.objects.get (zum Herunterladen oder Lesen von Dateien)
    • storage.objects.list (zum Auflisten von Dateien im Bucket)
    • storage.objects.create (zum Hochladen oder Erstellen neuer Dateien)
    • storage.objects.update (Zum Ändern der Metadaten vorhandener Dateien)
    • storage.objects.delete (zum Löschen oder Überschreiben von Dateien)
    • storage.buckets.get (Konfigurationen auf Bucket-Ebene ansehen)
    • cloudbuild.builds.create (zum Einreichen von Bewertungsjobs)
    • iam.serviceAccounts.actAs (um das Dienstkonto an den Job anzuhängen)
  • Dienstkonto (Agent Platform und Cloud Storage):
    • aiplatform.endpoints.predict (um die KI-basierte Codeanalyse auszuführen)
    • storage.objects.get (Zum Lesen oder Herunterladen von Quellarchiven)
    • storage.objects.list (zum Auflisten von Dateien im Eingabeordner)
    • storage.objects.create (Bewertungsberichte schreiben)
    • storage.objects.delete (Zum Löschen temporärer Dateien)

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Bucket für Arbeitsbereichseinstellungen konfigurieren

Registrieren Sie auf der Seite Modernization Hub > Einstellungen einen bestimmten Cloud Storage-Bucket (z. B. gs://PROJECT_ID-modernization-hub), in dem die binären Statusdateien des Arbeitsbereichs (dotnet_jobs.pb, java_jobs.pb und mainframe_jobs.pb) gespeichert werden.

Größenbeschränkungen für die Codebasis prüfen

Um eine optimale Leistung zu erzielen, gelten für die codmod-Bewertungs-Engine die folgenden Richtlinien für Skalierung und Archivierung:

  • Maximale Größe der Codebasis:ca. sechs Millionen Codezeilen pro Bewertungsjob. Wenn Ihr Repository mehr als sechs Millionen Codezeilen enthält, teilen Sie die Codebasis vor dem Hochladen in kleinere, unabhängige Module oder Dienste auf.
  • Saubere Archivstruktur:Schließen Sie kompilierte Binärdateien, Paketcaches und Metadaten der Versionsverwaltung (z. B. target/, build/, bin/, node_modules/ und .git/) aus Ihrer ZIP-Datei aus, damit nur Quelldateien und Build-Konfigurationen analysiert werden.

Java-Quellarchiv vorbereiten und hochladen

Packen Sie Ihre Java-Codebasis als ZIP-Datei, in der Build-Ausgaben ausgeschlossen sind, und laden Sie die Datei in einen Cloud Storage-Bucket in Ihrem Projekt hoch.

  1. Erstellen Sie auf Ihrem lokalen Computer eine ZIP-Datei Ihres Repository mit einer der folgenden Methoden:

    • Git verwenden (empfohlen):

      git archive --format=zip -o repository.zip HEAD
      
    • zip-Befehlszeile verwenden:

      zip -r repository.zip . \
          -x "*.git*" "*/target/*" "*/build/*" "*/bin/*" "*/node_modules/*"
      
  2. Laden Sie die ZIP-Datei mit der Google Cloud CLI in den Ziel-Cloud Storage-Bucket hoch:

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

    Ersetzen Sie INPUT_BUCKET durch den Namen Ihres Ziel-Cloud Storage-Bucket.

Bewertung durchführen

So starten Sie einen Bewertungsjob in Modernization Hub:

  1. Rufen Sie in der Console die Seite Modernization Hub auf.

    Zum Modernization Hub

  2. Suchen Sie auf der Landingpage nach der Karte Java-Arbeitslasten und klicken Sie auf Bewertung starten.

  3. Geben Sie im Feld Jobname einen eindeutigen Namen für den Bewertungsjob ein.

  4. Wählen Sie im Feld Speicherort des Quellcodes einen Cloud Storage-Bucket aus, der Ihren Quellcode als ZIP-Datei enthält.

  5. Wählen Sie im Feld Berichtsspeicherort einen Cloud Storage-Bucket aus, in dem die generierten Bewertungsberichte gespeichert werden sollen.

  6. Wählen Sie in der Liste Modernisierungsrezept ein Modernisierungsrezept aus.

  7. Wählen Sie in der Liste Speicherort eine Region für den Bewertungsjob aus.

  8. Wählen Sie im Feld Dienstkonto ein dediziertes Dienstkonto mit den erforderlichen IAM-Rollen aus, die im Abschnitt Erforderliche Rollen aufgeführt sind. Cloud Build führt den Bewertungsjob unter diesem Dienstkonto aus. Dazu sind Berechtigungen für „Agent Platform User“ und Cloud Storage erforderlich.

  9. Klicken Sie auf Bericht erstellen.

    In der Konsole wird ein Hintergrundbewertungscontainer gestartet, in dem die codmod-Engine ausgeführt wird, um Ihr Projekt zu analysieren. Der Jobstatus wird in der Tabelle Bewertungsverlauf angezeigt.

Bewertungsbericht ansehen

Je nach Größe Ihrer Codebasis werden Bewertungsjobs in der Regel innerhalb weniger Minuten abgeschlossen. Der Hintergrundcontainer wird automatisch beendet, nachdem die Verarbeitung abgeschlossen ist.

So rufen Sie Ihre Bewertungsergebnisse auf:

  1. Suchen Sie in der Tabelle Bewertungschronik auf der Modernization Hub-Seite nach Ihrem Bewertungsjob.
  2. Wenn sich die Spalte Status in Abgeschlossen ändert, klicken Sie auf Bericht herunterladen.
  3. Wählen Sie das gewünschte Ausgabeformat aus:
    • HTML-Bericht: Eine interaktive Zusammenfassung, mit der Sie inkompatible APIs filtern, Blockerlisten für einzelne Dateien prüfen und Vorschläge zur Fehlerbehebung aufrufen können.
    • Markdown-Bericht: Eine formatierte Zusammenfassung für Führungskräfte, die sich für die Weitergabe an Stakeholder und Architectural Review Boards eignet.

Bewertungsbericht ansehen

Im generierten Bewertungsbericht wird die Migrationsbereitschaft Ihrer Anwendung in mehrere Schlüsselbereiche unterteilt:

  • Gesamtkompatibilitätsbewertung:Der Prozentsatz der Quellzeilen und ‑abhängigkeiten, die ohne Änderungen zur Ziel-Java-Laufzeit migriert werden können.
  • Aufschlüsselung der Blocker:Bestimmte Legacy-Java-Abhängigkeiten oder Umgebungsbeschränkungen, die ein Refactoring erfordern, z. B.:
    • Namespace-Änderungen von Java EE (javax.*) zu Jakarta EE (jakarta.*).
    • Entfernte oder eingestellte interne JDK-APIs (z. B. sun.misc.*-Pakete oder CORBA-Module).
    • Proprietäre Anwendungsserverkonfigurationen oder APIs (z. B. WebLogic-, WebSphere- oder JBoss-Deployment-Deskriptoren).
  • Abhängigkeitsanalyse:Eine detaillierte Bestandsaufnahme der vorhandenen Maven- oder Gradle-Abhängigkeiten, aus der hervorgeht, ob jede Bibliothek die Ziel-Java-Laufzeitversion unterstützt oder ein Upgrade erforderlich ist.
  • Empfohlene Aktionen:Vorgeschlagene Code-Transformationen, KI-gestützte Refactoring-Rezepte und von codmod generierte Migrationspfade, um Ihre Anwendung für die Containerisierung auf Google Cloudvorzubereiten.

Nächste Schritte