Load-Balanced Web-Anwendungen automatisch skalieren
Um Ihre Webanwendungen in der Cloud auszuführen, benötigen Sie eine zuverlässige und sichere Infrastruktur, eine elastische und wartungsfreundliche Topologie und nutzungsbasierte Abrechnung. Eine Oracle Cloud-Funktion, die alle diese Anforderungen erfüllt, ist die automatische Skalierung.
Autoscaling stellt sicher, dass Ihre Ressourcen in der Cloud bei Bedarf effizient und verfügbar genutzt werden. Sie können Ihr Cloud-Deployment so konfigurieren, dass die Compute-Ressourcen basierend auf Performancemetriken, wie der CPU-Auslastung, automatisch angepasst werden. Ihre Benutzer erleben gleichbleibende Leistung, auch wenn die Last hoch ist. Und Ihre Kosten sind in Zeiten geringer Nachfrage verhältnismäßig niedrig.
Architektur
Diese Referenzarchitektur zeigt eine 3-Tier-Topologie, die aus einem Load Balancer (LB), einer automatischen Skalierung der Web-Tier und einer hochverfügbaren Datenbank besteht.
Alle Ressourcen werden in einer einzelnen Availability-Domain in einer Oracle Cloud Infrastructure-Region bereitgestellt. Die LB-Ebene, die Web-Tier und die Datenbankebene werden in separaten Subnetzen innerhalb eines einzelnen VCN isoliert. Netzwerksicherheitsgruppen (NSGs) dienen als Firewalls, um den Netzwerkverkehr zu und von den Ressourcen in jeder Ebene zu regulieren. Eine an jedes Subnetz angehängte Routentabelle enthält Regeln, mit denen Traffic an Ziele außerhalb von VCN weitergeleitet werden kann.
Das folgende Diagramm veranschaulicht die Referenzarchitektur.
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).
Alle Ressourcen in dieser Architektur befinden sich in einer einzigen Region.
- 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 Verfügbarkeitsdomänennetzwerk. Ein Fehler bei einer Availability-Domain wirkt sich daher unwahrscheinlich auf die anderen Availability-Domains in der Region aus.
Die Ressourcen in dieser Architektur werden in einer einzelnen Verfügbarkeitsdomain bereitgestellt.
- Fault-Domains
Eine Faultdomain ist eine Gruppierung von Hardware und Infrastruktur innerhalb einer Availability-Domain. Jede Availability-Domain verfügt über drei Faultdomains mit unabhängiger Power und Hardware. Wenn Sie Ressourcen auf mehrere Faultdomains verteilen, können Ihre Anwendungen physischen Serverausfall, Systemwartung und Stromausfälle innerhalb einer Faultdomain tolerieren.
Die Ressourcen in jeder Ebene in dieser Architektur werden auf mehrere Faultdomains verteilt.
- Virtuelles Cloud-Netzwerk (VCN) und Subnetze
Ein VCN ist ein anpassbares, softwaredefiniertes Netzwerk, das Sie in einer Oracle Cloud Infrastructure-Region eingerichtet haben. Wie herkömmliche Rechenzentrumsnetze geben VCNs Ihnen die 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 der Erstellung ändern. Ein Subnetz kann öffentlich oder privat sein.
Die Load Balancing- und Web-Tiers in dieser Architektur verwenden separate öffentliche Subnetze. Die Datenbank ist einem privaten Subnetz zugeordnet.
- Load Balancer
Der Oracle Cloud Infrastructure Load Balancing-Service bietet eine automatisierte Trafficverteilung von einem einzigen Einstiegspunkt an mehrere Server im Backend.
- Netzwerksicherheitsgruppen (NSGs)
NSGs fungieren als virtuelle Firewalls für Ihre Cloud-Ressourcen. Mit dem Sicherheitsmodell ohne Vertrauen in Oracle Cloud Infrastructure wird der gesamte Traffic abgelehnt, und Sie können den Netzwerkverkehr innerhalb eines 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.
Für die Ressourcen in jeder Ebene dieser Architektur werden separate NSGs verwendet.
- Routentabellen
Virtuelle Routentabellen enthalten Regeln zur Weiterleitung des Traffics von Subnetzen an Ziele außerhalb eines VCN, typischerweise über Gateways.
- Internetgateway
Das Internetgateway ermöglicht den Datenverkehr zwischen den öffentlichen Subnetzen in einem VCN und dem öffentlichen Internet.
- Instanzkonfiguration
Eine Instanzkonfiguration ist eine Vorlage, die die Einstellungen definiert, die beim Erstellen von Compute-Instanzen verwendet werden sollen, einschließlich Details wie Basisbild, Form und Metadaten. Sie können auch die zugehörigen Ressourcen für die Instanz angeben, wie Block-Volume-Anhänge und die Netzwerkkonfiguration.
- Instanzpool
Ein Instanzpool ist eine Gruppe von Instanzen innerhalb einer Region, die aus derselben Instanzkonfiguration erstellt und als Gruppe verwaltet werden.
- Automatische Skalierung
Mit der automatischen Skalierung können Sie die Anzahl der Compute-Instanzen in einem Instanzpool basierend auf Performancemetriken, wie der CPU-Auslastung, automatisch anpassen.
Wenn der Instanzpool skaliert oder in, wird das Backend-Set des zugeordneten Load Balancers automatisch aktualisiert.
- Autonomous Transaction Processing
Oracle Autonomous Transaction Processing ist ein selbstfahrender, selbstsichernder, selbstreparierender Datenbankservice, der für Transaktionsverarbeitungs-Workloads optimiert ist. Sie müssen keine Hardware konfigurieren oder verwalten oder Software installieren. Oracle Cloud Infrastructure verarbeitet das Erstellen der Datenbank sowie das Sichern, Patchen, Upgraden und Optimieren der Datenbank.
Empfehlungen
Ihre Anforderungen können von der hier beschriebenen Architektur abweichen. Verwenden Sie die folgenden Empfehlungen als Ausgangspunkt.
- 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, sollten Sie den Trafficfluss und die Sicherheitsanforderungen berücksichtigen. Ordnen Sie alle Ressourcen innerhalb einer bestimmten Ebene oder Rolle demselben Subnetz zu, das als Sicherheitsgrenze dienen kann.
Verwenden Sie regionale Subnetze.
- Instanzpool
Wenn keine Einschränkungen vorhanden sind, schließen Sie alle verfügbaren Availability-Domains in den Pool ein.
- Instanzkonfiguration
Wählen Sie Instanzformen, die das beste Leistungskosten-Verhältnis bieten und die Mindestanforderungen Ihrer Workload erfüllen.
- Automatische Skalierungskonfiguration
Bewerten Sie die Ressourcenanforderungen Ihrer Anwendung, und verwenden Sie diese Informationen, um die Skalierungsgrenzwerte und das Cooldown-Verhalten während der Skalierung festzulegen. Dies bestimmt die maximalen Kosten für den Instanzpool.
Überlegungen
Beim Bereitstellen eines automatischen Skalierungs-Multi-Tier-Anwendungsstacks sollten Sie die folgenden Faktoren berücksichtigen:
- Datenbankskalierbarkeit
Sie können die Anzahl der CPU-Kerne der Datenbank jederzeit manuell nach oben oder unten skalieren. Mit der automatischen Skalierung autonomer Datenbanken kann Ihre Datenbank jederzeit bis zu dreimal so viele CPU-Kerne verwenden. Mit zunehmender Nachfrage erhöht die automatische Skalierung automatisch die Anzahl der verwendeten Kerne. Mit autonomen Datenbanken können Sie die Speicherkapazität jederzeit skalieren, ohne die Verfügbarkeit oder Performance zu beeinträchtigen.
- Datenbankverfügbarkeit
Das Architekturdiagramm zeigt eine einzelne Oracle Autonomous Transaction Processing-Datenbank. Beim Bereitstellen der Architektur können Sie Oracle Autonomous Data Guard das Bereitstellen und Verwalten einer Standby-Datenbank aktivieren.
- Anwendungsverfügbarkeit
Fault-Domains bieten die Resilienz innerhalb einer Availability-Domain. Wenn möglich, sollten Sie Ihre Ressourcen über mehrere Availability-Domains oder mehrere Regionen verteilen.
- Zugriffskontrolle
Mit Policys können Sie einschränken, wer auf Ihre Ressourcen in der Cloud zugreifen kann und welche Aktionen sie ausführen können.
- Performance
Die Größe des Pools kann automatisch skaliert werden, aber es ist wichtig, das Verhalten der Anwendung zu kennen, damit Sie die automatische Skalierungs-Policy feinabstimmen können. Ressourcenlimits können sich auf die Skalierbarkeit des Pools auswirken.
Bereitstellen
Der Code, der für das Deployment dieser Referenzarchitektur erforderlich ist, 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:
- Klicken Sie auf
Wenn Sie noch nicht angemeldet sind, geben Sie die Mandanten- und Benutzerzugangsdaten ein.
- Prüfen und akzeptieren Sie die Allgemeinen Geschäftsbedingungen.
- Wählen Sie den Bereich, in dem Sie den Stack bereitstellen möchten.
- Befolgen Sie die Anweisungen und Aufforderungen auf dem Bildschirm, um den Stack zu erstellen.
- Klicken Sie nach dem Erstellen des Stacks auf Terraform-Aktionen, und wählen Sie Plan aus.
- Warten Sie, bis der Job abgeschlossen ist, und prüfen Sie den Plan.
Um Änderungen vorzunehmen, kehren Sie zur Seite "Stackdetails" zurück, klicken auf "Stack bearbeiten" und nehmen die erforderlichen Änderungen vor. Führen Sie dann die Aktion "Plan" erneut aus.
- Wenn keine weiteren Änderungen erforderlich sind, kehren Sie zur Seite "Stackdetails" zurück, klicken auf Terraform-Aktionen und wählen Anwenden aus.
- Klicken Sie auf
- Deployment mit der Terraform-CLI:
- Gehen Sie zu GitHub.
- Laden Sie den Code herunter oder klonen Sie ihn auf Ihren lokalen Computer.
- Befolgen Sie die Anweisungen in der Datei
README
.
Mehr erfahren
Erfahren Sie mehr über das Deployment von Anwendungen zur automatischen Skalierung in der Cloud.
- Oracle Cloud Infrastructure-Dokumentation zur automatischen Skalierung
- Best Practices für die Gestaltung zuverlässiger und robuster Cloud-Topologien
- HA-Anwendungen mit Load Balancers Workshop bereitstellen
- Autonome Datenbank mit einem privaten Endpunkt bereitstellen
- IoT-Daten mit serverlosen Funktionen in eine autonome Datenbank übertragen
Change Log
In diesem Log werden nur die wesentlichen Änderungen aufgeführt:
31. März 2022 | Option zum Herunterladen bearbeitbarer Versionen hinzugefügt (. SVG und . DRAWIO) des Architekturdiagramms. |
4. Dezember 2020 |
|