Widerstandsfähige Systeme konzipieren

Dieses Dokument beschreibt die Best Practices für die Erstellung von widerstandsfähigen Systemen in Compute Engine. Es bietet allgemeine Hinweise und deckt einige Features 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 widerstandsfähiges System ist ein System, das einem gewissen Ausfall oder einer Störung standhalten kann, ohne den Dienst zu unterbrechen oder Ihre Nutzung des Dienstes zu beeinträchtigen. Compute Engine ist zwar darauf ausgelegt, solche Störungen zu verhindern, doch sind bestimmte Ereignisse unvorhersehbar. Daher sollten Sie auf diese Ereignisse vorbereitet sein.

Arten von Ausfällen

Es kann vorkommen, dass eine oder mehrere der VMs aufgrund von System- oder Hardwarefehlern ausfallen. Die folgende Liste enthält einige Fehlerszenarien, die Sie beheben können:

  • Unerwarteter Ausfall einer einzelnen VM

    Eine einzelne VM kann aufgrund von Hardware- oder Systemfehlern unerwartet ausfallen. Sie sollten daher vorsorglich nichtflüchtige Speicher und Startskripts verwenden, um Ihre Daten zu speichern und Software nach dem Neustart der VM wieder zu aktivieren.

  • Unerwarteter Neustart einer einzelnen VM

    Es kann vorkommen, dass eine einzelne VM unerwartet ausfällt und neu gestartet wird. Im Gegensatz zu einem unerwarteten Ausfall einer einzelnen VM startet Compute Engine Ihre VM automatisch nach einem Ausfall neu. Sie sollten daher vorsorglich Ihre Daten sichern, nichtflüchtigen Speicher einsetzen und Startskripts verwenden, um Software schnell neu konfigurieren zu können.

  • Ausfälle von Zonen oder Regionen

    Ausfälle von Zonen und Regionen sind selten und können dazu führen, dass alle Ihre VMs in einer Zone oder Region nicht mehr zugänglich sind oder ausfallen. Sie sollten daher vorsorglich VMs über Regionen und Zonen verteilen und Load-Balancing implementieren. Außerdem sollten Sie Ihre Daten sichern oder den nichtflüchtigen Speicher in mehreren Zonen replizieren.

Tipps zur Erstellung von widerstandsfähigen Systemen

Konzipieren Sie Ihre Anwendung so, dass sie Ausfällen, Netzwerkstörungen und unerwarteten Notfällen standhalten kann, um gegen VM-Ausfälle gewappnet zu sein. Ein widerstandsfähiges System kann Ausfälle mühelos bewältigen, indem beispielsweise Traffic von einer nicht zugänglichen VM an eine Live-VM weitergeleitet oder Aufgaben beim Neustart automatisiert werden.

Hier finden Sie einige allgemeine Tipps zur Gestaltung eines widerstandsfähigen Systems, das Ausfällen standhalten kann.

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 dafür gesorgt, 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 VMs immer transparent abläuft.

Die Live-Migration ist eine Technologie, die ausgeführte VMs aus Systemen verschoben werden, für die Wartungsarbeiten anstehen. Compute Engine erledigt das automatisch.

Während der Live-Migration kann die Leistung Ihrer VM kurzfristig geringer sein. VMs, die eine konstante, maximale Leistung benötigen, können so konfiguriert werden, dass sie beendet und auf einem Host neu gestartet werden, der nicht an einem Wartungsereignis beteiligt ist. Diese Option eignet sich allgemein für Anwendungen, die auch für die Bewältigung von VM-Ausfällen oder Neustarts ausgelegt sind.

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

VMs verteilen

Erstellen Sie VMs in mehreren Regionen und Zonen, damit Ihnen alternative VMs zur Verfügung stehen, wenn eine Zone oder Region, in der sich eine Ihrer VMs befindet, ausfällt. Wenn Sie alle VMs in derselben Zone oder Region hosten, können Sie nicht mehr auf diese VMs zugreifen, falls die Zone oder Region nicht mehr erreichbar ist.

Zonenspezifische interne DNS-Namen verwenden

Wenn Sie interne DNS-Namen oder VM-Namen verwenden, um mit VMs 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 (Fully Qualified Domain Name, FQDN) für eine VM hat die folgenden Formate:

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

Dabei gilt:

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

Informationen dazu, ob eine VM zonale DNS-Namen oder globale DNS-Namen verwendet, finden Sie unter Internen DNS-Namen für eine VM-Instanz bestimmen.

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.

VM-Gruppen erstellen

Verwenden Sie verwaltete Instanzgruppen, um homogene Gruppen von VMs zu erstellen, damit Load-Balancer den Traffic auf mehrere VMs umleiten können, falls auf einer einzelnen VM ein Fehler auftritt.

Verwaltete Instanzgruppen (Managed Instance Groups, MIGs) bieten auch Features wie Autoscaling und automatische Reparatur. Mit der automatischen Skalierung können Sie Traffic-Spitzen durch Skalierung der Anzahl der VMs nach oben oder unten bewältigen – auf der Grundlage von spezifischen Signalen. Die automatische Reparatur führt eine Systemdiagnose durch und erstellt die fehlerhaften VMs gegebenenfalls automatisch neu.

MIGs sind auch für Regionen verfügbar, sodass Sie eine Gruppe von VMs erstellen können, die über mehrere Zonen in einer einzelnen Region verteilt sind. Weitere Informationen finden Sie unter Regionale MIGs erstellen und verwalten.

Load-Balancing verwenden

Google Cloud bietet einen Load-Balancing-Dienst, mit dem Sie Ihre VMs bei starkem Traffic vor Überlastung schützen können. Mit Cloud Load Balancing haben Sie folgende Möglichkeiten:

  • Sie können Ihre Anwendung mithilfe von regionalen MIGs auf VMs in mehreren Zonen bereitstellen. Dann können Sie eine Weiterleitungsregel konfigurieren, die dafür sorgt, dass der Traffic auf alle VMs 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.

  • VMs mithilfe des globalen Load-Balancings über mehrere Regionen erstellen. Durch HTTP(S)-Load-Balancing kann der Traffic an der Stelle in das Google Cloud-System eintreten, die dem Client am nächsten liegt. Das überregionale Load-Balancing sorgt für Redundanz. Wenn eine Region nicht erreichbar ist, wird der Traffic automatisch in eine andere Region umgeleitet. Auf diese Weise bleibt Ihr Dienst unter derselben externen IP-Adresse erreichbar.

  • Verwenden Sie Autoscaling, damit VMs bei zunehmender oder abnehmender Last automatisch zu einer MIG hinzugefügt oder gelöscht werden.

Darüber hinaus bietet Cloud Load Balancing Systemdiagnosen für VMs, damit Sie VM-Fehler besser erkennen und bewältigen können.

Start- und Shutdown-Skripts verwenden

Compute Engine bietet Start- und Shutdown-Skripts, die ausgeführt werden, wenn eine VM hochgefahren oder heruntergefahren wird. Mit Start- und Shutdown-Skripts können Aufgaben wie das Installieren von Software, das Ausführen von Updates, das Erstellen von Sicherungen und das Logging von Daten automatisiert werden.

Sowohl Start- als auch Shutdown-Skripts sind eine effiziente und praktische Möglichkeit für das Bootstrapping oder saubere Herunterfahren Ihrer VMs. Statt die VMs mit benutzerdefinierten Images zu konfigurieren, kann es sinnvoll sein, VMs mit Startskripts zu konfigurieren.

Startskripts werden beim Neustart der VM nach einem Ausfall ausgeführt. Sie können verwendet werden, um Software und Updates zu installieren. Mit Startskripts können Sie auch dafür sorgen, dass Dienste innerhalb der VM ausgeführt werden. Es ist oft einfacher, die Konfiguration einer VM in einem Startskript zu ändern, als herauszufinden, welche Dateien oder Byte sich in einem benutzerdefinierten Image geändert haben.

Shutdown-Skripts werden ausgeführt, wenn Ihre VM (absichtlich oder unabsichtlich) heruntergefahren wird. Shutdown-Skripts können Last-Minute-Aufgaben ausführen, wie das Sichern von Daten, das Speichern von Logs und das Beenden von Verbindungen, bevor Sie eine VM beenden.

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 Cloud Storage hochladen, Snapshots nichtflüchtiger Speicher erstellen oder Ihre Daten in einem nichtflüchtigen Speicher in einer anderen Region oder Zone replizieren.