Modernisez et consolidez AWS RDS pour MySQL et MongoDB Atlas sur Oracle Autonomous Database

Découvrez comment un client a remplacé une architecture complexe à plusieurs bases de données sur Amazon Web Service (AWS) qui utilisait MySQL et MongoDB Atlas avec une seule instance Autonomous Database convergée.

La migration de base de données a été effectuée à l'aide d'Oracle Cloud Infrastructure GoldenGate. Oracle Cloud Infrastructure GoldenGate est un service cloud natif entièrement géré qui déplace les données en temps réel et à grande échelle. La migration a également conservé un grand pourcentage de code d'application à l'aide de l'API Oracle Database pour MongoDB.

L'architecture héritée déployée sur AWS était un workflow complexe de traitement de données composé d'un AWS RDS MySQL Database et MongoDB Atlas gérés pour assurer la cohérence et la précision des données, tout en fournissant les informations dans un format JSON flexible à leurs clients.

Le schéma suivant illustre le flux de données hérité :



aws-rds-oci-adw-flow1-oracle.zip

Plusieurs systèmes fragmentés ont été couplés, augmentant ainsi la complexité du chargement, de la transformation et de la synchronisation des données. L'architecture héritée était non seulement complexe, mais gaspillait également des ressources et était sujette aux erreurs. La complexité du système :

  • Augmentation des risques d'erreurs de traitement des données, pour une qualité des données inférieure et une précision inférieure à 100 %
  • Augmentation des temps de traitement, ce qui réduit les délais de production
  • Augmentation de la surcharge opérationnelle, perte de temps et de ressources pour la résolution des problèmes et le débogage

Architecture

La base de données de production est migrée d'Amazon RDS pour MySQL et MongoDB Atlas dans AWS vers Oracle Autonomous Database déployé dans la région Oracle Cloud Infrastructure (OCI) US-East (Ashburn) à l'aide d'OCI GoldenGate provisionné dans la même région et le même réseau cloud virtuel (VCN).

La réplication unidirectionnelle entre les deux clouds est utilisée uniquement pour la migration.

Les applications sont déployées dans AWS US-East (Ashburn). Après la migration, le niveau d'application est également migré vers une instance de calcul OCI. Une connectivité dédiée est fournie par Oracle Cloud Infrastructure FastConnect et un partenaire OCI FastConnect pour connecter les bases de données exécutées dans AWS à OCI GoldenGate. Pour obtenir un lien vers la liste des partenaires OCI FastConnect par région, reportez-vous à la section Explorer plus.

Les principales étapes de migration et de consolidation sont les suivantes :

  1. Préparez les bases de données MySQL et MongoDB pour la réplication à l'aide d'OCI GoldenGate.
  2. Provisionnez deux déploiements OCI GoldenGate pour l'exécution des extractions : déploiement MySQL pour la base de données MySQL et déploiement Big Data pour MongoDB.
  3. Créez des connexions à partir d'OCI GoldenGate vers MySQL et MongoDB.
  4. Dans le déploiement Oracle cible, créez un déploiement OCI GoldenGate pour répliquer des données vers Oracle Autonomous Database.
  5. Créez une connexion à partir d'OCI GoldenGate vers Oracle Autonomous Database.
  6. Affectation de connexions aux déploiements respectifs.
  7. Créez une extraction de chargement initial pour les déploiements MySQL et MongoDB.
  8. Créez des processus de service de distribution pour envoyer les données des déploiements MySQL et MongoDB source au déploiement Oracle cible.
  9. Créez un processus de réplication sur le déploiement Oracle cible pour répliquer les données de chargement initial.
  10. Créez une extraction de capture des données de modification pour les déploiements MySQL et MongoDB.
  11. Créez un processus de réplication de capture des données de modification sur le déploiement Oracle cible pour répliquer les données.
  12. Répliquez l'application d'AWS EC2 vers la machine virtuelle OCI.
  13. Connectez l'application dans OCI à Oracle Autonomous Database.
  14. Déconnectez et désactivez les applications et les bases de données sur AWS.

Grâce à des fonctionnalités de base de données convergées qui prennent en charge les exigences relationnelles et de stockage de documents au sein d'une seule base de données, Oracle Autonomous Database exécuté sur OCI fournit la plate-forme de base pour atteindre les objectifs du client. Oracle Autonomous Database leur permet de stocker les données brutes telles quelles dans son format relationnel avec une intégrité des données renforcée. Les données des applications de l'utilisateur final sont renvoyées au format JSON requis en millisecondes. Les données sont facilement disponibles via SQL et JSON et via l'API Oracle Database pour MongoDB, sans traitement supplémentaire.

