Hochverfügbare Webanwendung bereitstellen

Ein Webanwendungs-Stack umfasst in der Regel einen Load Balancer, mehrere Webserver und einen Datenspeicher. Für High Availability benötigen Sie eine Topologie, die redundante Ressourcen in allen Ebenen des Stacks enthält.

Architektur

Diese Referenzarchitektur zeigt eine hochverfügbare Webanwendung, die in Oracle Cloud mit einer Oracle Autonomous Transaction Processing-Datenbank ausgeführt wird.

Ein öffentlicher Load Balancer empfängt Clientanforderungen aus dem Internet und leitet die Anforderungen an einen Pool von Webservern weiter, die über mehrere Faultdomains verteilt werden. Die Datenebene besteht aus einer autonomen Datenbank mit einem privaten Endpunkt.

Das folgende Diagramm veranschaulicht diese Referenzarchitektur.

Beschreibung von ha-webapp-oci.png folgt
Beschreibung der Abbildung ha-webapp-oci.png

ha-webapp-oci-atp-oracle.zip

Die Architektur hat folgende Komponenten:

  • Region

    Eine Oracle Cloud Infrastructure-Region ist ein lokalisierter geografischer Bereich, der mindestens ein Data Center, die sogenannten Availability-Domains, enthält. Regionen sind unabhängig von anderen Regionen, und große Entfernungen können sie trennen (auf Ländern oder sogar Kontinenten).

    Alle Ressourcen in dieser Architektur werden in einer einzelnen Region bereitgestellt.

  • Verfügbarkeitsdomains

    Availability-Domains sind eigenständige, unabhängige Data Center innerhalb einer Region. Die physischen Ressourcen in jeder Availability-Domain sind von den Ressourcen in den anderen Availability-Domains isoliert, was Fehlertoleranz bietet. Availability-Domains haben keine gemeinsame Infrastruktur wie Stromversorgung, Kühlung oder das interne Availability-Domainnetzwerk. Daher ist es wahrscheinlich, dass sich ein Fehler in einer Availability-Domain auf die anderen Availability-Domains in der Region auswirkt.

    Die Ressourcen in dieser Architektur werden in einer einzelnen Availability-Domain bereitgestellt.

  • Faultdomains

    Eine Faultdomain ist eine Gruppierung aus Hardware und Infrastruktur innerhalb einer Availability-Domain. Jede Availability-Domain umfasst drei Faultdomains mit unabhängiger Stromversorgung und Hardware. Wenn Sie Ressourcen auf mehrere Faultdomains verteilen, können Ihre Anwendungen damit den physischen Serverausfall, die Systemwartung und Stromausfälle innerhalb einer Faultdomain tolerieren.

    Die in dieser Architektur dargestellte Topologie umfasst mehrere Faultdomains.

  • Virtuelles Cloud-Netzwerk und Subnetze

    Ein VCN ist ein anpassbares, softwaredefiniertes Netzwerk, das Sie in einer Oracle Cloud Infrastructure-Region einrichten. Wie bei traditionellen Data Center-Netzwerken erhalten Sie mit VCNs die vollständige Kontrolle über Ihre Netzwerkumgebung. Ein VCN kann mehrere sich nicht überschneidende CIDR-Blöcke aufweisen, die Sie nach dem Erstellen des VCN ändern können. Sie können ein VCN in Subnetze segmentieren, die einer Region oder einer Availability-Domain zugeordnet werden können. Jedes Subnetz besteht aus einem fortlaufenden Adressbereich, der sich mit den anderen Subnetzen im VCN nicht überschneidet. Sie können die Größe eines Subnetzes nach der Erstellung ändern. Ein Subnetz kann öffentlich oder privat sein.

    In dieser Architektur werden die Webserver an ein öffentliches Subnetz angehängt, und die Datenbank verwendet ein privates Subnetz.

  • Load Balancer

    Der Oracle Cloud Infrastructure Load Balancing-Service ermöglicht automatisierte Trafficverteilung von einem einzelnen Entry Point zu mehreren Servern im Backend.

  • Webserver

    Mit dem Oracle Cloud Infrastructure Compute-Service können Sie Compute-Hosts in der Cloud bereitstellen und verwalten. Sie können Compute-Instanzen mit Ausprägungen starten, die Ihren Ressourcenanforderungen für CPU, Arbeitsspeicher, Netzwerkbandbreite und Speicher entsprechen. Nachdem Sie eine Compute-Instanz erstellt haben, können Sie sicher darauf zugreifen, sie neu starten, Volumes zuordnen oder entfernen und beenden, wenn Sie sie nicht mehr benötigen.

    Die Webserver in dieser Architektur werden auf virtuellen Compute-Maschinen ausgeführt.

  • Autonome Transaktionsverarbeitungsdatenbank

    Oracle Autonomous Transaction Processing ist ein selbststeuernder, selbstsichernder, selbst reparierender Datenbankservice, der für Transaktionsverarbeitungs-Workloads optimiert ist. Sie müssen keine Hardware konfigurieren oder verwalten und keine Software installieren. Oracle Cloud Infrastructure verarbeitet das Erstellen der Datenbank sowie das Backup, Patching, Upgrade und Tuning der Datenbank.

  • Netzwerksicherheitsgruppen (NSG)

    NSGs fungieren als virtuelle Firewalls für Ihre Cloud-Ressourcen. Mit dem Zero-Trust-Sicherheitsmodell von Oracle Cloud Infrastructure wird der gesamte Traffic abgelehnt, und Sie können den Netzwerktraffic in einem VCN kontrollieren. Eine NSG besteht aus einer Gruppe von Ingress- und Egress-Sicherheitsregeln, die nur für eine angegebene Gruppe von VNICs in einem einzelnen VCN gelten.

    In dieser Architektur werden separate NSGs für den Load Balancer, Webserver und die Datenbank verwendet.

  • Weiterleitungstabellen

    Virtuelle Routentabellen enthalten Regeln, mit denen Traffic von Subnetzen an Ziele außerhalb eines VCN weitergeleitet wird, im Allgemeinen über Gateways.

  • Internetgateway

    Das Internetgateway ermöglicht den Traffic zwischen den öffentlichen Subnetzen in einem VCN und dem öffentlichen Internet.

  • Network Address Translation-(NAT-)Gateway

    Mit einem NAT-Gateway können private Ressourcen in einem VCN auf Hosts im Internet zugreifen, ohne diese Ressourcen für eingehende Internetverbindungen anzugeben.

