Autoscaler-Tool – Übersicht

Auf dieser Seite wird das Autoscaling-Tool für Spanner (Autoscaling) vorgestellt, ein Open-Source-Tool, das Sie als Begleittool für Spanner verwenden können. Dieses Tool können Sie die Rechenkapazität in einer oder mehreren Spanner-Instanzen auf Basis der genutzten Kapazität.

Weitere Informationen zur Skalierung in Spanner finden Sie unter Autoscaling von Spanner Informationen zum Bereitstellen des Autoscaling-Tools finden Sie hier:

Auf dieser Seite werden Features, Architektur, Konfiguration und Bereitstellung vorgestellt. Topologien des Autoscalings. Die Themen, die diese Reihe fortsetzen, führen Sie durch die Bereitstellung von Autoscaling in jeder der verschiedenen Topologien.

Autoscaling

Mit dem Autoscaling-Tool können Sie die Auslastung und Leistung Ihrer Spanner-Bereitstellungen. Damit Sie ein Gleichgewicht zwischen Kostenkontrolle und die Leistungsanforderungen erfüllen, überwacht das Autoscaling-Tool Ihre Instanzen und Hinzufügen oder Entfernen von Knoten oder Verarbeitungseinheiten, um sicherzustellen, dass diese im folgende Parameter:

Durch Autoscaling von Spanner-Bereitstellungen kann Ihre Infrastruktur sich automatisch an die Lastanforderungen anpassen und skalieren, Maßnahme ergreifen müssen. Durch das Autoscaling wird auch die Größe der bereitgestellten Infrastruktur angepasst. So können Sie die Kosten senken.

Architektur

In diesem Abschnitt werden die Komponenten von Autoscaling und ihre jeweiligen Zwecke ausführlicher beschrieben.

Die Architektur des Autoscaling-Tools besteht aus Cloud Scheduler , zwei Pub/Sub Themen, zwei Cloud Run-Funktionen und Firestore . Die Cloud Monitoring API wird verwendet, um CPU-Auslastung und Speichermesswerte für Spanner-Instanzen abzurufen.

Cloud Scheduler

Mit Cloud Scheduler können Sie festlegen, wie oft das Autoscaling-Tool die Grenzwerte der Skalierungsmesswerte Ihrer Spanner-Instanzen überprüft. Ein Cloud Scheduler-Job kann eine oder mehrere Instanzen gleichzeitig prüfen. Sie können beliebig viele Jobzeitpläne definieren.

Cloud Run-Funktion für Polling

Die Poller-Cloud Run-Funktion ist für das Erfassen und Verarbeiten der Zeitachsenmesswerte für eine oder mehrere Spanner-Instanzen zuständig. Poller verarbeitet die Messwertdaten für Spanner-Instanz erstellen, sodass nur die relevantesten Datenpunkte ausgewertet und an die Cloud Run-Funktion Scaler gesendet. Die Vorverarbeitung mit der Cloud Run-Funktion Poller vereinfacht, zur Bewertung von Grenzwerten für regional, biregional und multiregional Spanner-Instanzen.

Scaler Cloud Run-Funktion

Die Scaler-Cloud Run-Funktion wertet die Datenpunkte aus, die von der Poller-Cloud Run-Funktion empfangen werden. Dabei wird ermittelt, ob die Anzahl der Knoten angepasst werden muss und, wenn ja, in welchem Umfang. Cloud Run-Funktion vergleicht die Messwerte mit dem Grenzwert plus oder minus einem zulässigen Marge und passt die Anzahl der Knoten oder Verarbeitungseinheiten -Skalierungsmethode. Weitere Informationen zu Skalierungsmethoden finden Sie unter Autoscaling-Funktionen. .

Operativer Ablauf

In diesem Abschnitt wird das operative Modell des Autoscaling-Tools beschrieben, wie im folgenden Architekturdiagramm dargestellt.

Operatives Autoscaling-Modell.

  1. Sie definieren den Zeitplan, die Zeit und die Häufigkeit Ihrer Autoscaling-Jobs in Cloud Scheduler
  2. Nach dem von Ihnen definierten Zeitplan überträgt Cloud Scheduler eine Nachricht mit einer JSON-Nutzlast mit den Konfigurationsparametern des Autoscaling-Tools für eine oder mehrere Spanner-Instanzen in das Pub/Sub-Thema „Polling“.
  3. Wenn die Nachricht im Abfragethema veröffentlicht wird, ist eine Instanz des Die Cloud Run-Funktion Poller wird zum Verarbeiten der Nachricht erstellt.
  4. Cloud Run-Funktion „Poller“ liest die Nachrichtennutzlast und fragt die Cloud Monitoring API ab, um Auslastungsmesswerte für jede Spanner-Instanz.
  5. Für jede in der Nachricht aufgeführte Spanner-Instanz enthält der Die Abfragefunktion überträgt eine Nachricht in das Scaling Pub/Sub. Thema, das die Messwerte und Konfigurationsparameter enthält, die bewertet werden sollen. eine bestimmte Spanner-Instanz erstellt.
  6. Für jede an das Scaler-Thema gesendete Nachricht Die Cloud Run-Funktion führt Folgendes aus:

    1. Vergleicht die Messwerte der Spanner-Instanz mit dem konfigurierten Schwellenwerten plus oder minus einem konfigurierbaren Schwellenwert margin zurück.

    Sie können die Marge selbst konfigurieren oder den Standardwert verwenden. 1. Legt fest, ob die Instanz skaliert werden soll. 1. Berechnet die Anzahl der Knoten oder Verarbeitungseinheiten, die die Instanz basierend auf der gewählten Skalierungsmethode skaliert werden soll.

  7. Die Cloud Run-Funktion Scaler ruft den Zeitpunkt ab, zu dem die Instanz und vergleicht sie mit dem aktuellen Zeit, um zu bestimmen, ob das Hoch- oder Herunterskalieren basierend auf der Cooldown-Zeit erlaubt ist Zeiträume.

  8. Wenn die konfigurierte Wartezeit abgelaufen ist, Cloud Run-Funktion sendet eine Anfrage an Spanner Instanz, die hoch- oder herunterskaliert werden soll.

Während des gesamten Ablaufs schreibt das Autoscaling-Tool eine Zusammenfassung der Empfehlungen. und Aktionen für Cloud Logging für Tracking und Auditing.

Unabhängig von der gewählten Bereitstellungstopologie bleibt der Autoscaling-Vorgang unverändert.

Autoscaling-Features

In diesem Abschnitt werden die wichtigsten Funktionen des Autoscaler-Tools beschrieben.

Mehrere Instanzen verwalten

Das Autoscaling-Tool kann mehrere Spanner-Instanzen projektübergreifend verwalten. Multiregionale, Dual-Region- und regionale Instanzen haben unterschiedliche Nutzungsgrenzwerte, die für die Skalierung verwendet werden. Beispielsweise werden multiregionale und Dual-Region-Bereitstellungen mit 45 % CPU-Auslastung mit hoher Priorität skaliert, während regionale Bereitstellungen auf 65 % CPU-Auslastung mit hoher Priorität skaliert werden, jeweils plus oder minus einer zulässigen Marge. Weitere Informationen zu den verschiedenen Skalierungsgrenzwerten finden Sie unter Benachrichtigungen für eine hohe CPU-Auslastung.

Unabhängige Konfigurationsparameter

Jede automatisch skalierte Spanner-Instanz kann eine oder mehrere Abfragen haben Zeitpläne. Jeder Abfragezeitplan hat eigene Konfigurationsparameter.

Diese Parameter bestimmen die folgenden Faktoren:

  • Die minimale und maximale Anzahl von Knoten oder Verarbeitungseinheiten, die steuern, wie klein oder groß Ihre Instanz sein kann, sodass Sie die Kosten kontrollieren können.
  • Die Skalierungsmethode, mit der die Spanner-Instanz an Ihre Arbeitslast angepasst wird.
  • Wartezeiten damit Spanner Datenaufteilungen verwalten kann.

Unterschiedliche Skalierungsmethoden für verschiedene Arbeitslasten

Das Autoscaling-Tool bietet drei verschiedene Skalierungsmethoden für Spanner-Instanzen skalieren: schrittweise, linear und direkt. Jede Methode unterstützt unterschiedliche Arten von Arbeitslasten. Sie können eine oder mehrere Methoden auf jede Spanner-Instanz anwenden, die automatisch skaliert wird, wenn Sie unabhängige Abfragezeitpläne erstellen.

Schrittweise

Die schrittweise Skalierung ist für Arbeitslasten mit kleinen oder mehreren Spitzen nützlich. Dadurch werden Kapazitäten bereitgestellt, um sie mit einem einzigen Autoscaling-Ereignis auszugleichen.

