Distribuisci un carico di lavoro MongoDB migrato su Oracle Database Appliance

Esegui la migrazione di un carico di lavoro esistente che utilizza un database di documenti, in questo caso MongoDB, a Oracle Database 23ai su Oracle Database Appliance per lo sviluppo semplificato di applicazioni incentrate su JSON utilizzando un database convergente e multi-modello.

I carichi di lavoro e le applicazioni che utilizzano documenti e database di documenti per evolvere schemi e applicazioni di dati sono popolari grazie alla flessibilità che offrono agli sviluppatori. La flessibilità dello schema, lo sviluppo rapido e la scalabilità consentono la prototipazione accelerata delle funzioni dell'applicazione, una più semplice evoluzione delle applicazioni e la possibilità di creare applicazioni e funzionalità iterativamente più piccole che gli sviluppatori possono scalare per soddisfare una vasta base di utenti. Tuttavia, questi tipi di carichi di lavoro hanno le loro sfide, tra cui garanzie transazionali più deboli, versatilità delle query sui dati e incapacità di supportare altri carichi di lavoro su documenti, come analytics o machine learning.

Cosa succede se questi carichi di lavoro possono trarre vantaggio dai vantaggi dei database di documenti tradizionali e sfruttare i vantaggi dei database relazionali? Ad esempio, hai garanzie transazionali più solide e funzionalità aggiuntive come analytics e machine learning, senza la necessità di replicare i dati in un altro database o sistema.

Oracle Database 23ai, progettato per semplificare lo sviluppo di applicazioni AI, microservizi, grafici, documenti, spaziali e relazionali, è una piattaforma di database convergente che offre tutto ciò che è necessario in un'unica soluzione potente.

Oracle Database Appliance è un sistema di engineering che semplifica l'implementazione, la gestione e il supporto di soluzioni Oracle Database ad alta disponibilità. Integrando software, elaborazione, storage e rete, offre prestazioni affidabili per un'ampia varietà di applicazioni di elaborazione delle transazioni online (OLTP), analytics, data warehousing e AI.

Architettura funzionale

Questa architettura di riferimento presuppone che un carico di lavoro composto da un'applicazione e un database MongoDB esista on-premise e che venga eseguito la migrazione per utilizzare Oracle Database 23ai come database. Descrive l'architettura di stato futura, i vantaggi, le modalità di distribuzione e le funzioni aggiuntive che è possibile utilizzare per aumentare il carico di lavoro esistente.

Questa architettura di riferimento si concentra sulla distribuzione del carico di lavoro migrato e non sul processo di migrazione. Per ulteriori informazioni sul processo di migrazione, vedere la sezione Scopri di più.

Una delle funzionalità chiave utilizzate in questa architettura è l'API di Oracle Database per MongoDB, che consente alle applicazioni di interagire con raccolte di documenti JSON in Oracle Database utilizzando i comandi MongoDB. Ciò consente al codice dell'applicazione esistente di utilizzare i dati memorizzati in Oracle Database 23ai, senza la necessità di rifattorizzare il codice.

Il diagramma seguente illustra un'applicazione tipica composta da un database, un livello back-end e un livello front-end.



mongodb-archico-logico-migration.zip

Uno stack popolare utilizzato per implementare questo pattern è lo stack MEAN:

  • MongoDB: database dei documenti
  • Express: framework backend
  • Angolare: Struttura frontale
  • Node.js: server backend

Questa architettura utilizza uno stack MEAN come esempio di distribuzione esistente per eseguire la migrazione a Oracle Database 23ai. La migrazione di questo carico di lavoro a Oracle Database 23ai prevede i seguenti passaggi di alto livello:

  1. Distribuzione e configurazione di Oracle Database Appliance.
  2. Crea un'istanza Oracle Database 23ai in Oracle Database Appliance.
  3. Eseguire la migrazione di metadati e dati da MongoDB a Oracle Database.
  4. Crea VM in Oracle Database Appliance per eseguire il livello di back-end e Oracle REST Data Services.
  5. Distribuisci e configura il livello backend e Oracle REST Data Services nelle VM di Oracle Database Appliance.
  6. Configurare Oracle REST Data Services per abilitare l'API MongoDB, in modo che l'applicazione possa comunicare con il database utilizzando i driver MongoDB.
  7. Configurare l'applicazione in modo che utilizzi la nuova stringa di connessione al database.
  8. Connettere l'applicazione backend a Oracle Database utilizzando gli stessi strumenti e driver MongoDB utilizzati nell'applicazione.

Dopo aver eseguito la migrazione del carico di lavoro a Oracle Database, puoi migliorare le funzionalità abilitando funzioni aggiuntive, ad esempio una maggiore sicurezza, reporting operativo, analytics e machine learning, senza copiare i dati dal database. Oracle Database 23ai è una piattaforma multi-modello con carichi di lavoro multipli, che ti consente di integrare perfettamente funzionalità che utilizzano tipi di dati relazionali, spaziali, grafici o vettoriali insieme all'applicazione esistente.

Per migliorare la scalabilità del carico di lavoro, allocare più computazione e memoria al database regolando le memorie centrali CPU assegnate alle VM del database e delle applicazioni.

Per migliorare la disponibilità, Oracle Database Appliance dispone di un sistema ad alta disponibilità completamente ridondante, Oracle Database Appliance ad alta disponibilità, che utilizza due nodi di calcolo per distribuire il database e il livello back-end. Se utilizzato con Oracle Database 23ai Real Application Clusters, viene ottenuta l'alta disponibilità completa.

Architettura fisica

L'architettura fisica per questo carico di lavoro migrato su Oracle Database 23ai supporta quanto segue:

Livello front-end

  • Viene utilizzata la distribuzione corrente.
  • Gli utenti possono connettersi da Internet o dalla rete aziendale.
  • È disponibile una funzionalità DNS, configurata per instradare le richieste al data center in standby in caso di failover.

Livello back-end

  • Le applicazioni esistenti vengono implementate nelle VM di Oracle Database Appliance per consentire il consolidamento dei carichi di lavoro e ridurre i costi complessivi.
  • Gli Oracle REST Data Services gestiti dal cliente sono distribuiti su server applicativi Oracle Database Appliance VM, pertanto il codice dell'applicazione può connettersi a Oracle Database 23ai tramite Oracle REST Data Services.
  • La scalabilità del livello backend si ottiene aggiungendo altre VM Oracle Database Appliance quando necessario, ridimensionando implicitamente Oracle REST Data Services, installato in ogni VM di Application Server.

Livello database

  • Oracle Database 23ai viene distribuito su Oracle Database Appliance in una configurazione a nodo singolo, utilizzata per memorizzare e servire documenti JSON al livello di back-end.
  • L'API di Oracle Database per MongoDB è abilitata utilizzando Oracle REST Data Services, che consente di utilizzare il codice dell'applicazione esistente senza apportare modifiche al codice.

Continuità aziendale

  • Viene utilizzata una strategia di disaster recovery basata sul backup.
  • Per garantire che vengano mantenuti gli stessi obiettivi a livello di servizio dell'applicazione (SLO, Application Service-Level Goals) durante l'esecuzione del carico di lavoro dal data center in standby, eseguire un'infrastruttura Oracle Database Appliance comparabile in quella posizione.

Il diagramma seguente illustra questa architettura di riferimento.



mongodb-oda-fisico-arch.zip

Il design per l'architettura fisica:

Continuità aziendale

  • Esistono due data center con distribuzioni identiche: uno attivo e l'altro in standby.
  • I backup vengono memorizzati nello storage dei file di rete (NFS) e replicati nel sito in standby.
  • In caso di guasto nel data center attivo, il backup più recente consente di avviare rapidamente i carichi di lavoro nel centro di standby.
  • L'indirizzamento del traffico DNS indirizza le richieste utente al data center attivo. Se i sonde di controllo dello stato DNS eseguiti sul livello dell'applicazione non riescono in modo ricorrente, il DNS viene riconfigurato per instradare il traffico al carico di lavoro del data center in standby.
  • Un load balancer distribuisce le richieste in entrata su più VM di livello backend, evitando un singolo punto di errore.
  • Oracle REST Data Services gestito dal cliente viene distribuito e configurato nelle VM di livello backend. Ogni volta che viene aggiunta una VM, viene eseguito il ridimensionamento sia dell'Application Server che di Oracle REST Data Services.
  • L'obiettivo RTO (Recovery Time Objective) dipende dalla distribuzione di tutti i componenti del carico di lavoro nel data center di standby, incluso il ripristino del database dall'ultimo backup replicato.
  • Il recovery point objective (RPO) dipende dal backup replicato più recente.

