Créer des pipelines Azure DevOps à l'aide du service Oracle Exadata Database Service dans Oracle Database@Azure

Voyez comment créer des pipelines d'intégration et de développement en continu Microsoft Azure à l'aide du service Oracle Exadata Database Service dans Oracle Database@Azure pour déverrouiller les meilleures performances, haute disponibilité et évolutivité d'Oracle Database, notamment Oracle Real Application Clusters (Oracle RAC) et la sécurité pour les applications Azure. This enables application developers to build and deploy Microsoft Azure Pipelines using Azure DevOps with Oracle Exadata Database Service on Dedicated Infrastructure with the Oracle Exadata Cloud Infrastructure residing in the Azure data centers, running in close proximity to Microsoft Azure DevOps Pipelines to achieve the lowest possible latency.

Étapes préliminaires

Pour tirer parti de cette architecture de référence, les éléments suivants sont requis :
  • Microsoft Azure DevOps
  • Pipelines Microsoft Azure
  • Systèmes de contrôle de version : Azure Repos Git, GitHub et TFVC.
  • Service Microsoft Azure Kubernetes (AKS)
  • Configurez Oracle Database@Azure avec les éléments suivants :
    • Accès à un abonnement et à un répertoire Azure
    • Accès à une location Oracle Cloud Infrastructure (OCI)
    • Lien multinuage Oracle Database@Azure actif entre les nuages Azure et Oracle

Avant de provisionner Oracle Database@Azure, assurez-vous d'avoir des limites adéquates pour le service Oracle Exadata Database Service et les limites de service OCI :

  1. Dans le menu OCI, cliquez sur Gouvernance et administration.
  2. Sous Gestion des locations, cliquez sur Limites, quotas et utilisation.
  3. Dans le menu déroulant Service, sélectionnez Base de données.

Architecture

This architecture shows how you can build and deploy Microsoft Azure Pipelines using Azure DevOps with Oracle Exadata Database Service on Dedicated Infrastructure.

L'application et le code source de la base de données sont hébergés dans un référentiel de code Microsoft Azure DevOps, GitHub ou similaire. Un utilisateur valide les modifications dans le référentiel de code, ce qui déclenche le pipeline d'intégration continue (CI). Cette phase comprend l'exécution de tests unitaires, de tests d'intégration, d'analyse de code statique et de tests de conteneurs dans le cluster Azure Kubernetes Service (AKS) pour vérifier la préparation du déploiement.

Une fois le test terminé, le pipeline de compilation crée des images Docker et les pousse vers le registre de conteneurs Azure. Ces artefacts lancent ensuite le pipeline de livraison continue (CD). Au cours de la phase de développement continu, les artefacts sont déployés dans AKS où des tests de bout en bout et de système sont exécutés pour garantir le bon fonctionnement des microservices dans l'environnement Kubernetes et Oracle Database. Les environnements de préparation et de production, à l'aide de stratégies telles que les déploiements bleu/vert ou canari, sont alors lancés pour un déploiement sans temps d'arrêt des nouvelles modifications.

Une grappe Kubernetes peut contenir plusieurs pods, chacun se connectant à sa propre base de données enfichable (PDB) respective. The PDBs in the primary database are deployed on Oracle Database@Azure that runs on Oracle Exadata Database Service on Dedicated Infrastructure in an Azure Availability Zone. Les images de conteneur sont stockées dans le registre de conteneurs Azure. Les utilisateurs accèdent à l'application en externe au moyen d'un équilibreur de charge public.

Cloud automation simplifies most lifecycle and management tasks for Oracle Exadata Cloud Infrastructure and Oracle multitenant databases (CDBs, PDBs). Par exemple, l'ajout de serveurs et l'ajustement des OCPU, la création de bases de données et de répertoires de base de base de données, la programmation de la maintenance de l'infrastructure, la mise à jour et la mise à niveau du système d'exploitation de machine virtuelle, d'Oracle Grid Infrastructure et des bases de données, l'exécution d'opérations de sauvegarde et de récupération, et même l'activation des protections de récupération après sinistre au moyen d'Oracle Data Guard.

Les mesures, les journaux et la traçabilité de l'ensemble du processus d'intégration et de développement en continu sont observés en continu à l'aide d'outils tels que Azure Monitor, Oracle Cloud Infrastructure (OCI) et le cadre Unified Observability OpenTelemetry d'Oracle Database, qui fournit des traces depuis le point d'entrée de l'application résidant sur Azure, dans tous les sous-systèmes et dans Oracle Database afin de garantir la performance et la fiabilité des microservices et de la base de données. Cette approche assure une solution robuste, efficace et évolutive pour le déploiement et la gestion des applications modernes dans un environnement en nuage natif.

Le diagramme suivant illustre cette architecture de référence.

Description d'exadata-database-service.png :
Description de l'illustration exadata-database-service.png

exadata-database-service-oracle.zip