Das folgende Diagramm zeigt ein Lastmuster mit mehreren Lastplateaus oder -schritten, bei denen jeder Schritt mehrere kleine Spitzen hat. Dieses Muster eignet sich gut für die schrittweise Methode.

Lastmuster mit mehreren Schritten.

Wenn die Belastungsschwelle überschritten wird, stellt diese Methode Knoten oder Verarbeitungseinheiten bereit und entfernt diese mithilfe einer festen, aber konfigurierbaren Zahl. Zum Beispiel werden drei Knoten für jede Skalierungsaktion hinzugefügt oder entfernt werden. Wenn Sie die Konfiguration ändern, Sie können jederzeit größere Kapazitätsstufen hinzufügen oder entfernen.

Linear

Die lineare Skalierung eignet sich am besten für Lastmuster, die sich allmählich ändern oder nur wenige große Spitzen haben. Die Methode berechnet die Mindestanzahl an Knoten oder Verarbeitungseinheiten, die erforderlich sind, damit die Auslastung unter dem Skalierungsschwellenwert liegt. Die die Anzahl der hinzugefügten oder entfernten Knoten oder Verarbeitungseinheiten bei jedem Skalierungsereignis nicht auf einen festen Schrittwert beschränkt.

Das Beispiellastmuster im folgenden Diagramm zeigt größere plötzliche Zu- und Abnahmen der Last. Diese Schwankungen werden nicht wie im vorherigen Diagramm in diskreten Schritten gruppiert. Dieses Muster kann mit linearer Skalierung einfacher verarbeitet werden.

Lastmuster mit Schwankungen.

Das Autoscaling-Tool verwendet das Verhältnis der beobachteten Auslastung zur um zu berechnen, ob Knoten hinzugefügt oder subtrahiert werden Verarbeitungseinheiten aus der aktuellen Gesamtzahl.

Die neue Formel zur Berechnung der neuen Anzahl von Knoten oder Verarbeitungseinheiten lautet:

newSize = currentSize * currentUtilization / utilizationThreshold

Direkt

Die direkte Skalierung bietet eine sofortige Erhöhung der Kapazität. Diese Methode ist für die Unterstützung von Batcharbeitslasten gedacht, bei denen gemäß einem Zeitplan mit einer bekannten Startzeit regelmäßig eine höhere Knotenzahl erforderlich ist. Bei dieser Methode wird die Instanz bis zur maximal zulässigen Anzahl von Knoten oder Verarbeitungseinheiten im Zeitplan skaliert. Die Methode soll zusätzlich zur linearen oder schrittweisen Methode verwendet werden.

Das folgende Diagramm zeigt die große geplante Erhöhung der Last, wobei dem Autoscaling vorab Kapazität für die direkte Methode bereitgestellt wurde.

Lastmuster mit vorab bereitgestellter direkter Skalierung.

Sobald die Batcharbeitslast abgeschlossen ist und die Auslastung wieder auf dem normalen Niveau ist, wird je nach Konfiguration die lineare oder schrittweise Skalierung angewendet, um die Instanz automatisch herunterzuskalieren.

Bereitstellungsmethoden

Das Autoscaling-Tool kann entweder in einem einzelnen Projekt oder zusammen mit den von ihm verwalteten Spanner-Instanzen. Das Autoscaling-Tool ist für Flexibilität ausgelegt und kann die bestehende Trennung der Aufgabenbereiche der Betriebs- und Anwendungsteams berücksichtigen. Die Verantwortung für die Konfiguration des Autoscalings von Spanner-Instanzen können mit einem einzigen operativen Team zentralisiert oder auf mehrere die Teams näher an den Anwendungen, die von diesen Spanner bereitgestellt werden, Instanzen.

Die verschiedenen Bereitstellungsmodelle werden unter Bereitstellungstopologien ausführlicher behandelt.

Serverlose Bereitstellung und einfache Verwaltung

Das Autoscaling-Tool wird ausschließlich mit der serverlosen und verwaltungsarmen Google Cloud entwickelt. wie Cloud Run-Funktionen, Pub/Sub, Cloud Scheduler und Firestore. Bei diesem Ansatz wird die die Kosten und den operativen Aufwand bei der Ausführung des Autoscaling-Tools.

Mithilfe der integrierten Google Cloud-Tools kann das Autoscaling IAM für die Authentifizierung und Autorisierung in vollem Umfang nutzen.

Konfiguration

Das Autoscaling-Tool bietet verschiedene Konfigurationsoptionen, die Skalierung Ihrer Spanner-Bereitstellungen verwalten. Die nächsten Abschnitte werden die grundlegenden Konfigurationsoptionen und die erweiterten Konfigurationsoptionen beschrieben.

Basiskonfiguration

Das Autoscaling-Tool verwaltet Spanner-Instanzen über die in Cloud Scheduler definierte Konfiguration. Wenn mehrere Spanner-Instanzen mit demselben Intervall abgefragt werden müssen, empfehlen wir Ihnen, diese im selben Cloud Scheduler-Job zu konfigurieren. Die Konfiguration der einzelnen Instanzen wird als JSON-Objekt dargestellt. Das folgende Beispiel zeigt eine Konfiguration, bei der zwei Spanner-Instanzen mit einem einzigen Cloud Scheduler-Job verwaltet werden:

   [
    {
        "projectId": "my-spanner-project", "instanceId": "spanner1",
        "scalerPubSubTopic": "projects/my-spanner-project/topics/spanner-scaling",
        "units": "NODES", "minSize": 1, "maxSize": 3
     },
     {
        "projectId":
        "different-project", "instanceId": "another-spanner1", "scalerPubSubTopic":
        "projects/my-spanner-project/topics/spanner-scaling", "units":
        "PROCESSING_UNITS", "minSize": 500, "maxSize": 3000, "scalingMethod": "DIRECT"
    }
   ]

Spanner-Instanzen können mehrere Konfigurationen für verschiedene Cloud Scheduler-Jobs haben. Eine Instanz kann beispielsweise eine Autoscaling-Konfiguration mit der linearen Methode für normale Vorgänge haben, aber auch eine weitere Autoscaling-Konfiguration mit der direkten Methode für geplante Batcharbeitslasten.

Wenn der Cloud Scheduler-Job ausgeführt wird, sendet er eine Pub/Sub-Nachricht an das Abfrage-Pub/Sub-Thema. Die Nutzlast dieser Nachricht ist das JSON-Array der Konfigurationsobjekte für alle Instanzen, die im selben Job konfiguriert wurden. Eine vollständige Liste der Konfigurationsoptionen finden Sie in der Poller-README-Datei.

Erweiterte Konfiguration

Das Autoscaling-Tool bietet erweiterte Konfigurationsoptionen, mit denen Sie präziser steuern können, wann und wie Ihre Spanner-Instanzen verwaltet werden. In den folgenden Abschnitten wird eine Auswahl dieser Steuerelemente vorgestellt.

Benutzerdefinierte Grenzwerte

Das Autoscaling-Tool ermittelt die Anzahl der Knoten oder Verarbeitungseinheiten, die hinzugefügt oder subtrahiert werden, mithilfe der Methode Empfohlene Spanner-Schwellenwerte für die folgenden Lastmesswerte:

  • CPU mit hoher Priorität
  • Gleitender 24-Stunden-Durchschnitt der CPU
  • Speicherauslastung

Wir empfehlen, die Standardgrenzwerte zu verwenden, wie unter Benachrichtigungen für Spanner-Messwerte erstellen . In einigen Fällen möchten Sie vielleicht die Schwellenwerte ändern, die von dem Autoscaling-Tool. Beispielsweise können Sie niedrigere Grenzwerte verwenden, damit das Autoscaling-Tool schneller reagiert als bei höheren Grenzwerten. Diese Änderung verhindert, dass Benachrichtigungen bei höheren Grenzwerten ausgelöst werden.

Benutzerdefinierte Messwerte

Die Standardmesswerte im Autoscaling-Tool decken zwar die meisten Leistungs- und Skalierungsszenarien ab, in einigen Fällen müssen Sie jedoch eigene Messwerte festlegen, um zu bestimmen, wann eine Skalierung erfolgt. In diesen Fällen definieren Sie benutzerdefinierte Messwerte in der Konfiguration mithilfe der metrics Property.

Ränder

Eine Marge definiert eine obere und eine untere Grenze um den Grenzwert. Das Autoscaling löst das Tool nur dann ein Autoscaling-Ereignis aus, wenn der Messwert der obere Grenzwert oder kleiner als der untere Grenzwert ist.

