Robuste Systeme konzipieren

Dieses Dokument beschreibt die Best Practices für die Erstellung von robusten Systemen auf Compute Engine. Es bietet allgemeine Hinweise und deckt einige Funktionen in Compute Engine ab, die dazu beitragen können, die Ausfallzeiten von Instanzen zu mindern und sich auf Zeiten vorzubereiten, in denen auf den Instanzen Ihrer virtuellen Maschinen (VM) ein unerwarteter Fehler auftritt.

Ein robustes System ist ein System, das einem gewissen Ausfall oder einer Störung standhalten kann, ohne den Service zu unterbrechen oder Ihre Nutzung des Dienstes zu beeinträchtigen. Während Compute Engine alles unternimmt, um solche Störungen zu verhindern, sind bestimmte Ereignisse unvorhersehbar und es ist am besten, auf diese Ereignisse vorbereitet zu sein.

Arten von Ausfällen verstehen

Es kann vorkommen, dass eine oder mehrere Ihrer VM-Instanzen aufgrund von System- oder Hardwareproblemen ausfallen. Einige der Fehler beinhalten Folgendes, sind aber nicht darauf beschränkt:

  • Unerwarteter Ausfall einer einzelnen Instanz

    Eine einzelne Instanz kann aufgrund von Hardware- oder Systemproblemen unerwartet ausfallen. Sie sollten Ihre Daten daher vorsorglich auf nichtflüchtigem Speicher sichern und Startskripts verwenden, um Software nach dem Neustart der Instanz wieder zu aktivieren.

  • Unerwarteter Neustart einer einzelnen Instanz

    Es kann vorkommen, dass eine einzelne Instanz unerwartet ausfällt und neu gestartet wird. Im Gegensatz zum unerwarteten Ausfall einer Instanz fällt diese hierbei aus und wird vom Google Compute Engine-Dienst automatisch neu gestartet. Sie sollten daher vorsorglich Ihre Daten sichern, nichtflüchtigen Speicher einsetzen und Startskripts verwenden, um Software schnell neu zu konfigurieren.

  • Ausfälle von Zonen oder Regionen

    Ausfälle von Zonen und Regionen sind selten und können dazu führen, dass alle Ihre Instanzen in einer Zone oder Region nicht mehr zugänglich sind oder ausfallen.

    Sie sollten daher vorsorglich Instanzen über Regionen und Zonen verteilen und ein Load-Balancing implementieren. Außerdem sollten Sie Ihre Daten sichern oder den nichtflüchtigen Speicher in mehreren Zonen replizieren.

Tipps zur Erstellung von robusten Systemen

Um die Auswirkungen von Instanzausfällen zu minimieren, sollten Sie Ihre Anwendung auf dem Google Compute Engine-Dienst so gestalten, dass sie Ausfällen, Netzwerkstörungen und unerwarteten Notfällen gewachsen ist. Ein robustes System sollte Ausfälle problemlos bewältigen. Dazu gehört, Traffic von einer ausgefallenen Instanz zu einer funktionierenden umzuleiten oder Aufgaben beim Neustart zu automatisieren.

Hier finden Sie einige allgemeine Tipps zur Gestaltung eines robusten Systems, das gegen Ausfälle gewappnet ist.

Verwenden Sie Live-Migration

Google führt regelmäßig Wartungsarbeiten an der Infrastruktur durch: Durch Patches wird die Software auf den neuesten Stand gebracht, es werden Routinetests und vorbeugende Wartungsaufgaben ausgeführt und es wird ganz allgemein sichergestellt, dass unsere Infrastruktur so sicher, schnell und effizient wie möglich ist. Mithilfe der Live-Migration sorgt Compute Engine dafür, dass diese Infrastrukturwartung für Ihre VM-Instanzen immer transparent abläuft.

Die Live-Migration ist eine Technologie, die Google entwickelt hat, um Ihre laufenden Instanzen aus Systemen herauszunehmen, für die Wartungsarbeiten anstehen. Compute Engine erledigt dies automatisch.

Während der Live-Migration kann die Leistung Ihrer Instanz kurzfristig geringer sein. Sie haben auch die Möglichkeit, Ihre VM-Instanzen so zu konfigurieren, dass sie vor Wartungsarbeiten beendet und an anderer Stelle neu gestartet werden. Diese Option ist für Instanzen geeignet, die eine konstante, maximale Leistung benötigen, und setzt voraus, dass Ihre gesamte Anwendung zur Bewältigung von Instanzausfällen oder -neustarts ausgelegt ist.

