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 von Architecture-kubernetes-mysql-oci.png folgt
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:
    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 Vertragsbedingungen.
    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. Nachdem Sie den Stack erstellt haben, klicken Sie 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 dann die Aktion Planen 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 dem Terraform-Code in GitHub bereitstellen:
    1. Gehen Sie zu GitHub.
    2. Klonen oder laden Sie das Repository auf Ihren lokalen Rechner herunter.
    3. Befolgen Sie die Anweisungen im Dokument README.

Änderungslog

In diesem Log werden wichtige Änderungen aufgelistet: