Tomcat-Anwendungen mit Migrate to Containers in Container migrieren

Last reviewed 2022-06-17 UTC

Dieses Dokument richtet sich an Anwendungsinhaber und Cloud-Architekten. In diesem Dokument wird beschrieben, wie Sie Java-Anwendungen, die in Tomcat ausgeführt werden, in Container migrieren, die in Google Kubernetes Engine (GKE),GKE-Autopilot, Cloud Run oder GKE Enterprise ausgeführt werden. Sie können diesen Prozess verwenden, um Tomcat-Anwendungen aus lokalen Umgebungen, privaten Hostingumgebungen oder anderen Cloudanbietern zu migrieren. Außerdem werden die Vorteile der Automatisierung Ihrer Migration mit Migrate to Containers hervorgehoben.

In diesem Dokument wird davon ausgegangen, dass Sie mit den folgenden Produkten vertraut sind:

  • Java-Anwendungen, die auf Tomcat-Anwendungsservern bereitgestellt und auf virtuellen Linux-Maschinen (VMs) ausgeführt werden
  • Kubernetes-Konzepte und die grundlegende Verwendung des Kubernetes-Befehlszeilentools.

Dieses Dokument ist Teil einer Reihe zur Migration zu Google Cloud. Eine Übersicht über die Reihe finden Sie unter Migration zu Google Cloud: Migrationspfad auswählen.

Lesen Sie dieses Dokument, um kompatible Tomcat-Anwendungen aus einer unterstützten Quellumgebung mit Migrate to Containers in eine GKE-, GKE Enterprise- oder Cloud Run-Umgebung zu migrieren. Solche Quellumgebungen können folgende sein:

Migrate to Containers verwendet das Eignungsbewertungstool, um alle Tomcat-Anwendungen auf Ihren Linux-VMs zu erkennen, zu prüfen und zu migrieren. Das Tool teilt die Tomcat-Anwendungen in einzelne Tomcat-Anwendungscontainer auf. Nach der Migration können Sie einige oder alle Anwendungen in einem freigegebenen Container-Image gruppieren. Das folgende Diagramm zeigt, wie die Anwendungen von Migrate to Containers aufgeteilt und migriert werden:

Migrate to Containers teilt Tomcat-Anwendungen auf und migriert diese.

Migrate to Containers bietet folgende Vorteile:

  • Arbeitslastmodernisierung: bietet folgende Funktionen:
  • Containerisierte Umgebung: Containerisiert vorhandene VM-Anwendungen in Container. Siehe Vorteile von Migrate to Containers.
  • Offizielles Tomcat-Image: verwendet standardmäßig das offizielle Tomcat-Image. Sie können auch die Migration oder das Dockerfile aktualisieren, um Ihr eigenes Image zu verwenden. Offizielle Docker-Images übertragen Best Practices für Docker auf Ihre Basis-Images.
  • Automatische Aufteilung von Anwendungen: Es wird automatisch vorgeschlagen, jede erkannte Anwendung in einen einzelnen Container aufzuteilen, wobei die ursprüngliche Konfiguration von Tomcat beibehalten wird.
  • Verwaltung von Secrets: Erkennt die Schlüsselspeicher, Truststores und Zertifikate, die von Ihrem Tomcat-Server verwendet werden, und generiert automatisch Kubernetes-Primitive, um sie zu externalisieren und bereitzustellen alsKubernetes-Secrets.
  • Empfohlene Logging-Änderungen: Hiermit werden gängige Java-Logging-Framework-Konfigurationsdateien (z. B. log4j2, log4j und logback) automatisch erkannt und Änderungen vorgeschlagen, die auf das Logging in Kubernetes ausgerichtet sind.

Die Migration von Tomcat-Anwendungen zu Containern mit Migrate to Containers ist ein möglicher Schritt auf Ihrem Weg zur Arbeitslastmodernisierung. Durch die Migration können Sie Ihre Tomcat-Anwendungen so transformieren, dass sie in einer Cloudumgebung ausgeführt werden können. Außerdem können Sie teure Umschreibungen vermeiden.

