Container zu Google Cloud migrieren: Erste Schritte

In diesem Dokument wird beschrieben, wie Sie die Migration Ihrer Container zu Google Cloud planen, gestalten und durchführen können. Bei einer inkorrekten Vorgehensweise kann das Verschieben Ihrer Arbeitslasten von einer Umgebung in eine andere sehr schwierig sein. Seien Sie daher sehr sorgfältig bei der Planung und Durchführung Ihrer Migration.

Dieses Dokument ist Teil einer mehrteiligen Reihe zur Migration zu Google Cloud. Weitere Informationen zu der Reihe finden Sie unter Migration zu Google Cloud: Migrationspfad auswählen.

Dieses Dokument ist Teil einer Reihe zur Migration von Containern zu Google Cloud:

Dieses Dokument eignet sich für eine Vielzahl von Szenarien, z. B. für den Start von Containern lokal, in einer privaten Hostingumgebung oder bei einem anderen Cloud-Anbieter, aber auch für die Migration der gesamten Arbeitslast in Google Cloud oder die Verwaltung eines Teils der Arbeitslast lokal oder in einer privaten Hostingumgebung.

Dieses Dokument ist auch praktisch, wenn Sie die Möglichkeit einer Migration bewerten und prüfen möchten, wie diese aussehen könnte und welche Optionen Sie haben. Es gibt verschiedene Umgebungen, in denen ein Container Arbeitslasten ausführen kann, die in Google Cloud verfügbar sind. Die Auswahl einer Option hängt von mehreren Faktoren ab und keine Option ist von Natur aus besser als die anderen. Jede Umgebung hat ihre Stärken und Schwächen. So wählen Sie eine Umgebung aus:

  1. Legen Sie eine Reihe von Kriterien fest, um die Containerumgebungen zum Ausführen von Arbeitslasten zu bewerten.
  2. Prüfen Sie jede Umgebung anhand der Bewertungskriterien.
  3. Wählen Sie die Umgebung aus, die Ihren Anforderungen am besten entspricht.

Sie müssen nicht dieselbe Umgebung für alle Arbeitslasten auswählen. Wenn Sie verschiedene Arten von Arbeitslasten oder Klassen haben, können Sie für entsprechend unterschiedliche Umgebungen auswählen.

Migration zu Google Cloud gestalten

Zum Migrieren von Containern aus der Quellumgebung zu Google Cloud empfehlen wir das in der Reihe Migration zu Google Cloud beschriebene Framework.

Diese Grafik veranschaulicht den Migrationsprozess:

Migrationspfad mit vier Phasen

Das im vorherigen Diagramm dargestellte Framework umfasst vier Phasen:

  1. Assess (Bewerten). In dieser Phase bewerten Sie die Quellumgebung, bewerten die Arbeitslasten, die Sie zu Google Cloud migrieren möchten, und bewerten, welche Umgebung die einzelnen Arbeitslasten unterstützen kann.
  2. Plan (Planen). In dieser Phase erstellen Sie die grundlegende Infrastruktur für Ihre Arbeitslasten, z. B. die Bereitstellung der Ressourcenhierarchie und die Einrichtung des Netzwerkzugriffs.
  3. Deploy (Bereitstellen). In dieser Phase migrieren Sie die Container aus der Quellumgebung zu Google Cloud.
  4. Optimize (Optimieren). In dieser Phase beginnen Sie, die Cloud-Technologien und -Funktionen zu nutzen.

Kriterien zur Bewertung der Containerumgebungen für die Ausführung von Arbeitslasten festlegen

Für die Kriterien zur Bewertung der Optionen für die Ausführung von Arbeitslasten in der Containerumgebung berücksichtigen Sie die wichtigsten Funktionen, die Sie in diesen Umgebungen benötigen. Ermitteln Sie Ihre Arbeitslasten, um zu ermitteln, welche Features Sie am meisten benötigen. Weitere Informationen zur Bewertung Ihrer Arbeitslasten finden Sie unter Migration zu Google Cloud: Arbeitslasten bewerten und erkennen.