Das Ziel dieses Parameters besteht darin, Autoscaling-Ereignisse zu vermeiden, die bei kleinen Arbeitslastschwankungen um den Grenzwert ausgelöst werden. So werden die Schwankungen der Autoscaling-Aktionen reduziert. Der Grenzwert und die Marge zusammen definieren den Bereich so, wie der Messwert sein soll:

[threshold - margin, threshold + margin]
. Je kleiner die Marge, desto enger ist der Bereich. Dies führt zu einer höheren Wahrscheinlichkeit, dass ein Autoscaling-Ereignis ausgelöst wird.

Die Angabe eines Margenparameters für einen Messwert ist optional und standardmäßig auf fünf Prozentpunkte sowohl ober- als auch unterhalb des Parameters eingestellt.

Bereitstellungstopologien

Für die Bereitstellung des Autoscaling-Tools entscheiden Sie sich, welche der folgenden Topologien am besten Ihren technischen und operativen Anforderungen entspricht:

  • Topologie pro Projekt: Die Autoscaling-Infrastruktur wird im selben Projekt wie Spanner bereitgestellt, das automatisch skaliert werden muss.
  • Zentrale Topologie: Das Autoscaling-Tool wird in einem Projekt bereitgestellt und verwaltet eine oder mehrere Spanner-Instanzen in verschiedenen Projekten.
  • Verteilte Topologie: Der Großteil der Autoscaling-Infrastruktur wird in einem Projekt bereitgestellt. Bei einigen Infrastrukturkomponenten werden die Spanner-Instanzen jedoch in verschiedenen Projekten automatisch skaliert.

Projektspezifische Topologie

In einer projektspezifischen Topologiebereitstellung hat jedes Projekt mit einer Spanner-Instanz, die automatisch skaliert werden muss, eine eigene unabhängige Bereitstellung der Autoscaling-Komponenten. Diese Topologie wird für unabhängige Teams empfohlen, die ihre eigene Autoscaling-Konfiguration und -Infrastruktur verwalten möchten. Es ist auch ein ein guter Ausgangspunkt für das Testen der Funktionen des Autoscaling-Tools.

Das folgende Diagramm zeigt eine allgemeine konzeptionelle Ansicht einer projektspezifischen Bereitstellung.

Konzeptionelle projektspezifische Bereitstellung.

Die im vorherigen Diagramm dargestellten projektspezifischen Bereitstellungen haben folgende Eigenschaften:

  • Zwei Anwendungen (Anwendung 1 und Anwendung 2) verwenden jeweils ihre eigenen Spanner-Instanzen.
  • Spanner-Instanzen (A) befinden sich in den Projekten der Anwendungen 1 und 2.
  • In jedem Projekt wird ein unabhängiges Autoscaling (B) bereitgestellt, um den Autoscaling der Instanzen in einem Projekt.

Ein detaillierteres Diagramm einer projektspezifischen Bereitstellung finden Sie im Abschnitt Architektur.

Die projektspezifische Bereitstellung hat folgende Vor- und Nachteile.

Vorteile:

  • Einfachstes Design: Die Topologie pro Projekt ist das einfachste Design der drei Topologien, da alle Autoscaling-Komponenten zusammen mit den Spanner-Instanzen bereitgestellt werden, die automatisch skaliert werden.
  • Konfiguration: Die Steuerung der Planerparameter gehört dem Team. dem die Spanner-Instanz gehört. Dadurch hat das Team das Autoscaling-Tool an seine Anforderungen anpassbar ist als ein zentralisiertes oder verteilten Topologien.
  • Klare Grenze der Infrastrukturverantwortliche: Das Design einer projektbezogenen Topologie bildet eine klare Verantwortlichkeit und Sicherheit für die Autoscaling-Infrastruktur, da der Teaminhaber der Spanner-Instanzen auch der Besitzer der Autoscaling-Infrastruktur ist.

Nachteile:

  • Mehr Wartung insgesamt: Jedes Team ist für das Autoscaling verantwortlich. Konfiguration und Infrastruktur überprüfen, sodass es schwierig sein kann, dass alle Autoscaling-Tools im Unternehmen demselben Update folgen, Richtlinien einhalten.
  • Komplexere Prüfung: Da jedes Team eine hohe Kontrolle hat, kann ein zentralisiertes Audit komplexer werden.

Informationen zum Einrichten des Autoscalings mit einer projektspezifischen Topologie finden Sie unter Projektspezifisches oder zentralisiertes Autoscaling-Tool für Spanner bereitstellen

Zentralisierte Topologie

