Azure-DevOps-Pipelines mit Oracle Exadata Database Service in Oracle Database@Azure erstellen

Erfahren Sie, wie Sie Microsoft Azure CI/CD-Pipelines mit Oracle Exadata Database Service in Oracle Database@Azure erstellen, um die beste Oracle Database-Performance, High Availability, Skalierbarkeit, einschließlich Oracle Real Application Clusters (Oracle RAC) und Sicherheit für Azure-Anwendungen zu erhalten. Dadurch können Anwendungsentwickler Microsoft Azure-Pipelines mit Azure DevOps mit Oracle Exadata Database Service on Dedicated Infrastructure mit Oracle Exadata Cloud Infrastructure in den Azure-Data Centern erstellen und bereitstellen, die in unmittelbarer Nähe zu Microsoft Azure DevOps Pipelines ausgeführt werden, um eine möglichst geringe Latenz zu erreichen.

Bevor Sie beginnen

Um diese Referenzarchitektur nutzen zu können, sind folgende Voraussetzungen erforderlich:
  • Microsoft Azure DevOps
  • Microsoft Azure-Pipelines
  • Versionskontrollsysteme: Azure Repos Git, GitHub und TFVC.
  • Microsoft Azure Kubernetes Service (AKS)
  • Konfigurieren Sie Oracle Database@Azure wie folgt:
    • Zugriff auf ein Azure-Abonnement und -Verzeichnis
    • Zugriff auf einen Oracle Cloud Infrastructure-(OCI-)Mandanten
    • Aktiver Oracle Database@Azure-Multicloud-Link zwischen den Clouds von Azure und Oracle

Stellen Sie vor dem Provisioning von Oracle Database@Azure sicher, dass Sie über ausreichende Oracle Exadata Database Service-Limits und OCI-Servicelimits verfügen:

  1. Klicken Sie im OCI-Menü auf Governance und Administration.
  2. Klicken Sie unter Mandantenverwaltung auf Begrenzungen, Quota und Nutzung.
  3. Wählen Sie im Dropdown-Menü Service die Option Datenbank aus.

Architektur

Diese Architektur zeigt, wie Sie Microsoft Azure-Pipelines mit Azure DevOps mit Oracle Exadata Database Service on Dedicated Infrastructure erstellen und bereitstellen können.

Der Anwendungs- und Datenbankquellcode wird in einem Microsoft Azure DevOps-Code-Repository, GitHub oder ähnlichem gehostet. Ein Benutzer schreibt Änderungen im Code-Repository fest, wodurch die Pipeline für die kontinuierliche Integration (CI) ausgelöst wird. In dieser Phase werden Unit-Tests, Integrationstests, statische Codeanalysen und das Testen von Containern im Azure Kubernetes Service-(AKS-)Cluster ausgeführt, um die Bereitschaft zur Bereitstellung zu prüfen.

Nach Abschluss des Tests erstellt die Build-Pipeline Docker-Images und überträgt sie an die Azure-Container-Registry. Diese Artefakte initiieren dann die Continuous Delivery-(CD-)Pipeline. In der CD-Phase werden die Artefakte in AKS bereitgestellt, wo End-to-End- und Systemtests ausgeführt werden, um sicherzustellen, dass Microservices innerhalb der Kubernetes-Umgebung und der Oracle Database ordnungsgemäß funktionieren. Staging- und Produktionsumgebungen, die Strategien wie Blue/Green- oder Canary-Deployments verwenden, werden dann initiiert, um die neuen Änderungen ohne Ausfallzeiten bereitzustellen.

Ein Kubernetes-Cluster kann mehrere Pods enthalten, die jeweils eine Verbindung zu einer eigenen integrierbaren Datenbank (PDB) herstellen. Die PDBs in der Primärdatenbank werden in Oracle Database@Azure bereitgestellt, die in Oracle Exadata Database Service on Dedicated Infrastructure in einer Azure-Verfügbarkeitszone ausgeführt wird. Die Containerimages werden in der Azure-Container-Registry gespeichert. Benutzer greifen über einen öffentlichen Load Balancer extern auf die Anwendung zu.

Die Cloud-Automatisierung vereinfacht die meisten Lebenszyklus- und Verwaltungsaufgaben für Oracle Exadata Cloud Infrastructure- und mehrmandantenfähige Oracle-Datenbanken (CDBs, PDBs). Beispiel: Server hinzufügen und OCPUs vertikal und horizontal skalieren, Datenbanken und Datenbank-Homes erstellen, Infrastrukturwartung planen, VM-Betriebssystem, Oracle Grid Infrastructure und Datenbanken aktualisieren und upgraden, Backup- und Recovery-Vorgänge ausführen und sogar Disaster Recovery-Schutz über Oracle Data Guard aktivieren.

Metriken, Logs und Tracing des gesamten CI/CD-Prozesses werden kontinuierlich mit Tools wie Azure Monitor, Oracle Cloud Infrastructure (OCI) und dem Unified Observability OpenTelemetry-Framework von Oracle Database beobachtet, das Traces vom Einstiegspunkt der Anwendung in Azure über alle Subsysteme hinweg und in die Oracle Database bereitstellt, um die Performance und Zuverlässigkeit der Microservices und der Datenbank sicherzustellen. Dieser Ansatz stellt eine robuste, effiziente und skalierbare Lösung für die Bereitstellung und Verwaltung moderner Anwendungen in einer cloudnativen Umgebung sicher.

Das folgende Diagramm veranschaulicht diese Referenzarchitektur.

Beschreibung von exadata-database-service.png folgt
Beschreibung der Abbildung exadata-database-service.png

exadata-database-service-oracle.zip

Die Architektur umfasst die folgenden Komponenten:

  • Region

    Eine Oracle Cloud Infrastructure-Region ist ein lokalisierter geografischer Bereich, der mindestens ein Data Center enthält und Availability-Domains hostet. Regionen sind unabhängig von anderen Regionen, und große Entfernungen können sie trennen (über Länder oder sogar Kontinente).

    Eine Azure-Region ist ein geografisches Gebiet, in dem sich ein oder mehrere physische Azure-Rechenzentren, sogenannte Verfügbarkeitszonen, befinden. Regionen sind unabhängig von anderen Regionen, und große Entfernungen können sie trennen (über Länder oder sogar Kontinente).

    Azure- und OCI-Regionen sind lokalisierte geografische Bereiche. Bei Oracle Database@Azure ist eine Azure-Region mit einer OCI-Region verbunden, wobei Availability Zones (AZs) in Azure mit Availability-Domains (ADs) in OCI verbunden sind. Azure- und OCI-Regionspaare werden ausgewählt, um Entfernung und Latenz zu minimieren.

  • Azure-Verfügbarkeitszone

    Eine Verfügbarkeitszone ist ein physisch separates Data Center innerhalb einer Region, die verfügbar und fehlertolerant sein soll. Verfügbarkeitszonen sind nahe genug, um Verbindungen mit geringer Latenz zu anderen Verfügbarkeitszonen zu haben.

    Subnetzdelegierung ist die Fähigkeit von Microsoft, einen verwalteten Service, insbesondere einen Platform-as-a-Service-Service, direkt in Ihr virtuelles Netzwerk einzuspeisen.

  • Virtuelles Microsoft Azure-Netzwerk

    Microsoft Azure Virtual Network (VNet) ist der grundlegende Baustein für Ihr privates Netzwerk in Azure. Mit VNet können viele Arten von Azure-Ressourcen wie virtuelle Azure-Maschinen (VM) sicher miteinander, mit dem Internet und On-Premises-Netzwerken kommunizieren.

    Subnetzdelegierung ist die Fähigkeit von Microsoft, einen verwalteten Service, insbesondere einen Platform-as-a-Service-Service, direkt in Ihr virtuelles Netzwerk einzuspeisen.

  • Azure-Pipelines

    Azure Pipelines sind Teil des Azure-Dienstes DevOps, der von Microsoft Azure angeboten wird, um automatisch Codeprojekte für kontinuierliche Integration, kontinuierliche Tests und kontinuierliche Bereitstellung zu erstellen, zu testen und bereitzustellen. (CI-CD)

  • Azure Kubernetes-Service

    Azure Kubernetes Service (AKS) ist ein verwalteter Kubernetes-Service, der von Microsoft Azure zur Bereitstellung und Verwaltung containerisierter Anwendungen angeboten wird. Ein Kubernetes-Cluster kann mehrere Pods enthalten.

  • Kubernetes-Control Plane

    Eine Kubernetes-Control Plane verwaltet die Ressourcen für die Worker-Knoten und -Pods in einem Kubernetes-Cluster. Die Control-Plane-Komponenten erkennen und reagieren auf Ereignisse, führen die Planung durch und verschieben Clusterressourcen.

  • Oracle Exadata Database Service on Dedicated Infrastructure

    Oracle Exadata Database Service bietet bewährte Oracle Database-Funktionen auf speziell entwickelter, optimierter Oracle Exadata Cloud Infrastructure in der Public Cloud. Integrierte Cloud-Automatisierung, elastische Ressourcenskalierung, Sicherheit und schnelle Performance für OLTP, In-Memory-Analysen und konvergierte Oracle Database-Workloads helfen dabei, die Verwaltung zu vereinfachen und Kosten zu senken.

    Oracle Exadata Cloud Infrastructure bringt mehr CPU-Cores, mehr Speicher und eine schnellere Netzwerkstruktur in die Public Cloud. Oracle Exadata-Speicherserver umfassen den Exadata RDMA-Speicher (XRMEM), wodurch eine zusätzliche Speicherebene erstellt wird und die allgemeine Systemperformance gesteigert wird. Exadata kombiniert XRMEM mit innovativen RDMA-Algorithmen, die das Netzwerk und den I/O-Stack umgehen, wodurch teure CPU-Interrupts und Kontext-Switches vermieden werden.

    Oracle Exadata Cloud Infrastructure erhöht den Durchsatz seines 100 Gbit/s Active/Active Remote Direct Memory Access über die interne Netzwerkstruktur von Converged Ethernet (RoCE) und bietet so eine schnellere Verbindung als frühere Generationen mit extrem geringer Latenz zwischen allen Compute- und Speicherservern.

  • Oracle Database Autonomous Recovery Service

    Oracle Database Autonomous Recovery Service ist ein vollständig verwalteter Service, der Oracle Databases vor Datenverlust und Cyberbedrohungen schützt. Es bietet schnellere Backups mit reduziertem Datenbank-Overhead, zuverlässige Wiederherstellung mit validierten Backups und Echtzeitschutz, die eine Wiederherstellung innerhalb von weniger als einer Sekunde nach einem Ausfall oder Ransomware-Angriff ermöglichen. Oracle Database Zero Data Loss Autonomous Recovery Service ist eine Option ohne Datenverlust für den Autonomous Recovery Service. Dieser Service bietet ein zentrales Datenschutz-Dashboard und wird für das Backup von Oracle-Datenbanken empfohlen.

  • Oracle Database@Azure

    Oracle Database@Azure ist der auf Oracle Cloud Infrastructure (OCI) ausgeführte Oracle Database-Service (Oracle Exadata Database Service on Dedicated Infrastructure und Oracle Autonomous Database Serverless), der in Microsoft Azure-Data Centern bereitgestellt wird. Der Service bietet Features und Preisparität mit OCI. Erwerben Sie den Service im Azure Marketplace.

    Oracle Database@Azure integriert die Technologien Oracle Exadata Database Service, Oracle Real Application Clusters (Oracle RAC) und Oracle Data Guard in die Azure-Plattform. Benutzer verwalten den Service auf der Azure-Konsole und mit Azure-Automatisierungstools. Der Service wird im virtuellen Azure-Netzwerk (VNet) bereitgestellt und in das Identitäts- und Zugriffsverwaltungssystem von Azure integriert. Die generischen Metriken und Auditlogs von OCI und Oracle Database sind nativ in Azure verfügbar. Für den Service müssen Benutzer über ein Azure-Abonnement und einen OCI-Mandanten verfügen.

  • Objektspeicher

    Mit OCI Object Storage können Sie auf große Mengen an strukturierten und unstrukturierten Daten eines beliebigen Inhaltstyps zugreifen, darunter Datenbankbackups, Analysedaten und umfangreiche Inhalte, wie Bilder und Videos. Sie können Daten sicher im Internet oder in der Cloud-Plattform speichern. Sie können den Speicher skalieren, ohne dass die Performance oder Servicezuverlässigkeit beeinträchtigt wird.

    Verwenden Sie Standardspeicher für "guten" Speicher, auf den Sie schnell, sofort und häufig zugreifen müssen. Verwenden Sie Archivspeicher für "Cold Storage", den Sie über lange Zeiträume beibehalten und auf den Sie nur selten zugreifen.

  • Servicegateway

    Ein Servicegateway ermöglicht den Zugriff von einem VCN auf andere Services wie Oracle Cloud Infrastructure Object Storage. Der Traffic vom VCN zum Oracle-Service wird über die Oracle-Netzwerkstruktur geleitet und durchläuft nicht das Internet.