Ideale Migrationskandidaten sind Anwendungen, die auf unterstützten Tomcat- und Java-Versionen ausgeführt werden und für die eine Modernisierung durch eine vollständige Umschreibung zu teuer oder zu schwierig ist.

Migration zu Google Cloud gestalten

Folgen Sie dem in der Reihe Migration to Google Cloud beschriebenen Framework, um Ihre Tomcat-Anwendungen aus Ihrer Quellumgebung in Container zu migrieren, die in Google Cloud ausgeführt werden.

Die folgende Grafik veranschaulicht den Migrationsprozess:

Migrationspfad mit vier Phasen

Das im vorherigen Diagramm dargestellte Framework umfasst vier Phasen:

  1. Bewerten: Sie bewerten Ihre Quellumgebung, bewerten die Anwendungen, die Sie zu Google Cloud migrieren möchten, und bewerten, welche Tomcat-Anwendungen für die Migration geeignet sind.
  2. Planen: Sie erstellen die grundlegende Infrastruktur für Migrate to Containers, z. B. die Bereitstellung der Ressourcenhierarchie und die Einrichtung des Netzwerkzugriffs.
  3. Bereitstellen: Die Tomcat-Anwendungen werden mit Migrate to Container aus der Quellumgebung zu GKE, GKE Autopilot, Cloud Run oder GKE Enterprise migriert.
  4. Optimieren:: Sie beginnen, die Cloud-Technologien und -Funktionen zu nutzen.

Quellumgebung und Anwendungen bewerten

In der Bewertungsphase erfassen Sie Informationen über die Quellumgebung und die zu migrierenden Anwendungen. Dadurch können Sie die Größe der benötigten Ressourcen anpassen, sowohl für die Migration als auch für Ihre Zielumgebung.

In der Bewertungsphase gehen Sie so vor:

  1. Ein umfassendes Inventar Ihrer Anwendungen erstellen.
  2. Die Anwendungen nach ihren Attributen und Abhängigkeiten katalogisieren.
  3. Die Teams auf Google Cloud vorbereiten.
  4. Einen Test und einen Proof of Concept für Google Cloud erstellen.
  5. Die Gesamtbetriebskosten (TCO) der Zielumgebung berechnen.
  6. Die Anwendungen auswählen, die als Erstes migriert werden sollen.

Die folgenden Abschnitte basieren auf dem Dokument Migration to Google Cloud: Arbeitslasten bewerten und erkennen. Sie stellen jedoch Informationen bereit, die sich speziell auf die Bewertung der Tomcat-Anwendungen beziehen, die Sie mit Migrate to Containers zu Containern migrieren möchten.

Inventar erstellen

Zum Durchführen einer Migration müssen Sie Ihre Tomcat-Umgebung verstehen. Sammeln Sie dazu Informationen zu Ihren Anwendungen und zu deren Abhängigkeiten.

Unter Inventar für Ihre Anwendungen erstellen wird gezeigt, wie Sie ein Inventar Ihrer Arbeitslasten und der zugehörigen Abhängigkeiten in der Tomcat-Umgebung erstellen. Folgen Sie dieser Anleitung und erstellen Sie Ihre Inventare. Wenn Sie mit dieser Arbeit fertig sind, lesen Sie dieses Dokument weiter.

Nachdem Sie ein Inventar Ihrer Arbeitslasten und der zugehörigen Abhängigkeiten erstellt haben, optimieren Sie das Inventar. Bewerten Sie die Aspekte und Funktionen, die Ihr Unternehmen bei der Migration seiner Tomcat-Anwendungen mit Migrate to Containers interessieren.

Bevor Sie Ihre Tomcat-Umgebung für die Migration bewerten, schließen Sie die Bewertungsschritte unter VMs mit Migrate to Containers zu Containern migrieren und Migration zu Google Cloud: Arbeitslasten bewerten und erkennen ab. Wenn Sie damit fertig sind, schließen Sie das Inventar Ihrer Arbeitslasten ab.

