Déploiement d'une charge globale MongoDB migrée vers Oracle Exadata Database Machine

Migrez une charge globale existante qui utilise une base de données de documents, dans le cas présent MongoDB, vers l'infrastructure Oracle Database 23ai sur Exadata pour simplifier le développement d'applications centrées sur JSON à l'aide d'une base de données convergée et multimodèle.

Les charges de travail et les applications qui utilisent des documents et des bases de données de documents pour faire évoluer les schémas de données et les applications sont populaires en raison de la flexibilité qu'elles offrent aux développeurs. La flexibilité des schémas, le développement rapide et l'évolutivité permettent un prototypage accéléré des fonctionnalités d'application, une évolution plus facile des applications et la possibilité de créer des applications et des fonctionnalités itératives plus petites que les développeurs peuvent adapter pour répondre à une grande base d'utilisateurs. Cependant, ces types de charges de travail présentent des défis, notamment des garanties transactionnelles plus faibles, la polyvalence des requêtes de données et l'incapacité à prendre en charge d'autres charges de travail sur des documents, tels que les analyses ou le machine learning.

Et si ces charges de travail pouvaient bénéficier des avantages des bases de données de documents traditionnelles et tirer parti des avantages des bases de données relationnelles ? Par exemple, bénéficiez de garanties transactionnelles plus solides et de fonctionnalités supplémentaires telles que l'analyse et le machine learning, sans avoir à répliquer les données vers une autre base de données ou un autre système.

Oracle Database 23ai, conçu pour simplifier le développement pour les applications d'IA, de microservices, de graphes, de documents, spatiales et relationnelles, est une plate-forme de base de données convergée offrant tout ce qui est nécessaire dans une solution puissante.

Oracle Exadata Database Machine est conçu pour être la plate-forme la plus performante et la plus disponible pour exécuter Oracle Database. Exadata exécute tous les types de charges globales de base de données, y compris le traitement des transactions en ligne (OLTP), l'entreposage de données (DW) et la consolidation de charges globales mixtes. Simple et rapide à implémenter, Exadata est conçu pour alimenter et protéger vos bases de données les plus importantes. Il constitue la base idéale pour Database as a Service.

Architecture fonctionnelle

Cette architecture de référence suppose une charge globale composée d'une application et que la base de données MongoDB existe sur site et sera migrée pour utiliser Oracle Database 23ai comme base de données. Il décrit l'architecture d'état future, ses avantages, comment elle peut être déployée et quelles fonctionnalités supplémentaires peuvent être utilisées pour augmenter la charge globale existante.

Cette architecture de référence se concentre sur le déploiement de la charge globale migrée, et non sur le processus de migration. Pour en savoir plus sur le processus de migration, reportez-vous à la section En savoir plus.

L'une des fonctionnalités clés utilisées dans cette architecture est l'API Oracle Database pour MongoDB, qui permet aux applications d'interagir avec les collections de documents JSON dans Oracle Database à l'aide des commandes MongoDB. Cela permet au code d'application existant d'utiliser les données stockées dans Oracle Database 23ai, sans avoir à refactoriser le code.

Le diagramme suivant illustre une application standard composée d'une base de données, d'un niveau back-end et d'un niveau front-end.



mongodb-logical-arch-migration.zip

Une pile populaire utilisée pour implémenter ce modèle est la pile MEAN :

  • MongoDB : base de données de documents
  • Express : structure back-end
  • Angular : Cadre frontal
  • Node.js : serveur back-end

Cette architecture utilise une pile MEAN comme exemple de déploiement existant pour migrer vers Oracle Database 23ai. La migration de cette charge globale vers Oracle Database 23ai comprend les étapes de haut niveau suivantes :

  1. Déployez une instance Oracle Database 23ai hautement disponible dans Exadata sur plusieurs noeuds de base de données, à l'aide d'Oracle Real Application Clusters (Oracle RAC).
  2. Migrez les métadonnées et les données de MongoDB vers Oracle Database 23ai.
  3. Installez et configurez le calcul de niveau back-end, qu'il s'agisse de machines virtuelles, de conteneurs ou d'Oracle REST Data Services.
  4. Configurez Oracle REST Data Services pour activer l'API MongoDB afin que l'application puisse communiquer avec la base de données à l'aide des pilotes MongoDB.
  5. Configurez l'application pour qu'elle utilise la nouvelle chaîne de connexion à la base de données.
  6. Connectez l'application back-end à Oracle Database 23ai à l'aide des mêmes outils et pilotes MongoDB que ceux utilisés sur l'application en cours.