Weitere Informationen dazu, wie Sie Ihre virtuellen Maschinen für die Live-Migration konfigurieren, oder sie so konfigurieren, dass sie stattdessen neu gestartet und nicht migriert werden, finden Sie unter Zeitplanoptionen für Instanzen festlegen.

Weitere Informationen zur Live-Migration finden Sie in der Dokumentation zur Live-Migration.

Instanzen verteilen

Erstellen Sie Instanzen in mehr als einer Region und Zone, damit Ihnen alternative VM-Instanzen zur Verfügung stehen, wenn eine Zone oder Region, in der sich eine Ihrer Instanzen befindet, ausfällt. Wenn Sie alle Instanzen in derselben Zone oder Region hosten, können Sie nicht mehr darauf zugreifen, falls die Zone oder Region nicht mehr erreichbar ist.

Zonenspezifische interne DNS-Namen verwenden

Wenn Sie interne DNS-Namen oder Instanznamen verwenden, um mit Instanzen im internen Compute Engine-Netzwerk zu kommunizieren, weichen Sie stattdessen auf zonale DNS-Namen aus. Interne DNS-Server sind auf alle Zonen verteilt. Deshalb werden zonale DNS-Namen auch dann aufgelöst, wenn es an anderen Orten zu Fehlern kommt. Ein interner vollständig qualifizierter Domainname (FQDN) für eine Instanz hat die folgenden Formate:

  • Instanzen mit zonalem DNS: [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal
  • Instanzen mit globalem DNS: [INSTANCE_NAME].c.[PROJECT_ID].internal

Dabei gilt:

  • [INSTANCE_NAME] ist der Name der Instanz.
  • [ZONE] ist die Zone, in der sich Ihre Instanz befindet.
  • [PROJECT_ID] ist das Projekt, zu dem die Instanz gehört.

Informationen dazu, ob eine Instanz zonale DNS-Namen oder globale DNS-Namen verwendet, finden Sie unter DNS-Namen der Instanz aufrufen.

Wenn Ihr Projekt globale DNS-Namen verwendet, können Sie Ihre Anwendungen für zonale DNS-Namen und Suchpfade vorbereiten. Weitere Informationen finden Sie unter Zu zonalen DNS-Namen migrieren.

Instanzgruppen erstellen

Verwenden Sie verwaltete Instanzgruppen, um homogene Gruppen von Instanzen zu erstellen, damit das Lastenausgleichsmodul den Traffic auf mehr als eine VM-Instanz umleiten kann, falls auf einer einzelnen VM ein Fehler auftritt.

Verwaltete Instanzgruppen bieten auch Features wie Autoscaling und automatische Reparatur. Mit der automatischen Skalierung können Sie Traffic-Spitzen durch Skalierung der Anzahl der VM-Instanzen nach oben oder unten, auf der Grundlage von spezifischen Signalen, bewältigen. Die automatische Fehlerbehebung führt eine Systemdiagnose und gegebenenfalls die automatische Reparatur fehlerhafter Instanzen durch.

Verwaltete Instanzgruppen sind auch für Regionen verfügbar, sodass Sie eine Gruppe von VM-Instanzen erstellen können, die über mehrere Zonen in einer einzigen Region verteilt sind. Weitere Informationen hierzu finden Sie unter Instanzen mithilfe regional verwalteter Instanzgruppen verteilen.

Lastenausgleich verwenden

Google Cloud Platform bietet einen Lastenausgleichsdienst, mit dem Sie Zeiten mit hohem Datenaufkommen bewältigen können, damit Ihre Instanzen nicht überlastet werden. Mit dem Load-Balancing-Dienst können Sie:

  • Ihre Anwendung mithilfe regional verwalteter Instanzgruppen auf Instanzen in mehreren Zonen erstellen. Konfigurieren Sie dann eine Weiterleitungsregel, die dafür sorgt, dass der Traffic auf alle VM-Instanzen in allen Zonen innerhalb der Region verteilt wird. Mit jeder Weiterleitungsregel können Sie mithilfe einer externen IP-Adresse einen Einstiegspunkt für Ihre Anwendung definieren.

  • Instanzen mithilfe des globalen Load-Balancings über mehrere Regionen erstellen. Mit dem HTTP(S)-Load-Balancing kann der Traffic an einem Standort in das Google Cloud Platform-System übergeben werden, der dem Client am nächsten ist. Das überregionale Load-Balancing sorgt für Redundanz. Wenn eine Region nicht erreichbar ist, wird der Traffic automatisch in eine andere Region umgeleitet, damit Ihr Dienst weiter unter derselben externen IP-Adresse verfügbar ist.

  • Verwenden Sie Autoscaling, damit Instanzen bei zunehmender oder abnehmender Last automatisch zu einer verwalteten Instanzgruppe hinzugefügt bzw. aus ihr gelöscht werden.

Darüber hinaus bietet der Load-Balancing-Dienst Systemdiagnosen für VM-Instanzen, die Sie dabei unterstützen, Instanzausfälle zu erkennen und zu bewältigen.

Weitere Informationen finden Sie in der Übersicht über das Load-Balancing und der Dokumentation zum Load-Balancing.

Start- und Shutdown-Skripts verwenden

Compute Engine bietet Start- und Shutdown-Skripts an, die ausgeführt werden, wenn eine Instanz hochgefahren oder heruntergefahren wird. Diese Skripts können Aufgaben wie die Installation von Software, das Ausführen von Updates, das Erstellen von Sicherungen, das Protokollieren von Daten und so weiter automatisieren, wenn Ihre Instanz zuerst gestartet wird oder wenn Ihre Instanz heruntergefahren wird, egal ob absichtlich oder nicht.

Sowohl Start- als auch Shutdown-Skripts sind eine effiziente und praktische Möglichkeit für das Bootstrapping oder saubere Herunterfahren Ihrer Instanzen. Anstatt die Instanzen mit benutzerdefinierten Betriebssystem-Images zu konfigurieren, kann es sinnvoll sein, Instanzen mithilfe von Startskripts zu konfigurieren. Startskripts werden ausgeführt, wenn die Instanz nach einem Ausfall neu gestartet wird. Sie können dazu genutzt werden, Software und Aktualisierungen zu installieren sowie sicherzustellen, dass Dienste auf der VM laufen. Die Änderungen zur Konfiguration einer Instanz in einem Startskript zu codieren, ist einfacher, als zu versuchen herauszufinden, welche Dateien oder Bytes sich in einem benutzerdefinierten Image geändert haben.

Shutdown-Skripts können Last-Minute-Aufgaben ausführen, wie das Sichern von Daten, das Speichern von Protokollen und das Beenden von Verbindungen, bevor Sie eine Instanz anhalten.

Weitere Informationen finden Sie unter Startskripts ausführen und Shutdown-Skripts ausführen.

Daten sichern

Sichern Sie Ihre Daten regelmäßig und an mehreren Speicherorten. Sie können Ihre Dateien in Google Cloud Storage sichern, Snapshots persistenter Festplatten erstellen oder Ihre Daten auf einer persistenten Festplatte in einer anderen Region oder Zone replizieren.

So kopieren Sie Dateien aus einer Instanz in Google Cloud Storage:

  1. Melden Sie sich bei Ihrer Instanz an:

    gcloud compute ssh example-instance
    
  2. Wenn Sie das gsutil-Tool auf dieser Instanz noch nie benutzt haben, richten Sie Ihre Anmeldedaten ein.

    gcloud init
    

    Falls Sie Ihre Instanz so konfiguriert haben, dass sie ein Dienstkonto mit einem Google Cloud Storage-Bereich verwendet, können Sie diesen und den nächsten Schritt überspringen.

  3. Befolgen Sie die Anweisungen zur Authentifizierung bei Google Cloud Storage.

  4. Kopieren Sie Ihre Daten mit dem folgenden Befehl in Google Cloud Storage:

    gsutil cp <file1> <file2> <file3> ...  gs://<your bucket>
    

Sie können Dateien mit dem Tool gcloud compute auch auf einen lokalen Computer kopieren. Weitere Informationen finden Sie unter Dateien zwischen einer Instanz und dem lokalen Computer kopieren.

Weitere Informationen

Hat Ihnen diese Seite weitergeholfen? Teilen Sie uns Ihr Feedback mit:

Feedback geben zu...

Compute Engine-Dokumentation