Beachten Sie Folgendes, um das Inventar Ihrer Arbeitslasten abzuschließen:

  • Betriebssysteme, die in Ihren Tomcat-Instanzen ausgeführt werden: Sammeln Sie Informationen zu den Betriebssystemen und den zugehörigen Lizenzen, die in Ihren Tomcat-Instanzen ausgeführt werden, und achten Sie darauf, dass die Betriebssysteme in den Kompatiblen Betriebssysteme und Kubernetes-Versionen aufgelistet sind.
  • Tomcat-Versionen, auf denen Ihre Anwendungen ausgeführt werden: Erfassen Sie Informationen zu den Tomcat-Versionen, auf denen Ihre Anwendungen ausgeführt werden, und stellen Sie sicher, dass sie mit Migrate zu Containern kompatibel sind.
  • In Ihren Tomcat-Instanzen bereitgestellte Anwendungen: Bewerten Sie, welche Anwendungen in jeder Tomcat-Instanz bereitgestellt werden. Ordnen Sie dann die Abhängigkeiten zwischen Ihren Anwendungen sowie zwischen Ihren Anwendungen und externen Diensten zu. Als Nächstes rufen Sie Informationen zu den Konfigurationsquellen Ihrer Anwendungen ab, die die folgenden Konfigurationen enthalten können:
    • Umgebungsvariablen
    • Nicht standardmäßige Tomcat-Installationspfade
    • LDAP-Nutzer-Registries
    • JDBC-Verbindungen (Java Database Connectivity)
    • Tomcat-Proxy
    • Java-Proxy
  • Zu Eignung für Container migrieren: Prüfen Sie, ob Ihre Tomcat-Anwendungen für die Migration mit Migrate to Containers geeignet sind. Migrate to Containers bietet ein Eignungsbewertungstool das Sie auf den VMs ausführen müssen, auf denen Ihre Tomcat-Instanzen gehostet werden, um eine Eignungspunktzahl zu berechnen und einen Migrationsprozess zu empfehlen. Migrate to Containers verwendet eine Reihe von Bewertungsregeln für die erfolgreiche Migration von Tomcat-Anwendungen.
  • Tomcat-Clustering: Tomcat-Clustering aktiviert die Sitzungsreplikation auf allen Tomcat-Knoten im Cluster. Einige Clustering-Implementierungen, einschließlich des integrierten Anbieters McastService-Mitgliedschaft, funktionieren in Kubernetes nicht ordnungsgemäß, da sie Multicast auf Netzwerkebene nicht unterstützen. Dies bedeutet, dass die Konfiguration von Tomcat-Clustering während der Migration eine manuelle Konfiguration erfordert. Weitere Informationen finden Sie unter ClusteringCloud im Apache Tomcat-Wiki.
  • Tomcat-Proxy: In vielen realen Szenarien ist Tomcat möglicherweise für die Ausführung hinter einem Reverse-Proxy konfiguriert. Hier sind die Hauptanwendungsfälle eines Reverse-Proxys:
  • Java-Proxy: Wenn Sie einen Proxyserver zur Steuerung des ausgehenden Traffics von Tomcat- und Java-Anwendungen verwenden, können Sie die Java-Proxyeinstellungen deaktivieren. Entfernen Sie die Proxyeinstellungen aus den Befehlszeilenoptionen der Java-VM. Konfigurieren Sie dann ein ASM-Egress-Gateway für Anthos Service Mesh, um das ausgehende Netzwerk von Ihrem Tomcat-Container zu steuern.

Bewertung abschließen

Nachdem Sie die Inventare erstellt haben, die sich auf Ihre Umgebung und Ihre Tomcat-Arbeitslasten beziehen, schließen Sie die restlichen Aktivitäten der Bewertungsphase ab, die unter Migration zu Google Cloud: Arbeitslasten bewerten und erkennen beschrieben sind. Wenn Sie mit dieser Arbeit fertig sind, lesen Sie dieses Dokument weiter.

Grundlage planen und aufbauen

Nachdem Sie die Anleitung unter Grundlagen planen und aufbauen befolgt haben, schließen Sie Ihre Tomcat-Grundlage ab:

  1. Prüfen Sie, ob Ihre Tomcat-Arbeitslasten und die Quellumgebung die Voraussetzungen für die Migration einer Tomcat-Arbeitslast erfüllen.
  2. Führen Sie mfit auf den VMs aus, auf denen Ihre Tomcat-Instanzen ausgeführt werden, um die Datenerfassungsphase abzuschließen. Weitere Informationen finden Sie unter Eignungsbewertungstool verwenden.

