Crea pipeline di Azure DevOps utilizzando Oracle Exadata Database Service in Oracle Database@Azure

Scopri come creare pipeline CI/CD Microsoft Azure utilizzando Oracle Exadata Database Service in Oracle Database@Azure per sbloccare le migliori prestazioni, l'alta disponibilità e la scalabilità di Oracle Database, tra cui Oracle Real Application Clusters (Oracle RAC) e la sicurezza per le applicazioni Azure. Ciò consente agli sviluppatori di applicazioni di creare e distribuire pipeline Microsoft Azure utilizzando Azure DevOps con Oracle Exadata Database Service on Dedicated Infrastructure con Oracle Exadata Cloud Infrastructure che risiede nei data center di Azure, in esecuzione nelle immediate vicinanze delle pipeline Microsoft Azure DevOps per ottenere la latenza più bassa possibile.

Operazioni preliminari

Per usufruire di questa architettura di riferimento, sono necessari i seguenti elementi:
  • Microsoft Azure DevOps
  • Pipeline Microsoft Azure
  • Sistemi di controllo delle versioni: Azure Repos Git, GitHub e TFVC.
  • Servizio Microsoft Azure Kubernetes (AKS)
  • Configurare Oracle Database@Azure con gli elementi riportati di seguito.
    • Accesso a una sottoscrizione e a una directory di Azure
    • Accesso a una tenancy Oracle Cloud Infrastructure (OCI)
    • Collegamento multicloud attivo di Oracle Database@Azure tra i cloud di Azure e Oracle

Prima di eseguire il provisioning di Oracle Database@Azure, assicurati di disporre di limiti adeguati per Oracle Exadata Database Service e dei limiti del servizio OCI:

  1. Nel menu OCI, fare clic su Governance e amministrazione.
  2. In Gestione tenancy, fare clic su Limiti, quote e uso.
  3. Nel menu a discesa Servizio, selezionare Database.

Architettura

Questa architettura mostra come creare e distribuire le pipeline di Microsoft Azure utilizzando Azure DevOps con Oracle Exadata Database Service on Dedicated Infrastructure.

Il codice sorgente dell'applicazione e del database è ospitato in un repository di codici DevOps di Microsoft Azure, GitHub o simile. Un utente esegue il commit delle modifiche nel repository di codici che attiva la pipeline di integrazione continua (CI). Questa fase include l'esecuzione di test di unità, test di integrazione, analisi del codice statico e anche test dei container all'interno del cluster AKS (Azure Kubernetes Service) per verificare la disponibilità della distribuzione.

Una volta completato il test, la pipeline di build crea immagini Docker e le spinge nel registro dei container di Azure. Questi artifact avviano quindi la pipeline di distribuzione continua (CD). Nella fase CD, gli artifact vengono distribuiti in AKS in cui vengono eseguiti test end-to-end e di sistema per garantire il corretto funzionamento dei microservizi nell'ambiente Kubernetes e in Oracle Database. Gli ambienti di staging e produzione, utilizzando strategie come le distribuzioni blu/verde o canary, vengono quindi avviati per la distribuzione senza tempi di inattività delle nuove modifiche.

Un cluster Kubernetes può contenere più pod, ciascuno dei quali si connette al proprio database collegabile (PDB). I PDB nel database primario vengono distribuiti in Oracle Database@Azure che viene eseguito su Oracle Exadata Database Service on Dedicated Infrastructure in un'area di disponibilità di Azure. Le immagini dei container vengono memorizzate nel registro dei container di Azure. Gli utenti accedono all'applicazione esternamente tramite un load balancer pubblico.

L'automazione cloud semplifica la maggior parte delle attività di gestione e del ciclo di vita per i database Oracle Exadata Cloud Infrastructure e Oracle multitenant (CDB, PDB). Ad esempio, aggiungendo server e ridimensionando le OCPU, creando database e home di database, pianificando la manutenzione dell'infrastruttura, aggiornando e aggiornando il sistema operativo VM, Oracle Grid Infrastructure e i database, eseguendo operazioni di backup e ripristino e persino abilitando le protezioni per il recupero da errori irreversibili tramite Oracle Data Guard.

