Distribuire un carico di lavoro MongoDB migrato in Oracle Exadata Database Machine

Esegui la migrazione di un carico di lavoro esistente che utilizza un database di documenti, in questo caso MongoDB, a Oracle Database 23ai sull'infrastruttura Exadata per uno 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 AI, microservizi, grafiche, documenti, spaziali e applicazioni relazionali, è una piattaforma di database convergente che offre tutto ciò che è necessario in un'unica soluzione potente.

Oracle Exadata Database Machine è stata pensata come la piattaforma più performante e disponibile per l'esecuzione di Oracle Database. Exadata esegue tutti i tipi di carichi lavoro del database, tra cui OLTP (Online Transaction Processing), Data Warehooring (DW) e il consolidamento di workload misti. Semplice e veloce da implementare, Exadata è progettato per alimentare e proteggere i database più importanti ed è la base ideale per Database as a Service.

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. Implementa un'istanza Oracle Database 23ai ad alta disponibilità in Exadata su diversi nodi del database, utilizzando Oracle Real Application Clusters (Oracle RAC).
  2. Eseguire la migrazione di metadati e dati da MongoDB a Oracle Database 23ai.
  3. Installare e configurare la computazione del livello backend, indipendentemente dal fatto che si tratti di VM, container o Oracle REST Data Services.
  4. Configurare Oracle REST Data Services per abilitare l'interfaccia API MongoDB in modo che l'applicazione possa comunicare con il database utilizzando i driver MongoDB.
  5. Configurare l'applicazione in modo che utilizzi la nuova stringa di connessione al database.
  6. Connettere l'applicazione backend a Oracle Database 23ai utilizzando gli stessi strumenti e driver MongoDB utilizzati nell'applicazione corrente.

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. Poiché Oracle Database 23ai è una tecnologia di database multi-modello e multi-carico di lavoro, è possibile aggiungere funzionalità aggiuntive che si basano su tipi di dati relazionali, spaziali, grafici o vettoriali, lavorando insieme all'applicazione esistente.

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.
  • La funzionalità DNS è configurata per instradare le richieste al data center in standby in caso di failover.

Livello back-end

  • Le applicazioni esistenti vengono distribuite e utilizzate con le stesse istanze di computazione.
  • Gli Oracle REST Data Services gestiti dal cliente condividono la stessa struttura logistica di data center e vengono distribuiti sugli application server. Il codice dell'applicazione può connettersi a Oracle Database 23ai tramite Oracle REST Data Services.
  • La scalabilità del livello di back-end viene ottenuta utilizzando l'attuale meccanismo di scalabilità in atto, ridimensionando implicitamente Oracle REST Data Services installato in ogni server applicazioni.

Livello database

  • Oracle Database 23ai viene distribuito in Exadata e viene utilizzato 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

  • Ottenuto utilizzando una strategia di disaster recovery Oracle Data Guard.
  • Si presume una strategia di disaster recovery calorosa, con il livello back-end e le risorse associate già distribuite ed in esecuzione.

Il diagramma seguente illustra questa architettura di riferimento.



mongodb-exadata-macchina-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.
  • 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.
  • Il livello back-end include diverse VM che gestiscono le richieste dell'utente.
  • Oracle REST Data Services gestito dal cliente viene distribuito e configurato nelle VM di livello backend. Durante l'aggiunta delle VM, sia l'Application Server che Oracle REST Data Services vengono ridimensionati automaticamente.
  • L'obiettivo RTO (Recovery Time Objective) dipende non solo dal failover del database, ma anche dal failover completo del resto dei componenti del carico di lavoro nel data center in standby.
  • L'obiettivo RTO e RPO (recovery point objective) del database dipende dalla modalità di protezione configurata di Oracle Data Guard.
  • Il failover del database sfrutterà il failover manuale o automatico di Oracle Data Guard, a seconda dei requisiti dettagliati della business continuity.

Networking

  • Esiste una subnet pubblica che riceve le richieste degli utenti in entrata da Internet.
  • Le richieste del load balancer vengono instradate ai server di livello backend che servono le richieste degli utenti.
  • La VM Exadata è collegata al client e alle reti di amministrazione.
  • Le richieste di livello backend al database tramite Oracle REST Data Services utilizzano gli indirizzi di rete client.
  • I due data center sono interconnessi con la larghezza di banda e la bassa latenza necessarie per supportare una configurazione Oracle Data Guard.

Database

  • Oracle Database 23ai viene distribuito in un cluster VM Exadata.
  • Il cluster VM utilizza diversi nodi di database per l'alta disponibilità.
  • Oracle RAC garantisce che il database utilizzi diversi nodi di database per il carico di lavoro.

Sicurezza

  • Tutti i dati sono sicuri in transito e in archivio.

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

  • Utilizzare Active Data Guard per abilitare il database di standby per le query di analitica operativa di accesso in sola lettura e di scarico.

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

    Prendi in considerazione l'utilizzo di una distribuzione basata su container utilizzando Kubernetes se l'applicazione può essere eseguita in container. Se vengono utilizzati contenitori, considerare la possibilità di avere un'immagine contenitore con il codice backend e Oracle REST Data Services già installato gestito dal cliente.

  • 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.

  • 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 Exadata e Oracle Database 23ai per gli analytics oltre agli analytics operativi, traendo vantaggio da Hybrid Columnar Compression, un formato a colonne efficiente 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 Exadata ed è incluso con una licenza Oracle Database Enterprise Edition.

Scopri di più

Scopri di più sulla distribuzione dei carichi di lavoro migrati da MongoDB a Oracle Exadata Database Machine.

Esaminare le seguenti risorse aggiuntive:

Conferme

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