L'architecture est illustrée dans le diagramme suivant :



aws-rds-oci-adw-arch-oracle.zip

Dans cette architecture, OCI GoldenGate et Oracle Autonomous Database sont provisionnés dans OCI et facilitent la réplication unidirectionnelle à partir d'AWS RDS pour MySQL.

En utilisant OCI GoldenGate, vous pouvez également concevoir, exécuter, orchestrer et surveiller des tâches de réplication de données et d'analyse de diffusion en continu sans avoir à allouer ou à gérer des environnements de calcul. OCI GoldenGate n'est pas requis pour exécuter l'application et la base de données une fois la migration terminée et peut être enlevé.

La consolidation de l'ancienne architecture de base de données en une seule instance Oracle Autonomous Database exécutée sur OCI élimine la nécessité d'exploiter une architecture complexe avec plusieurs bases de données à usage unique et des processus d'extraction, de transformation et de chargement (ETL) complexes et synchronisés entre ces deux bases de données, et réduit le temps de traitement tout en augmentant la qualité et la précision des données.

Le schéma suivant illustre le flux de données en cours :



aws-rds-oci-adw-flow2-oracle.zip

Le client a constaté les avantages commerciaux immédiats suivants :

  • Accélération de 15 % du délai de production du projet et amélioration de la qualité pour une plus grande satisfaction client
  • Amélioration des performances des applications grâce à une architecture plus simple et aux fonctionnalités d'Oracle Autonomous Database
  • Réduction des coûts opérationnels de 10 % grâce à la réduction de l'infrastructure et de la gestion des applications et des bases de données
  • Augmentation de la productivité des développeurs pour se concentrer sur l'innovation plutôt que sur la résolution des problèmes