L'architecture comporte les composants suivants :

  • Région

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

    Une région Azure est une zone géographique dans laquelle résident un ou plusieurs centres de données Azure physiques, appelés zones de disponibilité. Les régions sont indépendantes les unes des autres, et de grandes distances peuvent les séparer (à travers les pays ou même les continents).

    Les régions Azure et OCI sont des zones géographiques localisées. Pour Oracle Database@Azure, une région Azure est connectée à une région OCI, avec des zones de disponibilité dans Azure connectées à des domaines de disponibilité (AD) dans OCI. Des paires de régions Azure et OCI sont sélectionnées pour réduire la distance et la latence.

  • Zone de disponibilité Azure

    Une zone de disponibilité est un centre de données physiquement distinct au sein d'une région conçue pour être disponible et tolérante aux pannes. Les zones de disponibilité sont suffisamment proches pour avoir des connexions à faible latence aux autres zones de disponibilité.

    La délégation de sous-réseau est la capacité de Microsoft à injecter un service géré, en particulier une plate-forme-service, directement dans votre réseau virtuel.

  • Réseau virtuel Microsoft Azure

    Microsoft Azure Virtual Network (VNet) est le bloc de construction fondamental de votre réseau privé dans Azure. VNet permet à de nombreux types de ressources Azure, telles que les machines virtuelles Azure, de communiquer en toute sécurité entre elles, sur Internet et sur les réseaux sur place.

    La délégation de sous-réseau est la capacité de Microsoft à injecter un service géré, en particulier une plate-forme-service, directement dans votre réseau virtuel.

  • Pipelines Azure

    Azure Pipelines fait partie du service Azure DevOps proposé par Microsoft Azure pour créer, tester et déployer automatiquement des projets de code pour une intégration continue, des tests continus et une livraison continue. (CI-CD)

  • Service Azure Kubernetes

    Azure Kubernetes Service (AKS) est un service Kubernetes géré proposé par Microsoft Azure pour déployer et gérer des applications conteneurisées. Une grappe Kubernetes peut contenir plusieurs pods.

  • Plan de contrôle Kubernetes

    Un plan de contrôle Kubernetes gère les ressources pour les noeuds de travail et les pods au sein d'une grappe Kubernetes. Les composants du plan de contrôle détectent les événements et y répondent, planifient et déplacent les ressources du cluster.

  • Service Oracle Exadata Database sur une infrastructure dédiée

    Oracle Exadata Database Service offre des fonctionnalités Oracle Database éprouvées sur Oracle Exadata Cloud Infrastructure spécialement conçues et optimisées dans le nuage public. L'automatisation intégrée du nuage, l'évolutivité élastique des ressources, la sécurité et la performance rapide pour OLTP, l'analyse en mémoire et les charges de travail convergées d'Oracle Database aident à simplifier la gestion et à réduire les coûts.

    Oracle Exadata Cloud Infrastructure offre plus de coeurs d'UC, un stockage accru et une matrice réseau plus rapide au nuage public. Les serveurs de stockage Oracle Exadata incluent Exadata RDMA Memory (XRMEM), ce qui crée un niveau de stockage supplémentaire, améliorant ainsi la performance globale du système. Exadata combine XRMEM avec des algorithmes RDMA innovants qui contournent le réseau et la pile d'E/S, éliminant ainsi les interruptions coûteuses d'UC et les commutateurs de contexte.

    Oracle Exadata Cloud Infrastructure augmente le débit de sa structure de réseau interne de 100 Gbit/s avec accès à la mémoire directe à distance actif sur Ethernet convergé (RoCE), ce qui offre une interconnexion plus rapide que les générations précédentes avec une latence extrêmement faible entre tous les serveurs de calcul et de stockage.

  • Service de récupération autonome d'Oracle Database

    Oracle Database Autonomous Recovery Service est un service entièrement géré conçu pour protéger les bases de données Oracle contre la perte de données et les cybermenaces. Il offre des sauvegardes plus rapides avec une surcharge de base de données réduite, une récupération fiable avec des sauvegardes validées et une protection en temps réel permettant une récupération en moins d'une seconde d'une panne ou d'une attaque par rançongiciel. Oracle Database Zero Data Loss Autonomous Recovery Service est une option sans perte de données pour le service de récupération autonome. Ce service fournit un tableau de bord centralisé sur la protection des données et est recommandé pour la sauvegarde des bases de données Oracle.

  • Oracle Database@Azure

    Oracle Database@Azure is the Oracle Database service (Oracle Exadata Database Service on Dedicated Infrastructure and Oracle Autonomous Database Serverless) running on Oracle Cloud Infrastructure (OCI), deployed in Microsoft Azure data centers. Le service offre des fonctions et une parité de prix avec OCI. Achetez le service sur Azure Marketplace.

    Oracle Database@Azure intègre Oracle Exadata Database Service, Oracle Real Application Clusters (Oracle RAC) et les technologies Oracle Data Guard dans la plate-forme Azure. Les utilisateurs gèrent le service sur la console Azure et avec les outils d'automatisation Azure. Le service est déployé dans le réseau virtuel Azure (VNet) et intégré au système de gestion des identités et des accès Azure. Les mesures génériques et les journaux de vérification d'OCI et d'Oracle Database sont disponibles de manière native dans Azure. Le service exige que les utilisateurs disposent d'un abonnement Azure et d'une location OCI.

  • Stockage d'objets

    Le service de stockage d'objets pour OCI donne accès à de grandes quantités de données structurées et non structurées de tous types, notamment des sauvegardes de base de données, des données analytiques et du contenu enrichi, comme des images et des vidéos. Vous pouvez stocker des données en toute sécurité directement à partir d'Internet ou de la plate-forme en nuage. Vous pouvez adapter le stockage sans que la performance ou la fiabilité des services soit affectée.

    Utilisez le stockage standard pour le stockage "à chaud" auquel vous devez accéder rapidement, immédiatement et fréquemment. Utilisez le stockage d'archives pour le stockage "à froid" que vous conservez pendant de longues périodes et auquel vous accédez rarement.

  • Passerelle de service

    Une passerelle de service fournit un accès à partir d'un VCN à d'autres services, tels que Oracle Cloud Infrastructure Object Storage. Le trafic entre le réseau VCN et le service Oracle circule sur la structure réseau Oracle et ne passe pas par Internet.

