Cloud Native-Apps bereitstellen, die MySQL zu Oracle Cloud Infrastructure verwenden
Mit Oracle Container Engine for Kubernetes (OKE), Oracle Cloud Infrastructure Registry und Oracle MySQL Database Service (MDS) können Sie cloud-native Anwendungen entwickeln und bereitstellen und Legacy-Anwendungen in die Cloud migrieren.
OKE ist ein vollständig verwalteter, skalierbarer und hochverfügbarer Service, mit dem Sie Ihre Containeranwendungen in der Cloud bereitstellen können. Verwenden Sie OKE, wenn Ihr Entwicklungsteam Cloud-native Anwendungen zuverlässig erstellen, bereitstellen und verwalten möchte.
Sie können Oracle Cloud Infrastructure Registry als private Docker-Registry für den internen Gebrauch verwenden und Docker-Images mit der Docker V2-API und der Standard-Docker-Befehlszeilenschnittstelle (CLI) in die Registry übergeben und aus dieser abrufen.
MDS ist ein vollständig verwalteter nativer Oracle Cloud Infrastructure-Service, der Aufgaben wie Backup und Recovery sowie das Patching von Datenbanken und Betriebssystemen automatisiert.
Die Verwendung von MDS auf Oracle Cloud Infrastructure Compute bietet die folgenden Vorteile:
- Stellen Sie MySQL in Minutenschnelle bereit.
- Profitieren Sie von einem vollständig verwalteten OCI-Service.
- Konzentrieren Sie sich auf Entwicklung, nicht auf Infrastrukturverwaltung.
- Verwenden Sie Tools und aktuelle Funktionen für moderne Apps.
- Nach Ihren Bedürfnissen skalieren.
- Schatten-IT vermeiden.
Architektur
Diese Referenzarchitektur enthält eine hochverfügbare Datenbankebene, die mit MDS erstellt wurde, und ein OKE-Cluster.
Das folgende Diagramm veranschaulicht diese Referenzarchitektur.