Hinweise

Beachten Sie bei der Bereitstellung dieser Referenzarchitektur die folgenden Punkte:

  • YAML-Datei aktualisieren

    Verwenden Sie Verbindungszeichenfolgen, um die YAML-Datei des Azure Kubernetes Service-Deployments zu aktualisieren. Sie finden die Verbindungszeichenfolgen zu Ihren Datenbanken in der OCI-Konsole.

  • Performance
    • Eine mehrmandantenfähige Oracle-Architektur wird für die Persistenzschicht für die Microservices-Architektur, für die gebundene Kontextisolierung von Daten, Sicherheit und für High Availability empfohlen.

      Bei der mehrmandantenfähigen Oracle-Architektur kann eine Oracle Database als Containerdatenbank (CDB) fungieren, die mehrere integrierbare Datenbanken (PDBs) enthält. Auf diese Weise können Microservices mit einer Vielzahl von Datentypen und Workloads eine einzige konvergierte Containerdatenbank verwenden. Durch die Nutzung der PDBs kann Oracle die isolierten Microservices-Datenbanken innerhalb der CDB bereitstellen und das Verschieben der PDBs über physische Container hinweg ermöglichen. Microservices können eine Verbindung zu einer Oracle Database-Instanz herstellen, die auf Oracle Exadata Database Service on Dedicated Infrastructure ausgeführt wird.

  • Sicherheit
    • Sie sollten einen Vault verwenden, anstatt die Datenbankverbindungsinformationen, das Kennwort und das Wallet (falls zutreffend) der Anwendungen in Kubernetes-Secrets für Azure Kubernetes Service zu speichern.
  • Netzwerk
    • Erfordert mindestens ein virtuelles Azure-Netzwerk (VNet) mit einem delegierten Subnetz an den Oracle Database-Netzwerkanhang.

    • Sie sollten das Microsoft Azure Kubernetes Service-Subnetz und das Oracle Exadata Database Service-VM-Cluster-Clientsubnetz in demselben VNet bereitstellen.

  • Verfügbarkeit
    • Verwenden und konfigurieren Sie den Universal Connection Pool (UCP), den Oracle JDBC-Treiber und Oracle RAC, um die High Availability-(HA-)Funktionen von Oracle Database für kontinuierlichen Service während geplanter und ungeplanter Ausfallzeiten zur Aufrechterhaltung der kontinuierlichen Verfügbarkeit Ihrer Anwendungen zu nutzen.

      UCP unterstützt alle Oracle Database-Konfigurationen und geschäftskritischen Funktionen (Verfügbarkeit, Skalierbarkeit und Load Balancing) out-of-the-box, einschließlich Oracle RAC, Oracle Data Guard, Oracle Sharding, Asynchronous API, Runtime Load Balancing, XA, Application Continuity, Transaction Guard, Transparent Application Failover, Single Client Access Name (SCAN) und Front-End zu Database Resident Connection Pool (DRCP). Mit dem Oracle RAC-System ist jeder Oracle-Datenbankservice von mehreren Serverknoten aus gleichermaßen zugänglich. Wenn ein Knoten oder eine Teilmenge des Oracle RAC-Clusters ausfällt oder zur Wartung offline gesetzt wird, ist der Zugriff auf die Datenbank weiterhin über die verbleibenden aktiven Knoten möglich.

    • Im Folgenden sind die Bausteine für die Implementierung von Application High Availability mit Oracle Database aufgeführt:

      1. Datenbankservice verwenden
      2. Konfigurieren einer URL oder Verbindungszeichenfolge für High Availability
      3. Fast Application Notification (FAN) aktivieren
      4. Implementierung von Draining und Aktivierung der kontinuierlichen Datenbankverfügbarkeit für Java-Anwendungen
    • Ziehen Sie in Betracht, Oracle Database Autonomous Recovery Service wie empfohlen als Backupziel für Oracle Database zu verwenden.

      Im Folgenden sind die beiden verfügbaren Optionen zum Speichern von Backups aufgeführt: In derselben Azure-Region, in der sich Oracle Exadata Database Service befindet, oder in einer mit der Azure-Region verknüpften OCI-Standardregion.

Mehr erfahren

Weitere Informationen zu Oracle Cloud Infrastructure (OCI) und Microsoft Azure:

Prüfen Sie diese zusätzlichen Ressourcen:

Wenn Sie keinen Oracle Cloud-Account oder Microsoft Azure-Account haben, können Sie sich über Folgendes für einen kostenlosen Account registrieren:

Danksagungen

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