Informationen zum Bereitstellen und Konfigurieren von Migrate for Container und dessen Abhängigkeiten finden Sie unter Migrate to Container einrichten.

Wenn Sie mit dieser Arbeit fertig sind, lesen Sie dieses Dokument weiter.

Tomcat-Anwendungen in Container migrieren

Verwenden Sie in der Bereitstellungsphase die folgenden Meilensteine als Leitfaden.

Migrationsplan generieren und prüfen

Erstellen Sie einen Migrate to Containers-Migrationsplan für Ihre Tomcat-Anwendungen:

  1. Quellumgebungen als Migrate to Containers-Migrationsquellen konfigurieren: Zur Migration Ihrer Tomcat-Anwendungen benötigt Migrate to Containers Informationen zu den Quellumgebungen, in denen Ihre VMs ausgeführt werden. Sie haben diese Informationen mithilfe der Aufgaben erfasst, die im Abschnitt Inventar erstellen in diesem Dokument beschrieben wurden. Weitere Informationen zum Konfigurieren von Quellumgebungen finden Sie unter Migrationsquelle hinzufügen.
  2. Migrationsplan erstellen: Erstellen Sie einen Migrationsplan, wenn Sie angeben möchten, welche Tomcat-Anwendungen von einer Quellumgebung in eine unterstützte Zielumgebung migriert werden sollen. Sie können beispielsweise konfigurieren, wo Sie Ihre nichtflüchtigen Daten speichern möchten.

    Weitere Informationen zum Erstellen und Überwachen von Migrationsplänen finden Sie unter Migration erstellen. Verwenden Sie zum Erstellen eines Migrationsplans für Tomcat-Anwendungen das migctl-Befehlszeilentool, wie unter Migration ausführen beschrieben.

  3. Migrationspläne prüfen und anpassen: Nachdem Sie Migrationspläne für jede der zu migrierenden VMs generiert haben, prüfen und passen Sie jeden Plan an, um sicherzustellen, dass er Ihren Anforderungen entspricht. Weitere Informationen zum Anpassen von Migrationsplänen finden Sie unter Migrationsplan anpassen.

Migrationsartefakte und Bereitstellungsdeskriptoren generieren

Zum Generieren der Ziel-Tomcat-Artefakte für Ihre Anwendungen extrahiert Migrate to Containers die Anwendungen, die auf den in den Migrationsplänen konfigurierten VMs ausgeführt werden. Anschließend werden mehrere Artefakte erstellt und in einem Cloud Storage-Bucket platziert. Migrate to Containers generiert auch die Bereitstellungsdeskriptoren, die Sie anpassen und zum Bereitstellen von Instanzen der Container-Images in der Zielumgebung verwenden können.

Für jede migrierte Anwendung erstellt Migrate for Container einen Ordner mit folgendem Inhalt:

  • Dockerfile
  • Binärdateien von Anwendungen
  • Tomcat-Konfigurationsdateien
  • Build-Script
  • Skaffold-YAML-Datei zum Erstellen und Bereitstellen
  • (Optional) Script secrets.sh
  • (Optional) Logging-Archiv

Sie können den Fortschritt der Containerartefakte beobachten, die Sie erstellen und migrieren. Weitere Informationen zum Überwachen einer Migration finden Sie unter Migrierte Arbeitslasten überwachen.

Generierte Ressourcen und Deskriptoren prüfen und validieren

Nachdem Sie Containerartefakte und Bereitstellungsdeskriptoren mit Migrate to Containers generiert haben, prüfen und aktualisieren Sie diese Artefakte und Deskriptoren, um sicherzustellen, dass sie Ihren Anforderungen entsprechen. Berücksichtigen Sie beispielsweise folgende Aspekte.

  • Container-Image-Deskriptoren: Prüfen Sie die mit Migrate to Containers generierten Container-Image-Deskriptoren und achten Sie darauf, dass sie für die Containerarbeitslast ausreichend sind. Aktualisieren Sie den Wert FROM im generierten Dockerfile, wenn Sie das Basis-Container-Image aktualisieren müssen. Sie können die Umgebungsvariable CATALINA_OPTS auch im Dockerfile ändern, um JVM-Umgebungsvariablen festzulegen oder zu ändern.
  • Logging auf Anwendungsebene: Bei der Migration zu Containern wird automatisch ein modifiziertes Logging-Archiv generiert, mit dem Sie die Logging-Einstellung so ändern können, dass Logs anstelle von lokalen Dateien in die Konsole geschrieben werden.

Weitere Informationen zum Überprüfen von Containerartefakten und Bereitstellungsdeskriptoren finden Sie unter Artefakte prüfen.

Containerisierte Arbeitslasten in GKE, GKE Autopilot, Cloud Run oder GKE Enterprise bereitstellen und validieren

Wenn die Bereitstellungsdeskriptoren für Ihre Arbeitslasten bereit sind, können Sie die folgenden Aufgaben ausführen:

  1. Anwendungscontainer-Image erstellen: Erstellen Sie ein Anwendungscontainer-Image für die migrierte Arbeitslast. Eine Anleitung finden Sie unter Container-Image erstellen.
  2. Migrierte Anwendungen in der Zielumgebung bereitstellen.
  3. Migrierte Arbeitslasten überwachen: Nach der Bereitstellung Ihres Tomcat-Anwendungscontainers können Sie Daten zur Leistung in der Zielumgebung erfassen. Weitere Informationen finden Sie unter Migrierte Arbeitslasten überwachen.
  4. Migrierte Arbeitslasten einbinden: Integrieren Sie die Erstellung von Container-Artefakten und Bereitstellungsprozesse der Arbeitslasten in Ihre Bereitstellungsprozesse und Pipelines, nachdem Ihre Arbeitslasten in der Zielumgebung bereitgestellt wurden. Empfehlen wir die Migration von manuellen Bereitstellungen zu Automatisierte Bereitstellungen, wenn Sie keinen automatisierten Bereitstellungsprozess haben und Ihre Arbeitslasten manuell bereitstellen.

Migrate to Container deinstallieren

Nachdem Sie die Migration Ihrer Arbeitslasten mit Migrate to Containers abgeschlossen haben, sollten Sie die folgenden Aktionen ausführen:

  1. Achten Sie darauf, dass Sie alle Verweise auf die Artefakte haben, die während der Migrate to Containers generiert wurden.
  2. Migrate to Containers deinstallieren

Umgebung nach der Migration optimieren

Informationen zum Abschließen der Migration finden Sie unter Umgebung optimieren.

Sie können diese Tomcat-spezifischen Optimierungen für Ihre migrierten Tomcat-Anwendungen ausführen:

  • Logging anpassen: Im Gegensatz zu VMs, bei denen Logdateien normalerweise in das lokale Dateisystem geschrieben werden, werden Kubernetes-Logs normalerweise in stdout oder stderr gestreamt. Die Logs werden dann über ein dediziertes Backend wie Cloud Logging gespeichert, analysiert und abgefragt. Sie können die für Migrate for Container empfohlenen Änderungen im Archivartefakt logConfigs verwenden oder Ihre Logging-Konfiguration manuell ändern, um Logs in stdout oder stderr zu schreiben.
  • Sensible Daten sichern: Legen Sie Passwörter und andere sensible Daten in Kubernetes-Secrets fest. Verwenden Sie Kubernetes-Secrets, um Konfigurationsplatzhalter beim Containerstart zu ersetzen.
  • Ressourcenprofil optimieren: Optimieren Sie Ihre Ressourceneinschränkungen sowohl für Anfragen als auch für Limits, damit Kubernetes Ihre Pods effizient planen kann. Außerdem müssen Sie Ihre Ressourcen an die JVM-Heap-Größe anpassen, um OOM-Ausnahmen (Out of Memory) zu vermeiden.
  • Pod-Platzierung steuern: Wenn Ihre migrierten Tomcat-Anwendungen häufig miteinander kommunizieren, können Sie sie für die Ausführung auf denselben Knoten planen. Wenn die Steuerung der Pod-Platzierung für Ihre migrierten Anwendungen vorteilhaft wäre, finden Sie weitere Informationen unter Pods zu Knoten zuweisen.

Nächste Schritte