Dieses Prinzip in der Säule „Zuverlässigkeit“ des Google Cloud -Architektur-Frameworks enthält Empfehlungen zur horizontalen Skalierbarkeit. Mithilfe der horizontalen Skalierbarkeit können Sie dafür sorgen, dass Ihre Arbeitslasten inGoogle Cloud effizient skaliert werden und die Leistung aufrechterhalten wird.
Dieses Prinzip ist für den Umfang und den Fokusbereich der Zuverlässigkeit relevant.
Grundsatzübersicht
Erstellen Sie eine horizontale Architektur. Wenn Sie mehr Traffic oder Daten verarbeiten möchten, können Sie weitere Ressourcen hinzufügen. Sie können Ressourcen auch entfernen, wenn sie nicht verwendet werden.
Um den Wert der horizontalen Skalierung zu verstehen, sollten Sie sich die Einschränkungen der vertikalen Skalierung ansehen.
Ein gängiges Szenario für die vertikale Skalierung ist die Verwendung einer MySQL-Datenbank als primäre Datenbank mit kritischen Daten. Mit zunehmender Datenbanknutzung sind mehr RAM und CPU erforderlich. Irgendwann erreicht die Datenbank das Speicherlimit auf dem Hostcomputer und muss aktualisiert werden. Möglicherweise müssen Sie diesen Vorgang mehrmals wiederholen. Das Problem ist, dass es harte Limits für die Größe einer Datenbank gibt. Die Größe von VMs ist nicht unbegrenzt. Es kann vorkommen, dass die Datenbank einen Punkt erreicht, an dem keine weiteren Ressourcen hinzugefügt werden können.
Selbst wenn die Ressourcen unbegrenzt wären, kann eine große VM zu einem Single Point of Failure werden. Jedes Problem mit der primären Datenbank-VM kann zu Fehlerantworten oder zu einem systemweiten Ausfall führen, der alle Nutzer betrifft. Vermeiden Sie Single Points of Failure, wie unter Hochverfügbare Systeme durch redundante Ressourcen erstellen beschrieben.
Neben diesen Skalierungslimits ist die vertikale Skalierung in der Regel auch teurer. Die Kosten können exponentiell ansteigen, wenn Maschinen mit mehr Rechenleistung und Arbeitsspeicher erworben werden.
Die horizontale Skalierung kann dagegen weniger kosten. Das Potenzial für die horizontale Skalierung ist in einem skalierbaren System praktisch unbegrenzt.
Empfehlungen
Wenn Sie von einer einzelnen VM-Architektur zu einer horizontalen Architektur mit mehreren Maschinen wechseln möchten, müssen Sie sorgfältig planen und die richtigen Tools verwenden. Beachten Sie die Empfehlungen in den folgenden Unterabschnitten, um eine horizontale Skalierung zu erreichen.
Verwaltete Dienste verwenden
Bei verwalteten Diensten müssen Sie die horizontale Skalierung nicht manuell verwalten. Mit verwalteten Instanzgruppen (Managed Instance Groups, MIGs) der Compute Engine können Sie beispielsweise VMs hinzufügen oder entfernen, um Ihre Anwendung horizontal zu skalieren. Cloud Run ist eine serverlose Plattform für containerisierte Anwendungen, die Ihre zustandslosen Container basierend auf dem eingehenden Traffic automatisch skalieren kann.
Modulares Design fördern
Modulare Komponenten und klare Oberflächen helfen Ihnen, einzelne Komponenten nach Bedarf zu skalieren, anstatt die gesamte Anwendung zu skalieren. Weitere Informationen finden Sie unter Modulares Design fördern in der Säule „Leistungsoptimierung“.
Zustandsloses Design implementieren
Entwerfen Sie Anwendungen als zustandslos, d. h. ohne lokal gespeicherte Daten. So können Sie Instanzen hinzufügen oder entfernen, ohne sich um die Datenkonsistenz sorgen zu müssen.