Migrierte MongoDB-Workload auf Oracle Exadata Database Machine bereitstellen
Workloads und Anwendungen, die Dokumente und Dokumentdatenbanken verwenden, um Datenschemas und Anwendungen zu entwickeln, sind aufgrund der Flexibilität, die sie Entwicklern bieten, beliebt. Die Flexibilität des Schemas, die schnelle Entwicklung und die Skalierbarkeit ermöglichen ein beschleunigtes Prototyping von Anwendungsfunktionen, eine einfachere Anwendungsentwicklung und die Möglichkeit, iterativ kleinere Anwendungen und Funktionen zu erstellen, die Entwickler skalieren können, um eine große Benutzerbasis zu erreichen. Diese Arten von Workloads haben jedoch ihre Herausforderungen, darunter schwächere Transaktionsgarantien, Vielseitigkeit der Datenabfrage und die Unfähigkeit, andere Workloads in Dokumenten wie Analysen oder maschinelles Lernen zu unterstützen.
Was ist, wenn diese Workloads von den Vorteilen herkömmlicher Dokumentendatenbanken profitieren und die Vorteile relationaler Datenbanken nutzen können? Sie verfügen beispielsweise über stärkere Transaktionsgarantien und zusätzliche Funktionen wie Analysen und maschinelles Lernen, ohne dass Daten in eine andere Datenbank oder ein anderes System repliziert werden müssen.
Oracle Database 23ai, entworfen, um die Entwicklung für KI-, Microservices-, Graph-, Dokument-, räumliche und relationale Anwendungen zu vereinfachen, ist eine konvergente Datenbankplattform, die alles bietet, was in einer leistungsstarken Lösung benötigt wird.
Oracle Exadata Database Machine ist eine Plattform mit der höchsten Performance und Verfügbarkeit für die Ausführung von Oracle Database. Exadata führt alle Arten von Datenbank-Workloads aus, darunter OLTP (Online Transaction Processing), Data Warehouse (DW) und die Konsolidierung gemischter Workloads. Exadata ist einfach und schnell zu implementieren, um Ihre wichtigsten Datenbanken zu betreiben und zu schützen. Es ist eine ideale Grundlage für Database as a Service.
Funktionale Architektur
Diese Referenzarchitektur konzentriert sich auf das Deployment der migrierten Workload und nicht auf den Migrationsprozess. Weitere Informationen zum Migrationsprozess finden Sie im Abschnitt Weitere Informationen.
Eines der wichtigsten Features in dieser Architektur ist die Oracle Database-API für MongoDB, mit der Anwendungen mit Sammlungen von JSON-Dokumenten in Oracle Database mit MongoDB-Befehlen interagieren können. Dadurch kann vorhandener Anwendungscode mit Daten arbeiten, die in Oracle Database 23ai gespeichert sind, ohne dass Code umgestaltet werden muss.
Das folgende Diagramm veranschaulicht eine typische Anwendung, die aus einer Datenbank-, Backend- und Frontend-Tier besteht.
mongodb-logical-arch-migration.zip
Ein beliebter Stack, mit dem dieses Muster implementiert wird, ist der MEAN-Stack:
- MongoDB: Dokumentdatenbank
- Express: Backend-Framework
- Winkel: Frontend-Rahmen
- Node.js: Backend-Server
Diese Architektur verwendet einen MEAN-Stack als Beispiel für ein vorhandenes Deployment für die Migration zu Oracle Database 23ai. Die Migration dieser Workload zu Oracle Database 23ai umfasst die folgenden allgemeinen Schritte:
- Stellen Sie mit Oracle Real Application Clusters (Oracle RAC) eine hochverfügbare Oracle Database 23ai-Instanz in Exadata auf mehreren Datenbankknoten bereit.
- Migrieren Sie Metadaten und Daten von MongoDB zu Oracle Database 23ai.
- Installieren und konfigurieren Sie das Backend-Tier-Compute, unabhängig davon, ob es sich um VMs, Container oder Oracle REST Data Services handelt.
- Konfigurieren Sie Oracle REST Data Services so, dass die MongoDB-API aktiviert wird, damit die Anwendung mit den MongoDB-Treibern mit der Datenbank kommunizieren kann.
- Konfigurieren Sie die Anwendung so, dass die neue Datenbankverbindungszeichenfolge verwendet wird.
- Verbinden Sie die Backend-Anwendung mit Oracle Database 23ai, indem Sie dieselben MongoDB-Tools und -Treiber verwenden, die in der aktuellen Anwendung verwendet werden.
Nach der Migration der Workload zu Oracle Database können Sie die Funktionalität verbessern, indem Sie zusätzliche Features aktivieren, wie verbesserte Sicherheit, betriebliches Reporting, Analysen und maschinelles Lernen, ohne Daten aus der Datenbank zu kopieren. Oracle Database 23ai ist eine Multi-Modell-, Multi-Workload-Plattform, mit der Sie nahtlos Funktionen integrieren können, die relationale, räumliche, Diagramm- oder Vektordatentypen neben Ihrer vorhandenen Anwendung verwenden.
Um die Workload-Skalierbarkeit zu verbessern, weisen Sie der Datenbank mehr Rechenleistung und Speicher zu. Da Oracle Database 23ai eine Multimodell-Datenbanktechnologie mit mehreren Workloads ist, können zusätzliche Funktionen hinzugefügt werden, die auf relationalen, räumlichen, grafischen oder Vektordatentypen basieren und mit der vorhandenen Anwendung zusammenarbeiten.
Physische Architektur
Frontend-Tier
- Das aktuelle Deployment wird verwendet.
- Benutzer können über das Internet oder das Unternehmensnetzwerk eine Verbindung herstellen.
- Die DNS-Funktion ist so konfiguriert, dass Anforderungen im Falle eines Failovers an das Standby-Data Center weitergeleitet werden.
Backend-Tier
- Vorhandene Anwendungen werden mit denselben Compute-Instanzen bereitgestellt und verwendet.
- Vom Kunden verwaltete Oracle REST Data Services werden über Colocation und Deployment auf den Anwendungsservern bereitgestellt. Der Anwendungscode kann über Oracle REST Data Services eine Verbindung zu Oracle Database 23ai herstellen.
- Die Skalierbarkeit der Backend-Ebene wird mit dem aktuellen Skalierungsmechanismus erreicht, der auf jedem Anwendungsserver installiert ist und implizit die Oracle REST Data Services skaliert.
Datenbankebene
- Oracle Database 23ai wird in Exadata bereitgestellt und zum Speichern und Bereitstellen von JSON-Dokumenten in der Backend-Tier verwendet.
- Die Oracle Database-API für MongoDB wird mit Oracle REST Data Services aktiviert. Dadurch kann vorhandener Anwendungscode ohne Codeänderungen verwendet werden.
Geschäftskontinuität
- Erreicht mit einer Disaster Recovery-Strategie von Oracle Data Guard.
- Es wird von einer warmen Disaster Recovery-Strategie ausgegangen, wobei die Backend-Ebene und die zugehörigen Ressourcen bereits bereitgestellt und ausgeführt werden.
Das folgende Diagramm veranschaulicht diese Referenzarchitektur.
mongodb-exadata-machine-physical-arch.zip
Das Design für die physische Architektur:
Geschäftskontinuität
- Es gibt zwei Data Center mit identischen Deployments: eines aktiv, das andere im Standby.
- Die DNS-Trafficsteuerung leitet Benutzeranforderungen an das aktive Data Center weiter. Wenn die auf der Anwendungsebene ausgeführten DNS-Health-Check-Probes wiederholt fehlschlagen, wird DNS neu konfiguriert, um Traffic an die Workload des Standby-Data Centers weiterzuleiten.
- Ein Load Balancer verteilt eingehende Anforderungen auf mehrere Backend-Tier-VMs und verhindert so einen Single Point of Failure.
- Die Backend-Tier verfügt über mehrere VMs, die Benutzeranforderungen verarbeiten.
- Vom Kunden verwaltete Oracle REST Data Services werden auf den Backend-Tier-VMs bereitgestellt und konfiguriert. Beim Hinzufügen von VMs werden sowohl der Anwendungsserver als auch die Oracle REST Data Services automatisch skaliert.
- Das Recovery Time Objective (RTO) hängt nicht nur vom Datenbank-Failover ab, sondern auch vom vollständigen Failover auf die restlichen Workload-Komponenten im Standby-Data Center.
- RTO und RPO der Datenbank (Recovery Point Objective) hängen vom konfigurierten Oracle Data Guard-Schutzmodus ab.
- Für das Datenbank-Failover wird je nach den detaillierten Anforderungen der Geschäftskontinuität entweder manuelles oder automatisches Failover von Oracle Data Guard verwendet.
Networking
- Es gibt ein öffentliches Subnetz, das eingehende Benutzeranforderungen aus dem Internet empfängt.
- Load Balancer-Anforderungen werden an die Backend-Tier-Server weitergeleitet, die Benutzeranforderungen erfüllen.
- Die Exadata-VM ist an das Client- und Administrationsnetzwerk angehängt.
- Backend-Tier-Anforderungen an die Datenbank über Oracle REST Data Services verwenden Clientnetzwerkadressen.
- Die beiden Data Center sind mit der Bandbreite und der geringen Latenz verbunden, die für die Unterstützung einer Oracle Data Guard-Konfiguration erforderlich sind.
Datenbank
- Der Oracle Database 23ai wird in einem Exadata-VM-Cluster bereitgestellt.
- Das VM-Cluster verwendet mehrere Datenbankknoten für High Availability.
- Oracle RAC stellt sicher, dass die Datenbank mehrere Datenbankknoten für die Workload verwendet.
Sicherheit
- Alle Daten sind während der Übertragung und im Ruhezustand sicher.
Mögliche Designverbesserungen, die in dieser Bereitstellung aus Gründen der Einfachheit nicht dargestellt werden, umfassen:
- Mit Active Data Guard können Sie die Standbydatenbank für schreibgeschützten Zugriff aktivieren und Betriebsanalyseabfragen auslagern.
Empfehlungen
- Anwendungs-Deployment
Sie sollten ein containerbasiertes Deployment mit Kubernetes verwenden, wenn die Anwendung in Containern ausgeführt werden kann. Wenn Container verwendet werden, sollten Sie ein Containerimage mit dem Backend-Code und den vom Kunden verwalteten Oracle REST Data Services bereits installiert haben.
- Sicherheit
Wenn Sie Oracle Database Advanced Security Option-Features verwenden, um Daten im Ruhezustand zu verschlüsseln und dynamische Datenverdeckung zu aktivieren, ist eine Oracle Database Enterprise Edition-Lizenz erforderlich, um die erweiterte Sicherheitsoption von Oracle Database zu verwenden.
- Beobachtbarkeit
Verwenden Sie Oracle Data Safe, um den Sicherheitsstatus der Workload weiter zu erhöhen und Datenbankauditing ausführen zu können.
- Anwendungsentwicklung
- Erwägen Sie die Bereitstellung von Betriebsanalysen und Echtzeitberichten in Oracle Database 23ai mit SQL und einem Frontend wie Oracle APEX, um Daten für vertrauenswürdige Echtzeitanalysen in der Datenbank zu speichern.
- Ziehen Sie in Betracht, Oracle Database 23ai für maschinelles Lernen mit Oracle Machine Learning for SQL zu verwenden, Modelle mit JSON-Daten zu erstellen und zu trainieren, ohne dass Daten verschoben werden müssen, und die Modelle neben der vorhandenen Workload bereitzustellen, um effiziente Inferenzierung zu ermöglichen.
- Verwenden Sie die Datenbank, um zusätzliche Datentypen (relational, vektor, räumlich oder grafisch) für zusätzliche Workload-Funktionalität und Flexibilität zu speichern.
- Ziehen Sie in Betracht, Exadata und Oracle Database 23ai für Analysen zu verwenden, die über Betriebsanalysen hinausgehen, und profitieren Sie von der Hybrid Columnar Compression, einem effizienten, auf Datenanalysen zugeschnittenen Spaltenformat, das die Analyseperformance erhöht und gleichzeitig den zum Speichern von Daten erforderlichen Speicherplatz reduziert. Hybrid Columnar Compression wird in Exadata unterstützt und ist in einer Oracle Database Enterprise Edition-Lizenz enthalten.