Points à considérer

Tenez compte des points suivants lors de la planification du déploiement de cette architecture de référence :

  • Mettre à jour le fichier YAML

    Utilisez des chaînes de connexion pour mettre à jour le fichier YAML du déploiement du service Azure Kubernetes. Vous pouvez trouver les chaînes de connexion à vos bases de données dans la console OCI.

  • Performance
    • Une architecture multilocataire Oracle est recommandée pour la couche de persistance pour l'architecture de microservices, pour l'isolation contextuelle limitée des données, la sécurité et pour la haute disponibilité.

      Avec l'architecture multilocataire Oracle, une base de données Oracle Database peut fonctionner comme une base de données conteneur contenant plusieurs bases de données enfichables. Cela permet aux microservices qui ont une variété de types de données et de charges de travail d'utiliser une seule base de données conteneur convergée. En tirant parti des PDB, Oracle peut fournir les bases de données isolées par microservices au sein de la CDB et permettre le déplacement des PDB entre des conteneurs physiques. Microservices can connect to an Oracle Database instance that is running on Oracle Exadata Database Service on Dedicated Infrastructure.

  • Sécurité
    • Envisagez d'utiliser une chambre forte, au lieu de stocker les informations de connexion à la base de données, le mot de passe et le portefeuille des applications (le cas échéant) dans les clés secrètes Kubernetes pour le service Azure Kubernetes.
  • Réseau
    • Nécessite au moins un réseau virtuel Azure (VNet) avec un sous-réseau délégué à un attachement de réseau Oracle Database.

    • Envisagez de déployer le sous-réseau du service Microsoft Azure Kubernetes et le sous-réseau client de grappe de machines virtuelles Oracle Exadata Database Service dans le même VNet.

  • Disponibilité
    • Envisagez d'utiliser et de configurer la réserve de connexions universelle, le pilote JDBC Oracle et Oracle RAC afin de tirer parti des capacités de haute disponibilité d'Oracle Database pour un service continu pendant les temps d'arrêt planifiés et non planifiés afin de maintenir la disponibilité continue de vos applications.

      UCP prend en charge toutes les configurations Oracle Database et toutes les capacités essentielles (disponibilité, extensibilité et équilibrage de charge) prêtes à l'emploi, notamment Oracle RAC, Oracle Data Guard, Oracle Sharding, API asynchrone, équilibreur de charge d'exécution, XA, continuité des applications, Transaction Guard, basculement transparent des applications, SCAN (Single Client Access Name) et DRCP (Database Resident Connection Pool). Avec le système Oracle RAC, tout service de base de données Oracle est également accessible à partir de plusieurs noeuds de serveur. Si un noeud ou un sous-ensemble de la grappe Oracle RAC échoue ou est mis hors ligne pour maintenance, la base de données est toujours accessible au moyen des noeuds actifs restants.

    • Voici les éléments constitutifs de la mise en oeuvre de la haute disponibilité de l'application avec Oracle Database :

      1. Utiliser un service de base de données
      2. Configurer une URL ou une chaîne de connexion pour la haute disponibilité
      3. Activer l'avis rapide des applications
      4. Mettre en oeuvre le drainage et permettre une disponibilité continue des bases de données pour les applications Java
    • Envisagez d'utiliser Oracle Database Autonomous Recovery Service comme destination de sauvegarde pour Oracle Database.

      Les deux options disponibles pour stocker les sauvegardes sont les suivantes : dans la même région Azure, réside le service Oracle Exadata Database Service ou une région OCI par défaut associée à la région Azure

Informations complémentaires

En savoir plus sur Oracle Cloud Infrastructure (OCI) et Microsoft Azure :

Vérifiez ces ressources supplémentaires :

Si vous n'avez pas de compte Oracle Cloud ou Microsoft Azure, consultez les sections suivantes pour vous inscrire à un compte gratuit :

Remerciements

  • Auteurs : Leo Alvarado, Paul Parkinson, Julien Silverston, Thomas Van Buggenhout, Tammy Bednar