Après avoir migré la charge globale vers Oracle Database, vous pouvez améliorer les fonctionnalités en activant des fonctionnalités supplémentaires, telles que la sécurité améliorée, le reporting opérationnel, les analyses et le machine learning, sans copier les données hors de la base de données. Oracle Database 23ai est une plate-forme multi-modèle et multi-charge de travail, qui vous permet d'intégrer de manière transparente des fonctionnalités qui utilisent des types de données relationnelles, spatiales, graphiques ou vectorielles avec votre application existante.

Pour améliorer l'évolutivité de la charge globale, allouez davantage de calcul et de mémoire à la base de données. Oracle Database 23ai étant une technologie de base de données à plusieurs modèles et charges de travail, des fonctionnalités supplémentaires reposant sur des types de données relationnelles, spatiales, graphiques ou vectorielles peuvent être ajoutées, en collaboration avec l'application existante.

Architecture physique

L'architecture physique de cette charge globale migrée vers Oracle Database 23ai prend en charge les éléments suivants :

Niveau frontal

  • Le déploiement actuel est utilisé.
  • Les utilisateurs peuvent se connecter à partir d'Internet ou du réseau de l'entreprise.
  • La fonctionnalité DNS est configurée pour acheminer les demandes vers le centre de données de secours en cas de basculement.

Niveau back-end

  • Les applications existantes sont déployées et utilisées avec les mêmes instances de calcul.
  • Les services Oracle REST Data Services gérés par le client sont colocalisés et déployés sur les serveurs d'applications. Le code d'application peut se connecter à Oracle Database 23ai via Oracle REST Data Services.
  • L'évolutivité du niveau back-end est obtenue à l'aide du mécanisme d'évolutivité en place, qui permet de redimensionner implicitement Oracle REST Data Services installé sur chaque serveur d'applications.

Niveau base de données

  • Oracle Database 23ai est déployé dans Exadata et est utilisé pour stocker et traiter des documents JSON vers le niveau back-end.
  • L'API Oracle Database pour MongoDB est activée à l'aide d'Oracle REST Data Services, qui permet d'utiliser le code d'application existant sans modifier le code.

Continuité des activités

  • Utilisation d'une stratégie de récupération après sinistre Oracle Data Guard.
  • Une stratégie de récupération après sinistre à chaud est supposée, le niveau back-end et les ressources associées étant déjà déployés et en cours d'exécution.

Le schéma suivant illustre cette architecture de référence.



mongodb-exadata-machine-physical-arch.zip

Conception de l'architecture physique :

Continuité des activités

  • Il existe deux centres de données avec des déploiements identiques : l'un actif, l'autre en standby.
  • Le pilotage du trafic DNS dirige les demandes utilisateur vers le centre de données actif. Si les tests de vérification de l'état du DNS exécutés sur le niveau de l'application échouent de manière récurrente, le DNS est reconfiguré pour acheminer le trafic vers la charge globale du centre de données de secours.
  • Un équilibreur de charge répartit les demandes entrantes entre plusieurs machines virtuelles de niveau back-end, ce qui évite un point d'échec unique.
  • Le niveau back-end comporte plusieurs machines virtuelles qui gèrent les demandes utilisateur.
  • Oracle REST Data Services géré par le client est déployé et configuré sur les machines virtuelles de niveau back-end. Lorsque vous ajoutez des machines virtuelles, le serveur d'applications et Oracle REST Data Services évoluent automatiquement.
  • L'objectif de temps de récupération (RTO) dépend non seulement du basculement de la base de données, mais également du basculement complet vers le reste des composants de charge globale du centre de données de secours.
  • Le RTO et le RPO de base de données (objectif de point de récupération) dépendent du mode de protection Oracle Data Guard configuré.
  • Le basculement de base de données s'appuiera sur le basculement manuel ou automatique Oracle Data Guard, en fonction des exigences détaillées de continuité des activités.