Metriche, log e trace dell'intero processo CI/CD vengono osservati continuamente utilizzando strumenti come Azure Monitor, Oracle Cloud Infrastructure (OCI) e il framework OpenTelemetry di Unified Observability di Oracle Database che fornisce tracce dal punto di ingresso dell'applicazione residente su Azure, in tutti i sottosistemi e in Oracle Database garantendo le prestazioni e l'affidabilità sia dei microservizi che del database. Questo approccio garantisce una soluzione solida, efficiente e scalabile per la distribuzione e la gestione di applicazioni moderne in un ambiente cloud nativo.

Il seguente diagramma illustra questa architettura di riferimento.

Descrizione di exadata-database-service.png
Descrizione dell'immagine exadata-database-service.png

exadata-database-service-oracle.zip

L'architettura presenta i seguenti componenti:

  • Area

    Un'area geografica Oracle Cloud Infrastructure è un'area geografica localizzata che contiene uno o più data center, che ospitano domini di disponibilità. Le regioni sono indipendenti da altre regioni e grandi distanze possono separarle (tra paesi o addirittura continenti).

    Un'area geografica di Azure è un'area geografica in cui risiedono uno o più data center fisici di Azure, denominati zone di disponibilità. Le regioni sono indipendenti da altre regioni e grandi distanze possono separarle (tra paesi o addirittura continenti).

    Le region di Azure e OCI sono aree geografiche localizzate. Per Oracle Database@Azure, un'area Azure è connessa a un'area OCI, con le zone di disponibilità (AZ) in Azure connesse ai domini di disponibilità (AD) in OCI. Le coppie di aree Azure e OCI vengono selezionate per ridurre al minimo distanza e latenza.

  • Area di disponibilità di Azure

    Una zona di disponibilità è un centro dati fisicamente separato all'interno di un'area progettata per essere disponibile e con tolleranza degli errori. Le zone di disponibilità sono abbastanza vicine da avere connessioni a bassa latenza con altre zone di disponibilità.

    La delega della subnet è la capacità di Microsoft di inserire un servizio gestito, in particolare un servizio platform-as-a-service, direttamente nella rete virtuale.

  • Rete virtuale Microsoft Azure

    Microsoft Azure Virtual Network (VNet) è la base fondamentale per la tua rete privata in Azure. VNet consente a molti tipi di risorse di Azure, come le macchine virtuali (VM) di Azure, di comunicare in modo sicuro tra loro, Internet e reti on-premise.

    La delega della subnet è la capacità di Microsoft di inserire un servizio gestito, in particolare un servizio platform-as-a-service, direttamente nella rete virtuale.

  • Pipeline di Azure

    Le pipeline di Azure fanno parte del servizio DevOps di Azure offerto da Microsoft Azure per creare, testare e distribuire automaticamente progetti di codice per l'integrazione continua, i test continui e la distribuzione continua. (CDCI)

  • Servizio Azure Kubernetes

    Il servizio AKS (Azure Kubernetes Service) è un servizio Kubernetes gestito offerto da Microsoft Azure per distribuire e gestire applicazioni in container. Un cluster Kubernetes può contenere più pod.

  • Piano di controllo Kubernetes

    Un piano di controllo Kubernetes gestisce le risorse per i nodi di lavoro e i pod all'interno di un cluster Kubernetes. I componenti del piano di controllo rilevano e rispondono agli eventi, eseguono la pianificazione e spostano le risorse del cluster.

  • Oracle Exadata Database Service on Dedicated Infrastructure

    Oracle Exadata Database Service offre funzionalità Oracle Database comprovate su Oracle Exadata Cloud Infrastructure nel cloud pubblico, appositamente e ottimizzato. L'automazione cloud integrata, la scalabilità elastica delle risorse, la sicurezza e le prestazioni rapide per OLTP, gli analytics in-memory e i carichi di lavoro convergenti di Oracle Database semplificano la gestione e riducono i costi.

    Oracle Exadata Cloud Infrastructure porta più core CPU, maggiore storage e un fabric di rete più veloce nel cloud pubblico. I server di storage Oracle Exadata includono la memoria Exadata RDMA (XRMEM), che crea un livello aggiuntivo di storage e migliora le prestazioni complessive del sistema. Exadata combina XRMEM con innovativi algoritmi RDMA che ignorano la rete e lo stack I/O, eliminando costosi interrupt CPU e switch di contesto.

    Oracle Exadata Cloud Infrastructure aumenta il throughput del suo accesso alla memoria diretta remota attivo-attivo da 100 Gbps su fabric di rete interno RoCE (Converged Ethernet), fornendo un'interconnessione più veloce rispetto alle generazioni precedenti con una latenza estremamente bassa tra tutti i server di calcolo e storage.

  • Oracle Database Autonomous Recovery Service

    Oracle Database Autonomous Recovery Service è un servizio completamente gestito progettato per proteggere i database Oracle dalla perdita di dati e dalle minacce informatiche. Offre backup più rapidi con sovraccarico ridotto del database, ripristino affidabile con backup convalidati e protezione in tempo reale che consente il ripristino entro meno di un secondo da un'interruzione o un attacco ransomware. Oracle Database Zero Data Loss Autonomous Recovery Service è un'opzione di perdita di dati pari a zero per Autonomous Recovery Service. Questo servizio fornisce un dashboard centralizzato per la protezione dei dati ed è consigliato per eseguire il backup dei database Oracle.

  • Oracle Database@Azure

    Oracle Database@Azure è il servizio Oracle Database (Oracle Exadata Database Service on Dedicated Infrastructure e Oracle Autonomous Database Serverless) in esecuzione su Oracle Cloud Infrastructure (OCI), distribuito nei data center Microsoft Azure. Il servizio offre funzioni e parità di prezzo con OCI. Acquistare il servizio su Azure Marketplace.

    Oracle Database@Azure integra le tecnologie Oracle Exadata Database Service, Oracle Real Application Clusters (Oracle RAC) e Oracle Data Guard nella piattaforma Azure. Gli utenti gestiscono il servizio sulla console di Azure e con gli strumenti di automazione di Azure. Il servizio viene distribuito in Azure Virtual Network (VNet) e integrato con il sistema di gestione delle identità e degli accessi di Azure. Le metriche generiche e i log di audit di OCI e Oracle Database sono disponibili in modo nativo in Azure. Il servizio richiede agli utenti di disporre di una sottoscrizione Azure e di una tenancy OCI.

  • Storage degli oggetti

    Lo storage degli oggetti OCI fornisce accesso a grandi quantità di dati strutturati e non strutturati di qualsiasi tipo di contenuto, inclusi backup del database, dati analitici e contenuti avanzati come immagini e video. Puoi archiviare i dati direttamente da Internet o dalla piattaforma cloud in tutta sicurezza. Puoi ridimensionare lo storage senza alcun deterioramento delle prestazioni o dell'affidabilità del servizio.

    Utilizza lo storage standard per lo storage "caldo" a cui è necessario accedere rapidamente, immediatamente e frequentemente. Utilizza lo storage di archivio per lo storage "freddo" che conservi per lunghi periodi di tempo e a cui accedi raramente o raramente.

  • Gateway del servizio

    Un gateway di servizi fornisce l'accesso da una VCN ad altri servizi, come Oracle Cloud Infrastructure Object Storage. Il traffico dalla VCN al servizio Oracle viene instradato sul fabric di rete Oracle e non attraversa Internet.

Considerazioni

Considerare i seguenti punti quando si pianifica di distribuire questa architettura di riferimento:

  • Aggiorna il file YAML

    Utilizzare le stringhe di connessione per aggiornare il file YAML della distribuzione del servizio Azure Kubernetes. È possibile trovare le stringhe di connessione ai database nella console OCI.

  • Prestazioni
    • Un'architettura multi-tenant Oracle è consigliata per il livello di persistenza per l'architettura dei microservizi, per l'isolamento del contesto limitato di dati, sicurezza e alta disponibilità.

      Con l'architettura multi-tenant Oracle, Oracle Database può funzionare come un container database (CDB) che contiene più pluggable database (PDB). Ciò consente ai microservizi che hanno una vasta gamma di tipi di dati e carichi di lavoro di utilizzare un singolo container database convergente. Sfruttando i PDB, Oracle può fornire i database isolati dei microservizi all'interno del CDB e consentire lo spostamento dei PDB nei container fisici. I microservizi possono connettersi a un'istanza di Oracle Database in esecuzione su Oracle Exadata Database Service on Dedicated Infrastructure.

  • Sicurezza
    • Valutare la possibilità di utilizzare un vault anziché memorizzare le informazioni di connessione al database, la password e il wallet delle applicazioni (se applicabile) nei segreti Kubernetes per il servizio Azure Kubernetes.
  • Rete
    • Richiede almeno una rete virtuale di Azure (VNet) con una subnet delegata al collegamento di rete di Oracle Database.

    • Prendi in considerazione la possibilità di distribuire la subnet Kubernetes Service Microsoft Azure e la subnet client cluster VM Oracle Exadata Database Service nella stessa VNet.

  • Disponibilità
    • Prendi in considerazione la possibilità di utilizzare e configurare Universal Connection Pool (UCP), Oracle JDBC Driver e Oracle RAC per sfruttare le funzionalità HA (High Availability) di Oracle Database per un servizio continuo durante i tempi di inattività pianificati e non per mantenere la disponibilità continua delle tue applicazioni.

      UCP supporta tutte le configurazioni e le funzionalità mission-critical di Oracle Database (disponibilità, scalabilità e bilanciamento del carico) pronte all'uso, inclusi Oracle RAC, Oracle Data Guard, partizionamento orizzontale di Oracle, API asincrona, bilanciamento del carico di runtime, XA, continuità dell'applicazione, Transaction Guard, TAF (Transparent Application Failover), SCAN (Single Client Access Name) e DRCP (front-end to Database Resident Connection Pool). Con il sistema Oracle RAC, qualsiasi servizio di database Oracle è accessibile equamente da diversi nodi server. Se un nodo o un subset del cluster Oracle RAC non riesce o viene disattivato per manutenzione, il database rimane accessibile tramite i nodi attivi rimanenti.

    • Di seguito sono riportati gli elementi di base per l'implementazione dell'alta disponibilità delle applicazioni con Oracle Database:

      1. Utilizzare un servizio di database
      2. Configurare un URL o una stringa di connessione per High Availability
      3. Abilitare FAN ( Fast Application Notification)
      4. Implementa l'eliminazione e la disponibilità continua del database per le applicazioni Java
    • Valutare la possibilità di utilizzare Oracle Database Autonomous Recovery Service come destinazione di backup consigliata per Oracle Database.

      Di seguito sono riportate le due opzioni disponibili per memorizzare i backup: nella stessa area di Azure risiede Oracle Exadata Database Service oppure un'area OCI predefinita associata all'area di Azure

Visualizza altro

Scopri di più su Oracle Cloud Infrastructure (OCI) e Microsoft Azure:

Esaminare le risorse aggiuntive riportate di seguito.

Se non si dispone di un account Oracle Cloud o Microsoft Azure, vedere quanto segue per iscriversi a un account gratuito:

conferme

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