Die Beispiele für die Bewertungskriterien und die Reihenfolge, in der sie aufgelistet sind, sind nur ein Beispiel. Sie sollten Ihre Arbeitslasten prüfen, um eine Liste der Kriterien zu erstellen, die für Sie und Ihre Arbeitslasten wichtig sind, und diese nach Wichtigkeit sortieren. Nach der Bewertung der Arbeitslasten können Sie beispielsweise die folgenden Bewertungskriterien in Betracht ziehen, die in der Reihenfolge ihrer Wichtigkeit aufgelistet sind:

  1. Leistung: Hat die Umgebung zusätzlichen Aufwand, was die Leistung Ihrer Arbeitslasten beeinträchtigen kann?
  2. Skalierbarkeit: Welche Skalierbarkeitsfunktionen bietet die Umgebung? Sind sie für die Skalierbarkeitsanforderungen Ihrer Arbeitslasten sowohl in Bezug auf die Reaktionszeit als auch auf die Skalierungslogik ausreichend?
  3. Umfang der Kontrolle und Flexibilität: Wie viel Kontrolle möchten Sie in der Umgebung haben? Können Sie die Umgebung an Ihre Anforderungen anpassen?
  4. Zuverlässigkeit: Welche Garantien bietet die Umgebung? Sind sie für Ihre Arbeitslasten ausreichend? Ist die Umgebung verlässlich genug, um effektive Hochverfügbarkeits- und Notfallwiederherstellungsstrategien zu implementieren?
  5. Verwaltungsaufwand: Wie hoch ist der Aufwand für die Verwaltung der Umgebung? Müssen Sie Ihre Teams schulen, damit die erforderlichen Kenntnisse erlangt werden, oder können Sie das vorhandene Wissen nutzen?
  6. Voraussetzungen für die Nutzung des Dienstes: Gibt es bestimmte Anforderungen, technische Verträge oder Schnittstellen, denen Ihre Arbeitslasten entsprechen müssen? Müssen Sie viel Aufwand investieren, um Ihre Arbeitslast mit der Umgebung kompatibel zu machen?
  7. Datenpersistenz: Unterstützt die Containerumgebung zum Ausführen von Arbeitslasten die Datenpersistenz? Ist dies dauerhaft mit den Anforderungen Ihrer Arbeitslasten kompatibel, einschließlich Leistung, Zuverlässigkeit und rechtlichen Vorschriften?
  8. Preismodell und Kosten: Können Sie die Umgebung kostengünstig nutzen? Ist der richtige Return on Investment vom Wechsel zu einer Containerumgebung zur Ausführung von Arbeitslasten möglich?
  9. Zukunftssicher: Bietet die Umgebung Upgrade-Pfade, mit denen Sie Ihre Arbeitslasten weiterentwickeln können?
  10. Einbindung in andere Dienste: Kann die Umgebung in andere Google Cloud-Dienste und Dienste anderer Cloud-Anbieter eingebunden werden?
  11. Abhängigkeiten: Sind Sie durch die Umgebung von bestimmten Technologien, Paradigmen oder Schnittstellen abhängig? Verlangt die Umgebung die Portabilität Ihrer Arbeitslasten?
  12. Sicherheit. Erfüllt die Umgebung Ihre Sicherheits- und Datenschutzanforderungen?

Containerumgebung für die Ausführung von Arbeitslasten bewerten

In Google Cloud haben Sie verschiedene Optionen zum Ausführen von Containern. Zur Auswahl der besten Option für Ihre Arbeitslasten sollten Sie sie zuerst mit den von Ihnen eingerichteten Bewertungskriterien vergleichen. Sie weisen jeder Umgebung eine Punktzahl für jedes Bewertungskriterium aus einer beliebigen, geordneten Skala zu. Zum Beispiel können Sie jeder Bewertungsstufe eine Punktzahl von 1 bis 10 zuweisen.

Zum Ausführen von Containern in der Google Cloud empfehlen wir die folgenden Optionen, die in zunehmender Reihenfolge dargestellt werden, je nachdem, wie viel Kontrolle Sie über die zugrunde liegende Infrastruktur haben:

  1. Cloud Run und Cloud Run for Anthos
  2. Google Kubernetes Engine (GKE) und Anthos-Cluster
  3. Compute Engine

Gegebenenfalls können Sie einigen der Kriterien Punkte zuweisen, indem Sie die Produktdokumentation lesen. Beispielsweise können Sie Cloud Run bereits anhand der Leistung, Skalierbarkeit, des Grads der Kontrolle und Flexibilität, der Einbindung in andere Dienste, bewerten. Allerdings müssen Sie möglicherweise detailliertere Benchmarks und Simulationen entwerfen und ausführen, um nach anderen Kriterien Punkte verteilen zu können. Beispielsweise kann die Leistung verschiedener Containerlaufzeiten gemessen werden, um festzustellen, ob diese einen beträchtlichen Overhead für Ihre Arbeitslasten verursachen.

Cloud Run und Cloud Run for Anthos

Cloud Run ist eine verwaltete Plattform zur Ausführung containerisierter, zustandsloser Arbeitslasten, die auf Knative basieren. Containerisierte Arbeitslasten, die von Cloud Run verwaltet werden, können auf folgenden Plattformen ausgeführt werden:

  • Wenn Sie Cloud Run auswählen, werden Ihre Arbeitslasten in der von Google verwalteten Infrastruktur ausgeführt.
  • Wenn Sie Cloud Run for Anthos auswählen, werden Ihre Arbeitslasten in GKE ausgeführt, die in Google Cloud, lokal oder bei anderen Cloudanbietern ausgeführt werden können.

Verwenden Sie die folgende Liste, um Cloud Run und Cloud Run for Anthos anhand der zuvor festgelegten Kriterien zu bewerten:

  1. Leistung: Cloud Run und Cloud Run for Anthos verwenden Docker-Container, die eine ähnliche Leistung wie nicht containerbasierte Arbeitslasten haben, sodass die Container keinen nennenswerten Leistungsaufwand verursachen.
  2. Skalierbarkeit: Cloud Run skaliert die Instanzen Ihrer Arbeitslasten automatisch und Sie können Ihre Anwendung auf null Instanzen skalieren. Dies ist praktisch, wenn Ihre Arbeitslasten nicht ständig Instanzen ausführen müssen. Optimieren Sie die Arbeitslastinitialisierung, um die Startzeit der Instanz zu minimieren.
  3. Umfang der Kontrolle und Flexibilität: Cloud Run und Cloud Run for Anthos sind für Arbeitslasten geeignet, für die die vollständige Steuerung der Containerumgebung erforderlich ist, in der Ihre Arbeitslasten ausgeführt werden. Sie müssen jedoch nicht die Umgebung individuell anpassen.
  4. Zuverlässigkeit: Cloud Run und Cloud Run for Anthos können in Cloud Monitoring, Cloud Logging, Cloud-Audit-Logs und Error Reporting eingebunden werden. So haben Sie einen Überblick über die Leistungsüberwachung sowie Zugriff auf Container-, Anfrage-, Fehler- und Audit-Logs.
  5. Verwaltungsaufwand: Cloud Run und Cloud Run for Anthos verwalten die Umgebung, damit Sie sich auf Ihre Arbeitslasten konzentrieren können, anstatt sich um die Bereitstellung, Konfiguration und Wartung der zugrunde liegenden Infrastruktur zu kümmern.
  6. Voraussetzungen für die Nutzung des Dienstes: Für Ihre Arbeitslasten ist ein Containerlaufzeitvertrag erforderlich. Wenn Sie also keinen zusätzlichen Aufwand betreiben möchten, um sie mit Cloud Run kompatibel zu machen, empfehlen wir Ihnen, eine der anderen Optionen zu wählen. Weitere Informationen zu den Einschränkungen von Cloud Run finden Sie unter Bekannte Probleme mit Cloud Run.
  7. Datenpersistenz: Cloud Run und Cloud Run for Anthos sind zum Ausführen zustandsloser Container konzipiert. Wenn Ihre Arbeitslasten Anforderungen an die Datenpersistenz haben, müssen Sie ein weiteres Datenpersistenzsystem bereitstellen und konfigurieren. Wenn Sie für zustandsorientierte Arbeitslasten eine Containerlaufzeitumgebung benötigen, empfehlen wir Ihnen, eine andere Option auszuwählen.
  8. Preismodell und Kosten: Cloud Run berechnet die Rechenressourcen, die von Ihren Arbeitslasten verwendet werden. Cloud Run for Anthos ist im Anthos-Abo enthalten.
  9. Zukunftssicher: Mit Cloud Run können Sie Rollbacks, graduelle Einführungen und Trafficmigration machen. Sie können diese Features für Ihre Bereitstellungspipelines verwenden.
  10. Einbindung in andere Dienste: Cloud Run kann eine Verbindung zu einem VPC-Netzwerk (Virtual Private Cloud) herstellen, das den Zugriff auf Compute Engine-VMs und andere Ressourcen mit internen IP-Adressen ermöglicht.
  11. Abhängigkeiten: Cloud Run basiert auf Knative. Wenn Sie sich die Mühe machen, Ihre Arbeitslasten mit Knative kompatibel zu machen, können Sie Ihre containerisierten Arbeitslasten ohne weitere Änderungen in Cloud Run, GKE, Anthos clusters on VMware oder einer anderen Knative-kompatiblen Laufzeitumgebung ausführen.
  12. Sicherheit. In Cloud Run ausgeführte Arbeitslasten werden mit gVisor in einer Sandbox ausgeführt. Cloud Run for Anthos verwendet keine Container-Sandbox, jedoch die Standardfunktionen der Kubernetes-Containerisolation. Zum Schutz Ihrer Cloud Run-Ressourcen können Sie den Zugriff mit Identity and Access Management (IAM) verwalten und eine Dienstidentität konfigurieren.