Fonctions de réseau

  • Un sous-réseau public reçoit les demandes entrantes des utilisateurs à partir d'Internet.
  • Les demandes d'équilibreur de charge sont acheminées vers les serveurs de niveau back-end qui traitent les demandes utilisateur.
  • La machine virtuelle Exadata est attachée aux réseaux client et d'administration.
  • Les demandes de niveau back-end adressées à la base de données via Oracle REST Data Services utilisent des adresses réseau client.
  • Les deux centres de données sont interconnectés avec la bande passante et la faible latence requises pour prendre en charge une configuration Oracle Data Guard.

Base de données

  • Oracle Database 23ai est déployé dans un cluster de machines virtuelles Exadata.
  • Le cluster de machines virtuelles utilise plusieurs noeuds de base de données pour la haute disponibilité.
  • Oracle RAC garantit que la base de données utilise plusieurs noeuds de base de données pour la charge globale.

Sécurité

  • Toutes les données sont sécurisées en transit et au repos.

Les améliorations de conception potentielles non décrites dans ce déploiement pour simplifier comprennent :

  • Utilisez Active Data Guard pour activer la base de données de secours pour l'accès en lecture seule et décharger les requêtes d'analyse opérationnelle.

Recommandations

Utilisez les recommandations suivantes comme point de départ pour améliorer et faire évoluer la charge de travail. Vos exigences peuvent différer de l'architecture décrite ici.
  • Déploiement d'application

    Envisagez d'utiliser un déploiement basé sur un conteneur à l'aide de Kubernetes si l'application peut être exécutée dans des conteneurs. Si des conteneurs sont utilisés, envisagez d'avoir une image de conteneur avec le code back-end et Oracle REST Data Services géré par le client déjà installé.

  • Sécurité

    Envisagez d'utiliser les fonctionnalités de l'option de sécurité avancée Oracle Database pour crypter les données au repos et activer la protection par occultation dynamique, une licence Oracle Database Enterprise Edition est requise pour utiliser l'option de sécurité avancée Oracle Database.

  • Observation

    Envisagez d'utiliser Oracle Data Safe pour améliorer encore l'état de sécurité de la charge globale et être en mesure d'effectuer des audits de base de données.

  • Evolution des applications
    • Envisagez de déployer des analyses opérationnelles et des rapports en temps réel dans Oracle Database 23ai à l'aide de SQL et d'un front-end comme Oracle APEX, en conservant les données dans la base de données pour une analyse fiable et en temps réel.
    • Envisagez d'utiliser Oracle Database 23ai pour le machine learning à l'aide d'Oracle Machine Learning for SQL, de créer et d'entraîner des modèles avec des données JSON sans déplacement de données, et de déployer les modèles avec la charge globale existante pour une inférence efficace.
    • Envisagez d'utiliser la base de données pour stocker des types de données supplémentaires (relationnel, vectoriel, spatial ou graphique) afin d'améliorer la fonctionnalité et la flexibilité de la charge globale.
    • Envisagez d'utiliser Exadata et Oracle Database 23ai pour les analyses au-delà des analyses opérationnelles, en tirant parti de la compression en colonnes hybride, un format en colonnes efficace adapté aux analyses de données, qui augmente les performances des analyses tout en réduisant l'espace nécessaire au stockage des données. La compression en colonnes hybride est prise en charge dans Exadata et est incluse avec une licence Oracle Database Enterprise Edition.

En savoir plus

En savoir plus sur le déploiement de workloads migrés à partir de MongoDB vers Oracle Exadata Database Machine.

Consultez les ressources supplémentaires suivantes :

Accusés de réception

  • Auteur : José Cruz
  • Contributeurs : Massimo Castelli, Simon Griffiths, Matt DeMarco, Julian Dontcheff