L'architecture comporte les composants suivants :

  • Location

    Une location est une partition sécurisée et isolée qu'Oracle configure dans Oracle Cloud lors de votre inscription à Oracle Cloud Infrastructure. Vous pouvez créer, organiser et administrer vos ressources dans Oracle Cloud au sein de votre location. Une location est synonyme d'une entreprise ou d'une organisation. Habituellement, une entreprise a une location unique et reflète sa structure organisationnelle au sein de cette location. Une location unique est généralement associée à un seul abonnement, et un seul abonnement n'a généralement qu'une location.

  • Région

    Une région Oracle Cloud Infrastructure est une zone géographique précise qui contient un ou plusieurs centres de données, appelés domaines de disponibilité. Les régions sont indépendantes les unes des autres et de grandes distances peuvent les séparer (dans des pays voire des continents).

  • Domaine de disponibilité

    Les domaines de disponibilité sont des centres de données autonomes indépendants au sein d'une région. Les ressources physiques de chaque domaine de disponibilité sont isolées de celles des autres, ce qui garantit la tolérance aux pannes. Les domaines de disponibilité ne partagent ni infrastructure (par exemple, alimentation, système de refroidissement), ni réseau de domaine de disponibilité interne. Ainsi, il est peu probable qu'une panne sur un domaine de disponibilité affecte les autres domaines de disponibilité de la région.

  • Réseau cloud virtuel (VCN) et sous-réseaux

    Un VCN est un réseau personnalisable défini par logiciel que vous configurez dans une région Oracle Cloud Infrastructure. Comme les réseaux de centre de données traditionnels, les réseaux cloud virtuels vous donnent un contrôle total sur l'environnement réseau. Un réseau cloud virtuel peut comporter plusieurs blocs CIDR qui ne se chevauchent pas et que vous pouvez modifier après l'avoir créé. Vous pouvez segmenter un réseau cloud virtuel en plusieurs sous-réseaux ciblant une région ou un domaine de disponibilité. Chaque sous-réseau est composé d'une plage contiguë d'adresses qui ne chevauchent pas celles des autres sous-réseaux du réseau cloud virtuel. Vous pouvez modifier la taille d'un sous-réseau après sa création. Un sous-réseau peut être public ou privé.

  • Table de routage

    Les tables de routage virtuelles contiennent des règles pour acheminer le trafic des sous-réseaux vers des destinations en dehors d'un VCN, généralement via des passerelles.

  • Liste de sécurité

    Pour chaque sous-réseau, vous pouvez créer des règles de sécurité indiquant la source, la destination et le type de trafic qui doivent être autorisés à entrer et sortir du sous-réseau.

  • FastConnect

    Oracle Cloud Infrastructure FastConnect permet de créer facilement une connexion privée dédiée entre le centre de données et Oracle Cloud Infrastructure. FastConnect offre des options de bande passante plus élevée et une expérience réseau plus fiable par rapport aux connexions Internet.

  • Dynamic routing gateway (DRG)

    Le DRG est un routeur virtuel qui fournit un chemin pour le trafic de réseau privé entre les réseaux cloud virtuels de la même région, entre un VCN et un réseau en dehors de la région, tel qu'un VCN dans une autre région Oracle Cloud Infrastructure, un réseau sur site ou un réseau dans un autre fournisseur cloud.

  • Passerelle de service

    La passerelle de service fournit un accès à partir d'un VCN à d'autres services, tels qu'Oracle Cloud Infrastructure Object Storage. Le trafic du VCN vers le service Oracle transite par la structure réseau Oracle et ne traverse jamais Internet.

  • Service Bastion

    Oracle Cloud Infrastructure Bastion fournit un accès sécurisé limité et limité dans le temps aux ressources qui ne disposent pas d'adresses publiques et qui nécessitent des contrôles d'accès aux ressources stricts, tels que Bare Metal et machines virtuelles, Oracle MySQL Database Service, Autonomous Transaction Processing (ATP), Oracle Container Engine for Kubernetes (OKE) et toute autre ressource qui autorise l'accès SSH (Secure Shell Protocol). Avec le service Oracle Cloud Infrastructure Bastion, vous pouvez activer l'accès aux hôtes privés sans déployer ni gérer d'hôte de saut. En outre, vous bénéficiez d'une meilleure posture de sécurité avec des autorisations basées sur l'identité et une session SSH centralisée, auditée et limitée dans le temps. Le bastion Oracle Cloud Infrastructure élimine le besoin d'une adresse IP publique pour l'accès au bastion, ce qui élimine les tracas et la surface d'attaque potentielle lors de l'accès distant.

  • Compute

    Le service Oracle Cloud Infrastructure Compute vous permet de provisionner et de gérer des hôtes de calcul dans le cloud. Vous pouvez lancer des instances de calcul avec des formes qui répondent à vos besoins en ressources en matière de CPU, de mémoire, de bande passante réseau et de stockage. Après avoir créé une instance de calcul, vous pouvez y accéder en toute sécurité, la redémarrer, attacher et détacher des volumes, et y mettre fin lorsque vous n'en avez plus besoin.

  • Stockage d'objets

    Object Storage fournit un accès rapide à de grandes quantités de données, structurées ou non, de tout type de contenu, y compris des sauvegardes de base de données, des données analytiques et du contenu enrichi tel que des images et des vidéos. Vous pouvez stocker les données, puis les extraire directement à partir d'Internet ou de la plate-forme cloud, et ce, en toute sécurité. Vous pouvez facilement faire évoluer le stockage sans dégradation des performances ni de la fiabilité des services. Utilisez le stockage standard pour le stockage "à chaud" auquel vous devez accéder rapidement, immédiatement et fréquemment. Utilisez le stockage d'archive pour le stockage "à froid" que vous conservez pendant de longues périodes et auquel vous accédez rarement.

  • Identity and Access Management (IAM)

    Oracle Cloud Infrastructure Identity and Access Management (IAM) est le plan de contrôle d'accès pour Oracle Cloud Infrastructure (OCI) et Oracle Cloud Applications. L'API IAM et l'interface utilisateur vous permettent de gérer les domaines d'identité et les ressources au sein du domaine d'identité. Chaque domaine d'identité OCI IAM représente une solution autonome de gestion des identités et des accès ou une population d'utilisateurs différente.

  • Logging
    Logging est un service hautement évolutif et géré qui permet d'accéder aux types de journal suivants à partir des ressources du cloud.
    • Journaux d'audit : journaux liés aux événements émis par le service Audit.
    • Journaux de service : journaux émis par des services individuels tels que API Gateway, Events, Functions, Load Balancing, Object Storage et les journaux de flux VCN.
    • Journaux personnalisés : journaux contenant des informations de diagnostic issues d'applications personnalisées, d'autres fournisseurs de cloud ou d'un environnement sur site.
  • Monitoring

    Le service Oracle Cloud Infrastructure Monitoring surveille de manière active et passive vos ressources cloud à l'aide de mesures pour surveiller les ressources et les alarmes afin de vous avertir lorsque ces mesures répondent aux déclencheurs spécifiés par les alarmes.

  • Cloud Guard

    Vous pouvez utiliser Oracle Cloud Guard pour surveiller et maintenir la sécurité de vos ressources dans Oracle Cloud Infrastructure. Cloud Guard utilise des recettes de détecteur que vous pouvez définir pour examiner vos ressources à la recherche de failles de sécurité et pour surveiller les opérateurs et les utilisateurs à la recherche d'activités à risque. En cas de détection d'une mauvaise configuration ou d'une activité non sécurisée, Cloud Guard recommande des actions correctives et aide à effectuer ces actions, en fonction des recettes de répondeur que vous pouvez définir.

  • Data Integration

    Oracle Cloud Infrastructure GoldenGate est un service entièrement géré qui permet l'assimilation des données à partir de sources résidant sur site ou dans n'importe quel cloud, en exploitant la technologie CDC GoldenGate pour une capture et une livraison non intrusives et efficaces des données vers Oracle Autonomous Data Warehouse en temps réel et à grande échelle afin de rendre les informations pertinentes disponibles aux consommateurs le plus rapidement possible.

  • AWS RDS pour MySQL

    Relational Database Service (RDS) pour MySQL est une offre MySQL entièrement gérée d'Amazon Web Services (AWS).

  • Autonomous Transaction Processing

    Oracle Autonomous Transaction Processing est un service de base de données à pilotage, sécurité et réparation automatiques, optimisé pour les charges de travail de traitement des transactions. Vous n'avez pas besoin de configurer ou de gérer du matériel, ni d'installer un logiciel. Oracle Cloud Infrastructure gère la création, la sauvegarde, la mise à niveau et le réglage de la base de données, ainsi que l'application de patches à la base de données.