Networking

  • Esiste una subnet pubblica che riceve le richieste utente in entrata da Internet.
  • La scheda di interfaccia di rete pubblica (NIC, Public Network Interface Card) Oracle Database Appliance è collegata alla subnet privata del carico di lavoro.
  • Le richieste del load balancer vengono instradate alle VM di livello backend di Oracle Database Appliance che servono le richieste degli utenti.

Database

  • Oracle Database 23ai è implementato in Oracle Database Appliance.
  • I dati vengono memorizzati in modo ridondante, con mirroring doppio o triplo, per una maggiore resilienza dei dati.
  • I backup automatici del database vengono configurati per il backup in NFS, tali backup vengono replicati nel data center NFS in standby, utilizzando le funzionalità di replica NFS esistenti.

Sicurezza

  • Le funzionalità RBAC (Role-based Access Control) del database vengono utilizzate per proteggere il carico di lavoro.
  • Se si utilizza l'opzione di sicurezza avanzata di Oracle Database Enterprise Edition, i dati memorizzati nel database possono essere cifrati utilizzando la cifratura dei dati trasparente (TDE).

I potenziali miglioramenti di progettazione non descritti in questa distribuzione per motivi di semplicità includono:

  • Sfrutta un sistema HA (High Availability) di Oracle Database Appliance composto da due nodi di calcolo per garantire l'alta disponibilità del carico di lavoro backend. Distribuisci le VM con riavvio e failover automatici su entrambi i nodi.
  • Utilizza HA di Oracle Database Appliance con Oracle Database Enterprise Edition e Oracle Real Application Clusters (Oracle RAC) per fornire alta disponibilità per il livello di database.

Suggerimenti

Utilizza i seguenti suggerimenti come punto di partenza per migliorare ed evolvere ulteriormente il carico di lavoro. I requisiti potrebbero essere diversi dall'architettura descritta qui.
  • Distribuzione applicazione

    Utilizza diverse VM di livello backend per aumentare la resilienza. Abilita la gestione di Oracle Database Appliance delle risorse CPU per allocare la giusta quantità di calcolo delle VM, garantendo la qualità del servizio necessaria per l'applicazione.

  • Sicurezza

    Considerando la possibilità di utilizzare le funzioni di Oracle Database Advanced Security Option per la cifratura dei dati archiviati e l'abilitazione della protezione dinamica dei dati, è necessaria una licenza Oracle Database Enterprise Edition per utilizzare Oracle Database Advanced Security Option.

  • Osservabilità

    Prendi in considerazione l'uso di Oracle Data Safe per aumentare ulteriormente il livello di sicurezza del carico di lavoro ed essere in grado di eseguire l'audit del database.

  • Efficienza operativa

    Prendi in considerazione l'utilizzo di infrastructure as code, ovvero Terraform, insieme all'SDK di Oracle Database Appliance, per automatizzare la distribuzione di VM e database.

  • Evoluzione delle applicazioni
    • Prendi in considerazione l'implementazione di analytics operativi e reporting in tempo reale in Oracle Database 23ai utilizzando SQL e un frontend come Oracle APEX, mantenendo i dati all'interno del database per un'analisi affidabile e in tempo reale.
    • Prendi in considerazione l'utilizzo di Oracle Database 23ai per il machine learning utilizzando Oracle Machine Learning for SQL, per creare e addestrare modelli con dati JSON senza alcuna necessità di spostamento dei dati e per distribuire i modelli insieme al carico di lavoro esistente per un'inferenza efficiente.
    • Prendi in considerazione l'utilizzo del database per memorizzare ulteriori tipi di dati (relazionali, vettoriali, spaziali o grafici) per aggiungere funzionalità e flessibilità al carico di lavoro.
    • Prendi in considerazione l'utilizzo di Oracle Database Appliance e Oracle Database 23ai per gli analytics oltre agli analytics operativi, traendo vantaggio dall'Hybrid Columnar Compression, un efficiente formato a colonne personalizzato per gli analytics dei dati, che aumenta le prestazioni degli analytics e riduce allo stesso tempo lo spazio necessario per memorizzare i dati. Hybrid Columnar Compression è supportato in Oracle Database Appliance ed è incluso con una licenza Oracle Database Enterprise Edition.

Scopri di più

Scopri di più sull'implementazione dei carichi di lavoro migrati da MongoDB a Oracle Database Appliance.

Esaminare le seguenti risorse aggiuntive:

Conferme

  • Autore: José Cruz
  • Collaboratori: Massimo Castelli, Simon Griffiths, Matt DeMarco, Julian Dontcheff