Beschreibung der Abbildung Architecture-kubernetes-mysql-oci.png
Architecture-kubernetes-mysql-oci-oracle.zip
Beim Deployment von MDS in einem aktiven Domainsubnetz stellt MDS ein Cluster von MySQL-Instanzen bereit, wobei eine Instanz in jeder Faultdomain die Redundanz bereitstellt. Eine Instanz ist die primäre Instanz, und die anderen beiden Instanzen sind die zweiten Instanzen. Die Primärdatenbank umfasst einen einzelnen Endpunkt, der Lese- und Schreibvorgänge in die Datenbank ermöglicht, während die Sekundärdateien replizierte Daten von der Primärdatenbank empfangen. Direktzugriff auf die Zweitbücher ist nicht zulässig.
Im Falle eines Fehlers oder eines manuellen Switchovers wird eines der zweitälteste zur neuen primären Datenbank, und der Endpunkt wird zu ihr umgeleitet. Das bedeutet, dass sich die Endpunkt-IP-Adresse nie ändert und die Anwendung nicht aktualisiert werden muss. OCI verwaltet die High Availability-Aspekte der Datenbank.
Die Architektur umfasst ein OKE-Cluster, das mit Oracle Cloud Infrastructure Registry zusammenarbeitet, um entwickelte und bereitstellbare cloud-native Apps aufzunehmen.
Die Architektur umfasst die folgenden Komponenten:
- Bastionhost
Der Bastionhost ist eine Compute-Instanz, die als sicherer, kontrollierter Einstiegspunkt für die Topologie von außerhalb der Cloud dient. Der Bastionhost wird in der Regel in einer demilitarisierten Zone (DMZ) bereitgestellt. Damit können Sie sensible Ressourcen schützen, indem Sie sie in privaten Netzwerken platzieren, auf die nicht direkt von außerhalb der Cloud zugegriffen werden kann. Die Topologie verfügt über einen einzelnen, bekannten Einstiegspunkt, mit dem Sie regelmäßig überwachen und auditieren können. So können Sie vermeiden, die sensibleren Komponenten der Topologie freizugeben, ohne den Zugriff darauf zu beeinträchtigen.
- Container Engine for Kubernetes
Oracle Cloud Infrastructure Container Engine for Kubernetes ist ein vollständig verwalteten, skalierbaren und hoch verfügbaren Service, mit dem Sie Ihre Containeranwendungen in der Cloud bereitstellen können. Sie geben die Compute-Ressourcen an, die Ihre Anwendungen benötigen, und Container Engine for Kubernetes stellt sie in Oracle Cloud Infrastructure in einem vorhandenen Mandanten bereit. Container Engine for Kubernetes automatisiert mit Kubernetes das Deployment, die Skalierung und die Verwaltung containerisierter Anwendungen über Hostcluster hinweg.
- Oracle MySQL-Datenbankservice
Oracle MySQL Database Service ist ein vollständig verwalteter Oracle Cloud Infrastructure-(OCI-)Datenbankservice, mit dem Entwickler sichere, cloud-native Anwendungen schnell entwickeln und bereitstellen können. Oracle MySQL Database Service ist für OCI optimiert und exklusiv verfügbar und wird zu 100 % von den OCI- und MySQL-Entwicklungsteams erstellt, verwaltet und unterstützt.
Oracle MySQL Database Service verfügt über eine integrierte High-Performance-Analyse-Engine (HeatWave), mit der anspruchsvolle Echtzeitanalysen direkt mit einer betriebsfähigen MySQL-Datenbank ausgeführt werden können.
- Registrierung
Oracle Cloud Infrastructure Registry ist eine von Oracle verwaltete Registry, mit der Sie Ihren Workflow von der Entwicklung bis zur Produktion vereinfachen können. Mit Registry können Sie Entwicklungsartefakte, wie Docker-Images, einfach speichern, freigeben und verwalten. Die hoch verfügbare und skalierbare Architektur von Oracle Cloud Infrastructure stellt sicher, dass Sie Ihre Anwendungen zuverlässig bereitstellen und verwalten können.
- Region
Eine Oracle Cloud Infrastructure-Region ist ein lokalisierter geografischer Bereich, der ein oder mehrere Data Center, so genannte Availability-Domains, enthält. Regionen sind nicht von anderen Regionen abhängig, und große Distanzen können sie trennen (über Länder oder sogar Kontinente).
- Virtuelles Cloud-Netzwerk (VCN) und Subnetz
Ein VCN ist ein anpassbares, Softwaredefiniertes Netzwerk, das Sie in einer Oracle Cloud Infrastructure-Region einrichten. Wie bei traditionellen Data Center-Netzwerken haben 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 für eine Region oder eine Availability-Domain gelten können. Jedes Subnetz besteht aus einem nachfolgenden 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.
- Availability-Domains
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 oder Kühlung oder das interne Availability-Domainnetzwerk. Es ist also unwahrscheinlich, dass der Fehler in einer Availability-Domain die anderen Availability-Domains in der Region beeinflusst.
- 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 über mehrere Faultdomains verteilen, können Ihre Anwendungen Fehler, Systemwartung und Stromausfälle innerhalb einer Faultdomain tolerieren.
- Dynamisches Routinggateway (DRG)
Das DRG ist ein virtueller Router, der einen Pfad für privaten Netzwerkverkehr zwischen einem VCN und einem Netzwerk außerhalb der Region bereitstellt, wie ein VCN in einer anderen Oracle Cloud Infrastructure-Region, ein On-Premise-Netzwerk oder ein Netzwerk in einem anderen Cloud-Provider.
- Servicegateway
Das Servicegateway ermöglicht den Zugriff von einem VCN auf andere Services, wie Oracle Cloud Infrastructure Object Storage. Der Traffic vom VCN zum Oracle-Service durchläuft die Oracle-Netzwerk-Fabric und nie das Internet.
- Internetgateway
Das Internetgateway ermöglicht Traffic zwischen den öffentlichen Subnetzen in einem VCN und dem öffentlichen Internet.
- Sicherheitsliste
Für jedes Subnetz können Sie Sicherheitsregeln erstellen, die Quelle, Ziel und Traffictyp angeben, die in das Subnetz ein- und ausgehen dürfen.
- Routentabelle
Virtuelle Routentabellen enthalten Regeln, um Traffic von Subnetzen an Ziele außerhalb eines VCN weiterzuleiten, in der Regel über Gateways.
Empfehlungen
Ihre Anforderungen können sich von der hier beschriebenen Architektur unterscheiden. Verwenden Sie die folgenden Empfehlungen als Ausgangspunkt.
- Bastionhost
Verwenden Sie die Ausprägungen VM.Standard.E4.Flex mit einer CPU und 1 GB Arbeitsspeicher sowie dem neuesten Oracle Linux-Betriebssystem.
- OKE-Cluster
Verwenden Sie die Option "Benutzerdefinierte Erstellung" in der Konsole, damit Sie ein VCN und ein Subnetz für das Deployment angeben können. Erstellen Sie ein Cluster mit drei Knoten, und wählen Sie VM.Standard.E4.Flex als anfängliche Ausprägung aus. Bei größeren Deployments können Sie eine größere Clustergröße mit einer höheren Compute-Ausprägungen verwenden.
- DB-Systemausprägung
Diese Architektur verwendet High Availability in MDS, um drei MySQL-Server bereitzustellen, die über die Faultdomains verteilt sind. Für eine leichte Workload wird die Verwendung von MySQL.VM.Standard.E3.1.8GB.HA empfohlen. Sie können größere Ausprägungen für anspruchsvollere Workloads verwenden.
- Verbindung zu MDS herstellen
Sie können direkt mit dem MySQL-Client oder einer auf Anwendungs-VMs oder -Containern installierten MySQL-Shell auf MDS zugreifen.
- MDS-Datenbankspeicher
Die MDS-Datenbankspeicherperformance lässt sich mit der für das DB-System ausgewählten Speichergröße skalieren. Sie können die MDS-Speicher-IOPS nicht einschränken oder bearbeiten. Sie müssen die Speichergröße nach Datengröße und Performanceanforderungen bereitstellen. MDS verwendet die Option "Block Volume Service Higher Performance" gegenüber iSCSI. Die endgültigen Performanceergebnisse können je nach Ausprägung und Szenario unterschiedlich sein.
- Container-Registry
Oracle verwaltet die Registry, sodass Sie keine Größe oder andere Optionen auswählen müssen. Wir empfehlen, eine private Registry für Best Practices zur Sicherheit zu erstellen.
- 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 im VCN anhängen möchten. Verwenden Sie CIDR-Blöcke, die sich im privaten Standardadressbereich befinden.
Wählen Sie CIDR-Blöcke aus, die sich nicht mit einem anderen Netzwerk (in Oracle Cloud Infrastructure, Ihrem On-Premise-Data Center oder einem anderen Cloud-Provider) überschneiden, für das Sie private Verbindungen einrichten möchten.
Nachdem Sie ein VCN erstellt haben, können Sie die zugehörigen CIDR-Blöcke ändern, hinzufügen und entfernen.
Berücksichtigen Sie bei der Entwicklung der Subnetze Ihren Trafficfluss und Ihre Sicherheitsanforderungen. Hängen Sie alle Ressourcen innerhalb einer bestimmten Tier oder Rolle an dasselbe Subnetz an, das als Sicherheitsgrenze dienen kann.
Überlegungen
- Skalierbarkeit
Sie können MySQL vertikal skalieren, indem Sie die VM-Ausprägungen der einzelnen Compute-Knoten ändern. Wenn Sie eine Ausprägungen mit einer höheren Coreanzahl verwenden, werden der Compute-Instanz zugewiesener Speicher und Netzwerkbandbreite erhöht.
- Verfügbarkeit der Anwendung
Diese Architektur verwendet High Availability in MDS zur Verteilung von Compute-Instanzen auf mehrere Faultdomains. So werden Single Points of Failure entfernt und Redundanz zur Verfügung gestellt.
- Kostenfaktor
Wählen Sie die VM-Ausprägungen basierend auf den Cores, dem Arbeitsspeicher und der Netzwerkbandbreite aus, die Sie für die Datenbank benötigen. Sie können mit einer Ein-Kern-Form beginnen. Wenn Sie mehr Performance, Arbeitsspeicher oder Netzwerkbandbreite für die Anwendung oder den Datenbankknoten benötigen, können Sie die VM-Ausprägungen später ändern.
Bereitstellen
Der Terraform-Code für diese Referenzarchitektur ist als Beispielstack in Oracle Cloud Infrastructure Resource Manager verfügbar. Sie können den Code auch von GitHub herunterladen und an Ihre spezifischen Anforderungen anpassen.
- Mit dem Beispielstack in Oracle Cloud Infrastructure Resource Manager bereitstellen:
- Klicken Sie auf
Wenn Sie noch nicht angemeldet sind, geben Sie den Mandanten und die Benutzerzugangsdaten ein.
- Prüfen und akzeptieren Sie die Vertragsbedingungen.
- Wählen Sie die Region aus, in der Sie den Stack bereitstellen möchten.
- Befolgen Sie die Prompts und Anweisungen zum Erstellen des Stacks auf dem Bildschirm.
- Nachdem Sie den Stack erstellt haben, klicken Sie auf Terraform-Aktionen, und wählen Sie Planen 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 Sie auf Stack bearbeiten, und nehmen Sie die erforderlichen Änderungen vor. Führen Sie dann die Aktion Planen erneut aus.
- Wenn keine weiteren Änderungen erforderlich sind, kehren Sie zur Seite "Stackdetails" zurück, klicken Sie auf Terraform-Aktionen, und wählen Sie Anwenden aus.
- Klicken Sie auf
- Mit dem Terraform-Code in GitHub bereitstellen:
- Gehen Sie zu GitHub.
- Klonen oder laden Sie das Repository auf Ihren lokalen Rechner herunter.
- Befolgen Sie die Anweisungen im Dokument
README
.
Mehr anzeigen
Weitere Informationen zu High Availability und MDS finden Sie in den folgenden Ressourcen:
- Hochverfügbare Anwendungen in einer Region mit einer Availability-Domain erstellen
- Erfahren Sie mehr über die Architektur einer hochverfügbaren Cloud-Topologie
- Erste Schritte mit MySQL Database Service
- Erfahren Sie mehr über das Deployment von MySQL Database Service in Oracle Cloud
- Überblick über Container Engine for Kubernetes
- Hochverfügbares MySQL Database-System in einem Container Engine for Kubernetes-Cluster bereitstellen
- Überblick über Registry
Änderungslog
In diesem Log werden wichtige Änderungen aufgelistet:
6. Mai 2022 |
|