Wie bei der projektspezifischen Topologie können bei einer zentralen Topologiebereitstellung alle Komponenten des Autoscaling-Tools befinden sich im selben Projekt. Die Spanner-Instanzen befinden sich jedoch in verschiedenen Projekten. Dieses Bereitstellung ist für ein Team geeignet, das die Konfiguration und Infrastruktur Mehrere Spanner-Instanzen aus einer einzigen Bereitstellung des Autoscalings an einem zentralen Ort zu finden.

Das folgende Diagramm zeigt eine allgemeine konzeptionelle Ansicht einer Bereitstellung mit zentralisiertem Projekt:

Konzeptionelle Bereitstellung mit zentralisiertem Projekt.

Die im vorherigen Diagramm dargestellte zentralisierte Bereitstellung hat folgende Eigenschaften:

  • Zwei Anwendungen (Anwendung 1 und Anwendung 2) verwenden jeweils ihre eigenen Spanner-Instanzen.
  • Spanner-Instanzen (A) befinden sich in den Projekten der Anwendungen 1 und 2.
  • Autoscaling (B) wird in einem separaten Projekt bereitgestellt, um das Autoscaling der Spanner-Instanzen sowohl in den Projekten der Anwendung 1 als auch der Anwendung 2 zu steuern.

Ein detaillierteres Diagramm einer Bereitstellung eines zentralisierten Projekts finden Sie unter Projektspezifisches oder zentralisiertes Autoscaling-Tool für Spanner bereitstellen

Eine zentralisierte Bereitstellung hat folgende Vor- und Nachteile.

Vorteile:

  • Zentrale Konfiguration und Infrastruktur: Ein einziges Team steuert die Planerparameter und die Autoscaling-Infrastruktur. Dieser Ansatz kann in stark regulierten Branchen nützlich sein.
  • Weniger Wartung insgesamt: Wartungen und Einrichtungsaufwand haben im Vergleich zu einer Pro-Projekt-Bereitstellung meist weniger Aufwand.
  • Zentrale Richtlinien und Audits: Die Best Practices zwischen den Teams können möglicherweise leichter angegeben und umgesetzt werden. Audits können einfacher ausgeführt werden.

Nachteile:

  • Zentrale Konfiguration: Änderungen an den Autoscaling-Parametern müssen über das zentralisierte Team erfolgen, obwohl das Team, das die Änderung anfordert, zu der Spanner-Instanz gehört.
  • Potenzial für zusätzliches Risiko: Das zentrale Team selbst könnte einen Single Point of Failure, auch wenn die Autoscaling-Infrastruktur für hohe Verfügbarkeit.

Eine detaillierte Anleitung zum Einrichten des Autoscaling-Tools mit dieser Option finden Sie unter Projektspezifisches oder zentralisiertes Autoscaling-Tool für Spanner bereitstellen.

Verteilte Topologie

In einer Bereitstellung mit verteilter Topologie werden Cloud Scheduler und Spanner-Instanzen, die automatisch skaliert werden müssen, befinden sich im selben Projekt arbeiten. Die verbleibenden Komponenten des Autoscaling-Tools befinden sich in einem zentral verwalteten Projekt. Diese Bereitstellung ist eine Hybridbereitstellung. Teams, denen die Spanner-Instanzen verwalten nur die Autoscaling-Konfiguration Parameter für ihre Instanzen zu konfigurieren, und ein zentrales Team verwaltet die verbleibenden Autoscaling-Infrastruktur

Das folgende Diagramm zeigt eine allgemeine konzeptionelle Ansicht einer Bereitstellung mit verteiltem Projekt.

Konzeptionelle Bereitstellung mit verteiltem Projekt.

Die im vorherigen Diagramm dargestellte Hybridbereitstellung hat folgende Eigenschaften:

  • Zwei Anwendungen (Anwendung 1 und Anwendung 2) verwenden ihre eigenen Spanner-Instanzen.
  • Die Spanner-Instanzen (A) befinden sich in den Projekten der Anwendungen 1 und 2.
  • In jedem wird eine unabhängige Cloud Scheduler-Komponente (C) bereitgestellt. Projekt: Anwendung 1 und Anwendung 2.
  • Die verbleibenden Autoscaling-Komponenten (B) werden in einem separaten Projekt bereitgestellt.
  • Das Autoscaling-Tool skaliert die Spanner-Instanzen sowohl in Projekten der Anwendung 1 als auch der Anwendung 2 automatisch mithilfe der Konfigurationen, die von den unabhängigen Cloud Scheduler-Komponenten in jedem Projekt gesendet werden.

Ein detaillierteres Diagramm der Bereitstellung des zentralisierten Projekts finden Sie unter Verteiltes Autoscaling-Tool für Spanner bereitstellen

Eine verteilte Bereitstellung hat die folgenden Vorteile und Nachteile.

Vorteile:

  • Anwendungsteams steuern die Konfiguration und Zeitpläne: Cloud Scheduler wird zusammen mit Spanner bereitgestellt Instanzen mit Autoscaling, sodass Anwendungsteams mehr Kontrolle haben. über Konfiguration und Planung.
  • Betriebsteam steuert die Infrastruktur: Die Kernkomponenten des Autoscaling-Tools werden zentral bereitgestellt. Dadurch erhalten die Betriebsteams die Kontrolle über die Autoscaling-Infrastruktur.
  • Zentrale Wartung: Die Infrastruktur ist komplex und reduziert den Aufwand.

Nachteile:

  • Komplexere Konfiguration: Anwendungsteams müssen Dienstkonten bereitstellen, um in das Abfragethema schreiben zu können.
  • Potenzial für zusätzliche Risiken: Die gemeinsam genutzte Infrastruktur kann zu einem Single Point of Failure werden, auch wenn die Infrastruktur im Hinblick auf Hochverfügbarkeit konzipiert ist.

Informationen zum Einrichten des Autoscaling-Tools in einer verteilten Bereitstellung finden Sie unter Verteiltes Autoscaling-Tool für Spanner bereitstellen.

Datenaufteilungen

Spanner weist Datenbereiche, die als Splits bezeichnet werden, Knoten oder Unterteilungen eines Knotens zu, die als Verarbeitungseinheiten bezeichnet werden. Die Knoten oder Verarbeitungseinheiten verwalten und liefern Daten unabhängig in den aufgeteilten Splits. Datenaufteilungen werden auf der Grundlage verschiedener Faktoren erstellt, wie z. B. Datenvolumen und Zugriffsmuster. Weitere Informationen finden Sie unter Spanner – Schema und Datenmodell.

Daten werden in Aufteilungen organisiert und Spanner verwaltet die Aufteilungen automatisch. Wenn das Autoscaling-Tool also Knoten oder Verarbeitungseinheiten hinzufügt oder entfernt, muss das Spanner-Backend genügend Zeit haben, die Aufteilungen neu zuzuweisen und neu zu ordnen, wenn Kapazität den Instanzen hinzugefügt oder von ihnen entfernt wird.

Das Autoscaling-Tool verwendet Cooldown-Zeiten für das Hoch- und Herunterskalieren, um zu steuern, wie schnell Knoten oder Verarbeitungseinheiten zu einer Instanz hinzugefügt oder daraus entfernt werden können. Mit dieser Methode erhält die Instanz die erforderliche Zeit, Beziehungen zwischen Rechennotizen oder Verarbeitungseinheiten und Datenaufteilungen. Standardmäßig werden die Cooldown-Zeiträume für vertikale Skalierung und horizontale Skalierung auf die folgenden Mindestwerte festgelegt:

  • Wert für die vertikale Skalierung: 5 Minuten
  • Wert für das Herunterskalieren: 30 Minuten

Weitere Informationen zu Skalierungsempfehlungen und Wartezeiten finden Sie unter Spanner-Instanzen skalieren.

Kosten

Da der Ressourcenverbrauch des Autoscaling-Tools minimal ist, fallen für die meisten Anwendungsfälle sind vernachlässigbar. Wenn das Autoscaling in Google Cloud verwendet wird, entstehen keine Kosten. Beispiel und ein Autoscaling-Tool zum Verwalten von drei Spanner-Instanzen mit einer Für jede Instanz ist ein Abfrageintervall von 5 Minuten kostenlos verfügbar. Diese Schätzung umfasst Folgendes:

  • 3 Cloud Scheduler-Jobs
  • 0,15 GB Pub/Sub-Nachrichten
  • 51840 Cloud Run-Funktion – Aufrufe mit 500 ms
  • Weniger als 10 MB Daten in Firestore

Die Schätzung enthält keine Kosten für Spanner-Datenbankvorgänge. Mit dem Preisrechner können Sie eine Kostenschätzung für die voraussichtliche Nutzung erstellen.

Nächste Schritte