Empfehlungen

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

  • Compute-Ausprägungen für Webserver

    Wählen Sie beim Deployment der Architektur eine geeignete Ausprägungen für die Compute-Instanzen, die die Webserver hosten, basierend auf den Speicher- und Verarbeitungsanforderungen Ihrer Anwendung.

  • Netzwerk-Design

    Legen Sie beim Erstellen eines VCN die Anzahl der erforderlichen CIDR-Blöcke und die Größe jedes Blocks basierend auf der Anzahl der Ressourcen fest, die Sie den Subnetzen im VCN zuordnen möchten. Verwenden Sie CIDR-Blöcke, die sich im privaten Standard-IP-Adressraum befinden.

    Wählen Sie CIDR-Blöcke aus, die sich nicht mit anderen Netzwerken (in Oracle Cloud Infrastructure, Ihrem On-Premise-Data Center oder einem anderen Cloud-Provider) überschneiden, für die Sie private Verbindungen einrichten möchten.

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

    Berücksichtigen Sie beim Entwerfen der Subnetze den Trafficfluss und die Sicherheitsanforderungen. Hängen Sie alle Ressourcen innerhalb einer bestimmten Tier oder Rolle an dasselbe Subnetz an, das als Sicherheitsgrenze verwendet werden kann.

    Regionale Subnetze verwenden

Hinweise

