Hochverfügbare verteilte Caches mit Redis bereitstellen

Redis ist ein Open-Source-, In-Memory-Datenstrukturspeicher, der als Datenbank, Cache und Message Broker verwendet wird. Es unterstützt Datenstrukturen wie Zeichenfolgen, Hashes, Listen, Sets, sortierte Sets mit Bereichsabfragen, Bitmaps, HyperLogLogs, georäumlichen Indizes mit Radiusabfragen und Streams.

Hinweis:

OCI bietet außerdem einen eigenen vollständig verwalteten Redis-Service. Weitere Informationen finden Sie auf der Seite OCI-Cache mit Redis-Service.

Architektur

Diese Referenzarchitektur zeigt ein typisches Sechs-Node-Deployment eines Redis-Clusters auf Oracle Cloud Infrastructure Compute-Instanzen.

Das folgende Diagramm veranschaulicht diese Referenzarchitektur.

Beschreibung von redis-oci-png.png folgt
Beschreibung der Abbildung redis-oci-png.png

Diese Architektur verfügt über folgende Komponenten:

  • Region

    Eine Oracle Cloud Infrastructure-Region ist ein lokalisierter geografischer Bereich, der mindestens ein Rechenzentrum (Availability-Domains) enthält. Regionen sind unabhängig von anderen Regionen, und große Entfernungen können sie trennen (über Länder oder sogar Kontinente).

  • Verfügbarkeitsdomains

    Availability-Domains sind eigenständige, unabhängige Rechenzentren innerhalb einer Region. Die physischen Ressourcen in jeder Availability-Domain werden von den Ressourcen in den anderen Availability-Domains isoliert, was eine Fehlertoleranz bietet. Verfügbarkeitsdomänen teilen keine Infrastruktur wie Strom oder Kühlung oder das interne Availability-Domänennetzwerk. Somit ist es unwahrscheinlich, dass ein Fehler bei einer Availability-Domain die anderen Availability-Domains in der Region beeinträchtigt.

  • Fault-Domains

    Eine Faultdomain ist eine Gruppierung von Hardware und Infrastruktur innerhalb einer Availability-Domain. Jede Availability-Domain verfügt über drei Fault-Domains mit unabhängiger Leistung und Hardware. Wenn Sie Ressourcen auf mehrere Faultdomains verteilen, können Ihre Anwendungen physischen Serverausfall, Systemwartung und Stromausfälle innerhalb einer Faultdomain tolerieren.

  • Virtuelles Cloud-Netzwerk (VCN) und Subnetze

    Ein VCN ist ein anpassbares, softwaredefiniertes Netzwerk, das Sie in einer Oracle Cloud Infrastructure-Region eingerichtet haben. Wie bei herkömmlichen Data Center-Netzwerken haben Sie bei VCNs vollständige Kontrolle über Ihre Netzwerkumgebung. Ein VCN kann mehrere nicht überlappende CIDR-Blöcke enthalten, die Sie nach dem Erstellen des VCN ändern können. Sie können ein VCN in Subnetze segmentieren, die für eine Region oder eine Availability-Domain Geltungsbereich haben können. Jedes Subnetz besteht aus einem zusammenhängenden Adressbereich, der sich nicht mit den anderen Subnetzen im VCN überschneidet. Sie können die Größe eines Subnetzes nach dem Erstellen ändern. Ein Subnetz kann öffentlich oder privat sein.

    In dieser Architektur sind alle Compute-Instanzen, die das Redis-Cluster hosten, einem einzelnen regionalen Subnetz zugeordnet.

  • Sicherheitslisten

    Für jedes Subnetz können Sie Sicherheitsregeln erstellen, die die Quelle, das Ziel und den Traffictyp angeben, die im Subnetz und außerhalb des Subnetzes zulässig sein müssen.

    Diese Architektur fügt Ingressregeln für TCP-Ports 16379 und 6379 hinzu. Port 6379 dient Redis-Clients und Port 16379 wird vom Redis-Clusterbus verwendet.

Empfehlungen

Ihre Anforderungen können von der hier beschriebenen Architektur abweichen. Verwenden Sie die folgenden Empfehlungen als Ausgangspunkt.

  • Compute Shapes

    Diese Architektur verwendet ein Oracle Linux 7.6-BS-Image mit einer VM.Standard2.2-Form. Wenn Ihre Anwendung mehr Speicher, Kerne oder Netzwerkbandbreite benötigt, können Sie eine andere Form wählen.

  • VCN

    Wenn Sie ein VCN erstellen, bestimmen Sie die Anzahl der erforderlichen CIDR-Blöcke und die Größe jedes Blocks basierend auf der Anzahl der Ressourcen, die Sie an Subnetze in VCN anhängen möchten. Verwenden Sie CIDR-Blöcke, die sich innerhalb des standardmäßigen privaten IP-Adressraums befinden.

    Wählen Sie CIDR-Blöcke, die sich nicht mit einem anderen Netzwerk überschneiden (in Oracle Cloud Infrastructure, Ihrem On-Premise-Rechenzentrum oder einem anderen Cloud-Provider), zu dem Sie private Verbindungen einrichten möchten.

    Nachdem Sie ein VCN erstellt haben, können Sie die CIDR-Blöcke ändern, hinzufügen und entfernen.

    Wenn Sie die Subnetze entwerfen, berücksichtigen Sie Ihre Verkehrsfluss- und Sicherheitsanforderungen. Ordnen Sie alle Ressourcen innerhalb einer bestimmten Ebene oder Rolle an dasselbe Subnetz zu, das als Sicherheitsgrenze dienen kann.

    Verwenden Sie regionale Subnetze.

Überlegungen

  • Skalierbarkeit

    Die minimale Anzahl der Knoten, die zur Gewährleistung der Verfügbarkeit eines Redis-Clusters erforderlich sind, beträgt drei Masterknoten. Diese Architektur stellt drei Masterknoten und drei Replikatknoten bereit. Möglicherweise benötigen Sie weitere Knoten, um die Performance- oder High Availability-Anforderungen Ihrer Anwendung zu erfüllen.

    Sie können Ihr Redis-Cluster horizontal skalieren, indem Sie weitere Compute-Knoten hinzufügen.

    Sie können Ihr Redis-Cluster vertikal skalieren, indem Sie die VM-Form jedes Compute-Knotens ändern. Wenn Sie eine Form mit einer höheren Corecount-Form auswählen, erhöht sich auch der Speicher, der der Compute-Instanz und der Netzwerkbandbreite zugewiesen ist.

  • Anwendungsverfügbarkeit

    Fault-Domains bieten die beste Resilienz innerhalb einer einzelnen Availability-Domain. Diese Architektur verwendet eine weitere Herangehensweise an High Availability, die Compute-Instanzen bereitstellt, die dieselben Aufgaben in Regionen ausführen, in denen mehrere Availability-Domains vorhanden sind. Dieses Design entfernt einen einzigen Fehlerpunkt, indem Redundanz eingeführt wird.

    Nachdem die Architektur bereitgestellt wurde, können Sie sich mit SSH-Tools wie PuTTY oder Git Bash bei der öffentlichen IP-Adresse des Redis-Knotens anmelden. Mit der Redis-Befehlszeilenschnittstelle redis-cli können Sie mit dem Redis-Deployment interagieren.

  • Kosten

    Wählen Sie die VM-Form (Virtual Machine) basierend auf den Kernen, dem Speicher und der Netzwerkbandbreite, die Sie für Ihre Datenbank benötigen. Sie können mit einer einkernigen Form beginnen und die VM-Form später ändern, wenn Sie mehr Leistung, Speicher oder Netzwerkbandbreite für den Knoten Redis benötigen.

Bereitstellen

Der für das Deployment dieser Referenzarchitektur erforderliche Code ist in GitHub verfügbar. Sie können den Code mit einem einzigen Klick in Oracle Cloud Infrastructure Resource Manager ziehen, den Stack erstellen und bereitstellen. Alternativ können Sie den Code von GitHub auf Ihren Computer herunterladen, den Code anpassen und die Architektur mit der Terraform-CLI bereitstellen.

  • Mit Oracle Cloud Infrastructure Resource Manager bereitstellen:
    1. Klicken Sie auf In Oracle Cloud bereitstellen

      Wenn Sie noch nicht angemeldet sind, geben Sie die Mandanten- und Benutzerzugangsdaten ein.

    2. Lesen und akzeptieren Sie die Vertragsbedingungen.
    3. Wählen Sie den Bereich, in dem Sie den Stack bereitstellen möchten.
    4. Befolgen Sie die Anweisungen zum Erstellen des Stacks auf dem Bildschirm.
    5. Klicken Sie nach dem Erstellen des Stacks auf Terraform-Aktionen, und wählen Sie Plan aus.
    6. Warten Sie, bis der Job abgeschlossen ist, und prüfen Sie den Plan.

      Um Änderungen vorzunehmen, kehren Sie zur Seite "Stackdetails" zurück, klicken Sie auf Stack bearbeiten, und nehmen Sie die erforderlichen Änderungen vor. Führen Sie dann die Aktion Plan erneut aus.

    7. Wenn keine weiteren Änderungen erforderlich sind, kehren Sie zur Seite "Stackdetails" zurück, klicken Sie auf Terraform-Aktionen, und wählen Sie Anwenden.
  • Stellen Sie mit der Terraform-CLI bereit:
    1. Gehen Sie zu GitHub.
    2. Laden Sie den Code herunter oder klonen Sie ihn auf Ihren lokalen Computer.
    3. Befolgen Sie die Anweisungen in README.md.

Änderungslog

In diesem Log werden nur die wesentlichen Änderungen aufgeführt: