Création de pipelines d'intégration continue et de déploiement continu DevOps Azure avec Oracle Base Database Service

Une pile fractionnée se produit lorsqu'une charge globale est déployée sur les deux clouds, l'application dans ce cas sur Microsoft Azure, avec le service Oracle Database déployé sur Oracle Cloud Infrastructure (OCI).

Une pile d'applications à pile se produit lorsqu'une pile complète comprenant l'application et la base de données dans Azure interagit et partage des données avec une autre pile complète (application et Oracle Database) résidant dans OCI.

Pour diverses considérations commerciales et techniques, vous pouvez choisir d'allouer vos charges globales cloud à Oracle Cloud et Microsoft Azure. Pour garantir la sécurité et minimiser la latence, il est nécessaire d'établir une interconnexion sécurisée entre les environnements Oracle Cloud et Azure Cloud.

Oracle et Microsoft ont créé une connexion intercloud privée (Oracle Interconnect for Microsoft Azure) entre Oracle Cloud Infrastructure et Microsoft Azure dans des régions spécifiques. L'interconnexion Oracle pour Microsoft Azure vous permet de configurer des charges globales inter-cloud sans que le trafic entre les clouds passe par Internet.

Par conséquent, les utilisateurs peuvent créer et déployer des pipelines d'intégration continue et de déploiement continu DevOps Azure avec Oracle Base Database Service sur Oracle Cloud Infrastructure, et configurer les ressources d'infrastructure de réseau virtuel prises en charge afin d'activer ce déploiement split-stack pour une solution hautes performances et haute disponibilité.

Remarques :

Oracle Database 23c est désormais disponible sur Oracle Base Database Service. Oracle Database 23c accélère la mission d'Oracle de simplifier le développement et l'exécution de toutes les applications basées sur les données. Les principaux domaines d'intervention sont le JSON, les graphiques, les microservices et la productivité des développeurs.

Oracle Database 23c vise à responsabiliser les développeurs et à simplifier l'utilisation de l'intelligence artificielle (IA) dans la base de données pour la productivité des développeurs, ainsi qu'une gamme d'améliorations dans une base de données connue pour sa haute disponibilité exceptionnelle, ses performances exceptionnelles et ses fonctionnalités de sécurité robustes.

Architecture

Dans cette architecture de référence, vous allez créer et déployer des pipelines d'intégration continue et de déploiement continu à l'aide d'Azure DevOps avec Oracle Base Database Service.

Le code source de l'application et de la base de données est hébergé sur le référentiel de code Azure DevOps ou 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. Cette phase comprend l'exécution de tests unitaires, de tests d'intégration, d'analyse de code statique et de tests de conteneurs au sein du cluster Azure Kubernetes Service (AKS) pour vérifier la préparation au déploiement.

Une fois le test terminé, le pipeline de build crée des images Docker et les transmet au registre de conteneurs Azure. Ces artefacts de build lancent ensuite le pipeline CD. Au cours de la phase CD, les artefacts sont déployés vers AKS où des tests système et de bout en bout sont exécutés pour s'assurer que les microservices fonctionnent correctement 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 ensuite lancés pour un déploiement sans temps d'arrêt des nouvelles modifications.

Un composant clé de cette architecture est l'opérateur Oracle Database, qui gère le cycle de vie d'Oracle Database, en automatisant des tâches telles que le provisionnement, le redimensionnement, les sauvegardes, les mises à jour et la maintenance. Cette intégration garantit une gestion efficace de la base de données et une interaction transparente entre les microservices dans AKS et Oracle Database. Les microservices se connectent en toute sécurité à Oracle Database via une interconnexion à l'aide d'Azure ExpressRoute et d'Oracle FastConnect, en maintenant une connexion de base de données sécurisée et fiable, avec des informations d'identification gérées via Azure Key Vault.

Les mesures, les journaux et le suivi de l'ensemble du processus d'intégration continue et de déploiement continu sont observés en continu à l'aide d'outils tels qu'Azure Monitor, OCI et la structure OpenTelemetry Unified Observability d'Oracle Database, qui fournit des traces à partir du point d'entrée de l'application résidant sur Azure, sur tous les sous-systèmes, et dans Oracle Database, garantissant les performances et la fiabilité des microservices et de la base de données. Cette approche garantit une solution robuste, efficace et évolutive pour le déploiement et la gestion d'applications innovantes dans un environnement cloud natif.

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



oracle-base-database-azure-arch-oracle.zip

L'architecture comporte les composants suivants :

  • Location

    Une location est une partition sécurisée et isolée configurée par Oracle dans Oracle Cloud lors de l'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 (à travers les pays ou même les continents).

  • Compartiment

    Les compartiments sont des partitions logiques inter-région au sein d'une location Oracle Cloud Infrastructure. Utilisez des compartiments pour organiser les ressources dans Oracle Cloud, en contrôler l'accès et définir des quotas d'utilisation. Pour contrôler l'accès aux ressources d'un compartiment donné, vous définissez des stratégies qui indiquent qui peut accéder aux ressources et les actions réalisables.

  • Domaines 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 improbable qu'une panne survenant sur un domaine de disponibilité affecte les autres.

  • Domaines de pannes

    Un domaine de pannes est un regroupement de matériel et d'infrastructures au sein d'un domaine de disponibilité. Chaque domaine de disponibilité comporte trois domaines de pannes avec alimentation et matériel indépendants. Lorsque vous répartissez des ressources entre plusieurs domaines de pannes, vos applications peuvent tolérer les pannes de serveur physiques, de maintenance du système et d'alimentation au sein d'un domaine de pannes.

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

  • équilibreur de charge

    Le service Oracle Cloud Infrastructure Load Balancing fournit une répartition de trafic automatisée à partir d'un point d'entrée unique vers plusieurs serveurs dans le back-end.

  • Liste de sécurité

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

  • passerelle de service

    La passerelle de service permet d'accéder à d'autres services à partir d'un VCN, 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.

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

  • Oracle Base Database Service

    Oracle Base Database Service est un service de base de données Oracle Cloud Infrastructure (OCI) qui vous permet de créer, de mettre à l'échelle et de gérer des bases de données Oracle complètes sur des machines virtuelles. Oracle Base Database Service utilise le stockage OCI Block Volumes au lieu du stockage local et peut exécuter Oracle Real Application Clusters (Oracle RAC) pour améliorer la disponibilité.

  • Stockage d'objet

    Le stockage d'objets 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 redimensionner le stockage de manière transparente 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.

  • Audit

    Le service Oracle Cloud Infrastructure Audit enregistre automatiquement les appels vers toutes les adresses d'API publique Oracle Cloud Infrastructure prises en charge en tant qu'événements de journal. Actuellement, tous les services prennent en charge la journalisation par Oracle Cloud Infrastructure Audit.

Cette architecture prend en charge les composants Microsoft Azure suivants.

  • Microsoft Azure VNet et sous-réseau

    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, tels que les machines virtuelles Azure, de communiquer en toute sécurité entre eux, avec Internet et avec les réseaux sur site.

    Vous définissez VNet dans Azure. Il peut comporter plusieurs sous-réseaux de blocs CIDR qui ne se chevauchent pas et que vous pouvez ajouter après avoir créé le fichier VNet. Vous pouvez segmenter un élément VNet en sous-réseaux, que vous pouvez définir sur une région ou des zones de disponibilité. Chaque sous-réseau est constitué d'une plage contiguë d'adresses qui ne chevauchent pas les autres sous-réseaux dans VNet. Utilisez VNet pour isoler logiquement vos ressources Azure au niveau du réseau.

  • Passerelle de réseau virtuel

    Une passerelle de réseau virtuel autorise le trafic entre un VNet Azure et un réseau en dehors d'Azure, soit via le réseau Internet public, soit à l'aide de ExpressRoute, en fonction du type de passerelle indiqué. Cette passerelle réseau n'est pas utilisée pour le lien réseau Oracle Database Service for Microsoft Azure. Vous pouvez plutôt l'utiliser pour gérer des réseaux vers un environnement sur site dans VNet, où vous avez appairé OracleDB pour Azure.

  • Table de routage Microsoft Azure (route définie par l'utilisateur - UDR)

    Les tables de routage dirigent le trafic entre les sous-réseaux Azure, VNets et les réseaux en dehors d'Azure.

    Les tables de routage virtuelles contiennent des règles permettant d'acheminer le trafic des sous-réseaux vers des destinations en dehors d'une instance VNet, généralement via des passerelles. Les tables de routage sont associées à des sous-réseaux dans un VNet.

  • Domaine de disponibilité Microsoft Azure

    Le domaine de disponibilité Azure, ou ensemble de disponibilité, est un regroupement logique de machines virtuelles.

Recommandations

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

    Lorsque vous créez un VCN, déterminez le nombre de blocs CIDR requis et la taille de chaque bloc en fonction du nombre de ressources que vous prévoyez d'attacher aux sous-réseaux du VCN. Utilisez des blocs CIDR qui se trouvent dans l'espace d'adressage IP privé standard.

    Sélectionnez les 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 prévoyez de configurer des connexions privées.

    Après avoir créé un VCN, vous pouvez modifier, ajouter et supprimer ses blocs CIDR.

    Lorsque vous concevez les sous-réseaux, tenez compte de vos exigences en matière de flux de trafic et de sécurité. Attachez toutes les ressources d'un niveau ou d'un rôle spécifique au même sous-réseau, qui peut servir de limite de sécurité.

  • Sécurité

    Utilisez Oracle Cloud Guard pour surveiller et maintenir la sécurité de vos ressources dans Oracle Cloud Infrastructure de manière proactive. 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.

    Pour les ressources nécessitant une sécurité maximale, Oracle recommande d'utiliser des zones de sécurité. Une zone de sécurité est un compartiment associé à une recette de stratégies de sécurité définie par Oracle basée sur les meilleures pratiques. Par exemple, les ressources d'une zone de sécurité ne doivent pas être accessibles à partir du réseau Internet public et elles doivent être cryptées à l'aide de clés gérées par le client. Lorsque vous créez et mettez à jour des ressources dans une zone de sécurité, Oracle Cloud Infrastructure valide les opérations par rapport aux stratégies de la recette de zone de sécurité et refuse les opérations qui enfreignent l'une des stratégies.

  • Cloud Guard

    Clonez et personnalisez les recettes par défaut fournies par Oracle pour créer des recettes de détecteur et de répondeur personnalisées. Ces recettes vous permettent de spécifier le type de violation de sécurité qui génère un avertissement et les actions autorisées à les exécuter. Par exemple, vous pouvez détecter les buckets Object Storage dont la visibilité est définie sur Public.

    Appliquez Cloud Guard au niveau de la location pour couvrir la portée la plus large et réduire la charge administrative liée à la maintenance de plusieurs configurations.

    Vous pouvez également utiliser la fonctionnalité de liste gérée pour appliquer certaines configurations aux détecteurs.

  • Security Zones

    Pour les ressources nécessitant une sécurité maximale, Oracle recommande d'utiliser des zones de sécurité. Une zone de sécurité est un compartiment associé à une recette de stratégies de sécurité définie par Oracle basée sur les meilleures pratiques. Par exemple, les ressources d'une zone de sécurité ne doivent pas être accessibles à partir du réseau Internet public et elles doivent être cryptées à l'aide de clés gérées par le client. Lorsque vous créez et mettez à jour des ressources dans une zone de sécurité, Oracle Cloud Infrastructure valide les opérations par rapport aux stratégies de la recette de zone de sécurité et refuse les opérations qui enfreignent l'une des stratégies.

  • Groupes de sécurité réseau

    Vous pouvez utiliser des groupes de sécurité réseau pour définir un ensemble de règles entrantes et sortantes qui s'appliquent à des cartes d'interface réseau virtuelles spécifiques. Nous vous recommandons d'utiliser des groupes de sécurité réseau plutôt que des listes de sécurité, car les groupes de sécurité réseau vous permettent de séparer l'architecture de sous-réseau du VCN des exigences de sécurité de votre application.

  • Infrastructure-as-Code (IaC)

    Vous pouvez envisager d'utiliser Terraform pour implémenter Infrastructure as Code afin de déployer vos ressources Azure et Oracle Base Database Service.

Points à prendre en compte

Tenez compte des points suivants lorsque vous prévoyez de déployer cette architecture de référence.

  • Assurez-vous que vous disposez des limites Oracle Base Database Service et des limites du service OCI appropriées avant le provisionnement. Pour plus d'informations, reportez-vous à Limites de service OCI et à Demande d'augmentation de limite de service.
  • Planification de la topologie réseau :
    • Vous avez besoin d'au moins un réseau virtuel Azure (VNet) que vous pouvez associer à un réseau cloud virtuel OCI (VCN) correspondant.
    • Les blocs CIDR des réseaux cloud virtuels Azure VNets et OCI ne doivent pas se chevaucher.
  • Prérequis pour Oracle Interconnect for Microsoft Azure :
    • Un compte Oracle Cloud. Si vous n'avez pas de compte, vous pouvez vous inscrire à un compte Oracle Cloud Free Tier.
    • Un compte Azure. Si vous n'avez pas de compte, vous pouvez vous inscrire à un compte gratuit Azure.
    • Droits d'accès et quota de ressources requis pour déployer des ressources conformément à la topologie décrite dans cette architecture de référence.
    • Collectez la région OCI, la région Azure, les régions d'interconnexion et les exigences de débit.
  • Fonctions de réseau

    L'application dans Azure et Oracle Database dans OCI doivent résider dans la même région géographique. Par exemple, l'application dans Azure West European (située à Amsterdam, Pays-Bas) et Oracle Database dans OCI dans le Nord-Ouest des Pays-Bas (Amsterdam). Une région est une zone géographique localisée composée de 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 les continents).

  • Disponibilité

    Oracle Base Database Service fournit des fonctionnalités intégrées de meilleures pratiques Oracle. Déployez votre base de données pour des performances, une disponibilité et une sécurité optimales à l'aide de l'automatisation du cloud. Votre système sera configuré de manière optimale pour fournir les niveaux de service les plus élevés. Il déploie automatiquement Oracle RAC pour fournir une base de données évolutive et hautement disponible, optimisée pour être exécutée sur la plate-forme cloud Oracle Base Database Service. Oracle RAC protège contre les pannes non planifiées en répartissant le travail sur plusieurs instances de base de données. En outre, il élimine les temps d'arrêt pour les activités de maintenance en migrant automatiquement le travail sur les serveurs sur le point de subir une maintenance vers d'autres personnes qui restent en ligne.

    Oracle Data Guard fournit une protection en temps réel contre les sinistres. Si vous perdez la base de données principale ou le centre de données, vous pouvez basculer votre charge globale vers un site de secours géré automatiquement par Oracle Data Guard. Oracle Base Database Service facilite l'activation d'Oracle Data Guard en un seul appel d'API ou en quelques clics de souris dans l'interface utilisateur à l'aide de l'automatisation du cloud. De même, l'automatisation prend en charge des cas d'utilisation critiques tels que le basculement de votre base de données principale vers votre site de récupération après sinistre, le basculement en arrière et le rétablissement de votre base de données principale après un basculement.

    Oracle Base Database Service prend en charge toutes les technologies Oracle Maximum Availability (MAA), qui constituent le modèle de base de haute disponibilité pour les bases de données Oracle dans le cloud.

Remerciements

Authors: Leo Alvarado, Suzanne Holliday, Paul Parkinson