Berücksichtigen Sie beim Entwerfen eines hochverfügbaren Anwendungsstacks in der Cloud die folgenden Faktoren:

  • Skalierbarkeit
    • Datenbank

      Sie können die Anzahl der CPU-Cores der Datenbank jederzeit manuell nach oben oder unten skalieren. Die Autoscaling-Funktion der autonomen Datenbanken ermöglicht es Ihrer Datenbank, die bis zu drei Mal die aktuelle Basisanzahl von CPU-Cores zu nutzen. Bei steigert die automatische Skalierung die Anzahl der verwendeten Cores. Mit autonomen Datenbanken können Sie die Speicherkapazität jederzeit skalieren, ohne dass die Verfügbarkeit oder Performance beeinträchtigt wird.

    • Anwendung

      Sie können Ihre Anwendung mit dem Instanzpool und den Features der automatischen Skalierung skalieren.

      Mit Instanzpools können Sie mehrere Compute-Instanzen basierend auf derselben Konfiguration innerhalb derselben Region bereitstellen und erstellen.

      Mit Autoscaling können Sie die Anzahl der Compute-Instanzen in einem Instanzpool basierend auf Performancekennzahlen, wie der CPU-Auslastung, automatisch anpassen. Mit Autoscaling können Sie für Benutzer in Perioden mit hohem Bedarf eine konstante Performance bereitstellen und Ihre Kosten reduzieren, wenn der Bedarf gering ist.

  • Verfügbarkeit
    • Datenbank

      Das Architekturdiagramm zeigt eine einzelne Oracle Autonomous Transaction Processing-Datenbank. Beim Deployment der Architektur können Sie Oracle Autonomous Data Guard für das Provisioning und Verwalten einer Standbydatenbank aktivieren.

    • Anwendung

      Faultdomains bieten die Resilienz innerhalb einer Availability-Domain. Wenn möglich sollten Sie Ihre Ressourcen auf mehrere Availability-Domains oder mehrere Regionen verteilen.

  • Sicherheit
    • Zugriffskontrolle

      Verwenden Sie Policys, um einzuschränken, wer auf Ihre Ressourcen in der Cloud zugreifen kann und welche Aktionen sie ausführen können.

    • Netzwerksicherheit

      Der Networking-Service bietet zwei Features einer virtuellen Firewall, die Sicherheitsregeln verwenden, um den Traffic auf Paketebene zu steuern: Sicherheitslisten und Netzwerksicherheitsgruppen (NSG). Eine NSG besteht aus einer Gruppe von Ingress- und Egress-Sicherheitsregeln, die nur für eine Gruppe von VNICs Ihrer Wahl in einem einzelnen VCN gelten. Beispiel: Sie können alle Compute-Instanzen auswählen, die als Webserver in der Webschicht einer Multi-Tier-Anwendung in Ihrem VCN fungieren.

      NSG-Sicherheitsregeln entsprechen den Sicherheitslistenregeln. Bei der Quelle oder dem Ziel einer NSG-Sicherheitsregel können Sie jedoch eine NSG anstelle eines CIDR-Blocks angeben. So können Sie ganz einfach Sicherheitsregeln schreiben, um Traffic zwischen zwei NSGs in demselben VCN oder innerhalb einer einzelnen NSG zu steuern. Wenn Sie ein Datenbanksystem erstellen, können Sie eine oder mehrere NSGs angeben. Sie können auch ein vorhandenes Datenbanksystem aktualisieren, um eine oder mehrere NSGs zu verwenden.

Bereitstellen

Der Terraform-Code für diese Referenzarchitektur ist in GitHub verfügbar. Sie können den Code mit nur einem Mausklick in Oracle Cloud Infrastructure Resource Manager abrufen, 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 den Mandanten und die Benutzerzugangsdaten ein.

    2. Prüfen und akzeptieren Sie die Bedingungen.
    3. Wählen Sie die Region aus, in der Sie den Stack bereitstellen möchten.
    4. Befolgen Sie die Prompts und Anweisungen zum Erstellen des Stacks auf dem Bildschirm.
    5. Klicken Sie nach dem Erstellen des Stacks auf Terraform-Aktionen, und wählen Sie Planen 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 anschließend 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 aus.
  • Mit der Terraform-CLI bereitstellen:
    1. Gehen Sie zu GitHub.
    2. Laden Sie den Code herunter, oder klonen Sie ihn auf Ihrem lokalen Rechner.
    3. Folgen Sie den Anweisungen in der README.

Änderungslog

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