Recommandations

Utilisez les recommandations suivantes comme point de départ. Vos exigences peuvent différer de l'architecture décrite ici.

  • Choix de l'emplacement d'interconnexion

    Cette architecture requiert des emplacements géographiques pour ses composants : la région OCI et le noeud en périphérie OCI FastConnect associé, ainsi que la région AWS et le noeud en périphérie AWS Direct Connect associé. Pour obtenir une latence optimale de bout en bout, nous vous recommandons de sélectionner un emplacement proche de chacun de ces éléments architecturaux.

  • Provisionnement

    Pour une instance Oracle Database dans une adresse privée, configurez le VCN pour autoriser le trafic uniquement à partir du VCN spécifié. Cela bloque l'accès à la base de données à partir de toutes les adresses IP publiques ou de tous les réseaux cloud virtuels. Sélectionnez des blocs CIDR qui ne chevauchent aucun autre réseau (dans Oracle Cloud Infrastructure, votre centre de données sur site ou un autre fournisseur cloud) vers lequel vous souhaitez configurer des connexions privées.

  • Conception d'application

    Lors de l'utilisation de la réplication active-active, les fuseaux horaires doivent être identiques sur les deux systèmes de base de données afin que la résolution et la détection des conflits basées sur l'horodatage puissent fonctionner efficacement.

  • Unicité des données

    Lors de l'utilisation de la réplication active-active, définissez une plage unique dans les séquences pour faciliter l'identification afin d'éviter les conflits. Les procédures de résolution des conflits doivent être implémentées sur tous les systèmes d'une configuration active-active. Les conflits doivent être identifiés immédiatement et traités avec autant d'automatisation que possible.

Points à prendre en compte

Lors de l'implémentation d'un déploiement split-stack, envisagez ces options.

  • Réseau

    Avec une solution multicloud, la mise en réseau est un déterminant clé des performances globales du système. Il incombe au client de s'assurer que le réseau cloud-cloud (bande passante et latence) est entièrement testé pour s'assurer que les performances de l'application répondent aux exigences métier définies.

  • Coût

    Le redimensionnement automatique des UC Oracle permet à la base de données d'ajuster automatiquement ses ressources de calcul (UC et mémoire) en fonction des demandes de charge globale. Pendant les pics de charge de travail, Oracle Autonomous Transaction Processing (ATP) peut allouer plus de ressources pour garantir des performances optimales. Pendant les périodes de demande plus faible, il peut évoluer pour réduire les coûts. Cette élasticité est particulièrement utile pour gérer les charges de travail fluctuantes de manière efficace et rentable.

  • Stratégie de résolution des conflits

    Définissez une stratégie claire de résolution des conflits dans votre application. Lorsque des modifications en conflit sont détectées, votre application doit être programmée pour les gérer en fonction de règles prédéfinies. Ces règles peuvent hiérarchiser les modifications d'une source par rapport à une autre ou fusionner les modifications en conflit en fonction de critères spécifiques.

Remerciements

  • Authors: Vivek Verma
  • Contributors: Wei Han, Robert Lies