Weitere Informationen finden Sie unter Cloud Run-Plattform auswählen.

GKE- und Anthos-Cluster

GKE- und Anthos-Cluster sind von Google verwaltete Dienste, die eine Containerumgebung zum Ausführen von Arbeitslasten bereitstellen. GKE- und Anthos-Cluster führen Ihre containerisierten Arbeitslasten in Kubernetes-Clustern aus. Mit GKE können Cluster in Google Cloud ausgeführt werden und mit Anthos-Clustern können Cluster in Google Cloud, lokal oder in anderen öffentlichen Cloud-Umgebungen ausgeführt werden.

Verwenden Sie die folgende Liste, um GKE- und Anthos-Cluster anhand der zuvor festgelegten Kriterien zu bewerten:

  1. Leistung: GKE- und Anthos-Cluster verwenden Docker-Container, die eine ähnliche Leistung wie nicht containerbasierte Arbeitslasten haben, sodass die Container keinen nennenswerten Leistungsaufwand verursachen.
  2. Skalierbarkeit: GKE- und Anthos-Cluster enthalten eine verfeinerte Skalierungslogik, die Sie an Ihre eigenen Anforderungen anpassen können. Sie können Ihre Arbeitslasten und Ihre GKE- und Anthos-Cluster sowohl vertikal als auch horizontal skalieren. Wenn Sie keine komplexe Skalierungslogik benötigen, sollten Sie eine andere Option auswählen, da Sie sonst viel Aufwand bei der Konfiguration effektiver Skalierbarkeitsmechanismen haben.
  3. Umfang der Kontrolle und Flexibilität: Sie können GKE- und Anthos-Cluster gemäß Ihren Anforderungen bereitstellen. Sie können alle Aspekte der Clusterknoten personalisieren, einschließlich Speicher, Netzwerk und Sicherheit. Google verwaltet die Steuerungsebene für Sie. Wenn Sie die Konfiguration der Steuerungsebene anpassen müssen, sollten Sie eine andere Option auswählen.
  4. Zuverlässigkeit: GKE- und Anthos-Cluster können in Cloud Monitoring und Cloud Logging eingebunden werden. Dadurch erhalten Sie eine vollständige Leistungsüberwachung und Zugriff auf Container, Anfragen, Fehler und Audit-Logs. Sie können die Zuverlässigkeit Ihrer Umgebung mit regionalen GKE-Clustern und Hochverfügbarkeitsoptionen für Anthos-Cluster erhöhen.
  5. Verwaltungsaufwand: Mit GKE müssen Sie die Steuerungsebene Ihrer Cluster nicht verwalten. Mit Anthos-Clustern können Sie alle Kubernetes-Cluster mit derselben Toolchain und denselben Prozessen verwalten. Mit diesem Feature wird der Aufwand für die Verwaltung der Umgebung erheblich reduziert. Sie müssen jedoch einen Teil der zugrunde liegenden Infrastruktur verwalten. Mit GKE können Sie beispielsweise Clusterknoten verwalten. Die meisten Verwaltungsvorgänge können automatisiert werden. Allerdings müssen Sie diesen Aufwand für die Wartung der Umgebung berücksichtigen. Wenn Sie eine vollständig verwaltete Containerumgebung zum Ausführen von Arbeitslasten benötigen, sollten Sie eine andere Option auswählen.
  6. Voraussetzungen für die Nutzung des Dienstes: Zum Bereitstellen Ihrer Arbeitslasten in GKE- oder Anthos-Clustern müssen Sie diese containerisieren.
  7. Datenpersistenz: GKE und Anthos können zustandsorientierte Anwendungen und nichtflüchtigen Speicher ausführen.
  8. Preismodell und Kosten: GKE berechnet eine Clusterverwaltungsgebühr und die von Ihren Clusterknoten verwendeten Ressourcen. Anthos-Cluster sind im Anthos-Abo enthalten.
  9. Zukunftssicher: GKE- und Anthos-Cluster haben die Features für komplexe Bereitstellungsprozesse.
  10. Einbindung in andere Dienste: Den in GKE- und Anthos-Clustern bereitgestellten Arbeitslasten kann Zugriff auf andere Google Cloud-Dienste gewährt werden, wenn Sie die erforderlichen Verbindungs-, Authentifizierungs- und Autorisierungssysteme einrichten.
  11. Abhängigkeiten: Nachdem die Arbeitslasten für die Ausführung in GKE- oder Anthos-Clustern containerisiert wurden, können Sie diese mit geringfügigen Anpassungen in andere Umgebungen portieren. Kubernetes ist eine portable Plattform, die Sie nicht an eine Anbieterumgebung bindet.
  12. Sicherheit. GKE bietet viele Möglichkeiten zum Schutz Ihrer Knoten, Steuerungsebene und Arbeitslasten:

Weitere Informationen finden Sie in der GKE-Sicherheitsübersicht.

Weitere Informationen zur Migration zu GKE- und Anthos-Clustern finden Sie unter Container zu Google Cloud migrieren: Kubernetes zu GKE migrieren und Container zu Google Cloud migrieren Von OpenShift zu Anthos migrieren

Compute Engine

Mit Compute Engine können Sie VMs in der Google-Infrastruktur erstellen und ausführen.

Sie können Container auf Compute Engine-VMs ausführen. Wir empfehlen jedoch, eine der anderen Containerumgebungen auszuwählen, um Arbeitslasten auszuführen, die in diesem Dokument beschrieben werden. Der Aufwand für den Betrieb einer selbstverwalteten Umgebung, die auf Compute Engine ausgeführt wird, überschreitet deutlich die Vorteile, die Sie im Gegenzug erhalten könnten.

Wenn Sie jedoch Container auf Compute Engine-VMs ausführen, verwenden Sie die folgende Liste, um Compute Engine anhand der zuvor festgelegten Kriterien zu bewerten:

  1. Leistung: Auf Compute Engine-VMs ist keine Containerlaufzeit vorinstalliert. Wählen Sie diejenige aus, die Ihren Anforderungen am besten entspricht.
  2. Skalierbarkeit: Compute Engine skaliert verwaltete Instanzgruppen zur automatischen Skalierung von VM-Instanzen. Wenn Sie die Autoscaling-Mechanismen einer verwalteten Instanzgruppe konfigurieren, definieren Sie die Autoscaling-Signale, die die Compute Engine zur Skalierung der verwalteten Instanzgruppe verwendet.
  3. Umfang der Kontrolle und Flexibilität: Sie können jeden Aspekt der Bereitstellung und Konfiguration jeder Compute Engine-VM anpassen, solange Sie die Compute Engine-Ressourcenkontingente einhalten.
  4. Zuverlässigkeit: Sie können Compute Engine-VMs mit Cloud Monitoring, Cloud Logging und Cloud-Audit-Logs beobachten, damit Sie über die Leistungsüberwachung und Logs umfassend informiert sind. Compute Engine nutzt auch verwaltete Instanzgruppen, Systemdiagnosen der Instanz und automatische Reparatur.
  5. Verwaltungsaufwand: Compute-VMs sind selbstverwaltet. Sie sollten daher für einen erheblichen Verwaltungsaufwand sorgen, um die Umgebung effektiv zu verwalten.
  6. Voraussetzungen für die Nutzung des Dienstes: Wenn Ihre Arbeitslasten auf einem der unterstützten Betriebssysteme ausgeführt werden, können Sie sie auf Compute Engine-VMs ausführen. Weitere Informationen zu Einschränkungen in Compute Engine finden Sie unter Bekannte Probleme mit Compute Engine.
  7. Datenpersistenz: Compute Engine bietet verschiedene Optionen für die Datenpersistenz, z. B. zonale nichtflüchtige Speicher, regionale nichtflüchtige Speicher und lokale SSDs (Solid-State)
  8. Preismodell und Kosten: Compute Engine berechnet die Ressourcen, die Ihre Arbeitslasten benötigen.
  9. Zukunftssicher: Sie können für jede Bereitstellung alle Integrations-, Bereitstellungs-, Bereitstellungs- und Konfigurationsverwaltungstools auf Compute Engine-VMs installieren.
  10. Einbindung in andere Dienste: Die in Compute Engine bereitgestellten Arbeitslasten können Zugriff auf andere Google Cloud-Dienste erhalten, wenn Sie die erforderlichen Verbindungs-, Authentifizierungs- und Autorisierungssysteme einrichten.
  11. Abhängigkeiten: Bei Verwendung von Compute Engine sind Sie nicht an ein proprietäres Produkt oder einen proprietären Dienst gebunden. Sie können eigene Betriebssystem-Images erstellen, damit die Bereitstellungs- und Konfigurationsprozesse automatisiert und portierbar sind.
  12. Sicherheit. Compute Engine unterstützt die Sicherheit Ihrer Umgebung:

Weitere Informationen finden Sie unter Google Cloud sichern.

Die richtige Option für Ihre Zielumgebung auswählen

In den vorherigen Abschnitten haben Sie jedem Kriterium einen Wert zugewiesen. Um die Gesamtpunktzahl jeder Containerumgebung zum Ausführen von Arbeitslasten zu berechnen, fügen Sie alle Bewertungen für diese Umgebung anhand der Kriterien hinzu. Beispiel: Wenn eine Umgebung 10 Punkte für das Leistungskriterium und 6 Punkte für das Skalierbarkeitskriterium erhalten hat, ist die Gesamtpunktzahl dieser Umgebung 16.

Sie haben auch die Möglichkeit, jedem Kriterium verschiedene Gewichtungen zuzuweisen, damit Sie die Bedeutung des jeweiligen Kriteriums darstellen können. Wenn die Leistung z. B. wichtiger als die Skalierbarkeit in Ihrer Bewertung ist, können Sie Multiplikatoren definieren, die Folgendes widerspiegeln: einen Faktor von 1,0 für Leistung und einen 0,7-Multiplikator für die Skalierbarkeit. Mit diesen Multipliers können Sie dann die Gesamtpunktzahl einer Option berechnen.

Nachdem die Gesamtpunktzahl der bewerteten Umgebungen berechnet wurde, sortieren Sie die Umgebungen nach ihrer Gesamtpunktzahl in absteigender Reihenfolge. Wählen Sie dann die Option mit dem höchsten Wert für die gewünschte Umgebung aus.

Es gibt mehrere Möglichkeiten, diese Daten darzustellen. Sie können die Ergebnisse beispielsweise mit einem Diagramm visualisieren, das zur Darstellung von multivariaten Daten geeignet ist, wie z. B. als Netzdiagramm.

Nächste Schritte