Connect Azure Kubernetes with Oracle Exadata Database Service on Oracle Database@Azure

Learn how to connect Microsoft Azure Kubernetes Service to Oracle Exadata Database Service on Oracle Database@Azure to unlock the best Oracle Database performance, high availability, scalability, including Oracle Real Application Clusters (Oracle RAC) and security for Azure applications. This enables application developers to deploy a Kubernetes application from the Microsoft Azure Portal and connect to Oracle Exadata Database Service with the Oracle Exadata Cloud Infrastructure residing in the Azure data centers, running in close proximity to Azure Kubernetes Service to achieve the lowest possible latency.

Before You Begin

To take advantage of this reference architecture, the following are required:

  • Microsoft Azure Kubernetes Service (AKS)
  • Deploy your AKS cluster
  • Configure Oracle Database@Azure with the following:
    • Access to an Azure subscription and directory
    • Access to an OCI tenancy
    • Active Oracle Database@Azure multicloud link between the Azure and Oracle clouds
Before provisioning Oracle Database@Azure, ensure that you have adequate Oracle Exadata Database Service limits and Oracle Cloud Infrastructure (OCI) service limits:
  1. In the OCI menu, click Governance & Administration.
  2. Under Tenancy Management, click Limits, Quotas and Usage.
  3. From the Service drop-down menu, select Database.

Architecture

The architecture shows a containerized application deployed in Azure Kubernetes Service (AKS) and Oracle Exadata Database Service in a Microsoft Azure Region with automatic backups going to Oracle Database Autonomous Recovery Service in the Azure Region or OCI Object Storage in the OCI Region.

Kubernetes is a portable, extensible, open source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. Kubernetes is considered a cornerstone technology for cloud native computing and has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available.

In this architecture a containerized application in AKS is in its own application subnet. A Kubernetes cluster can contain multiple pods, each connecting to its own respective Oracle Pluggable Database (PDB). 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. The container images are stored in the Azure container registry. Users access the application externally through a public load balancer.

Cloud automation simplifies most lifecycle and management tasks for Oracle Exadata Infrastructure and Oracle multitenant databases (CDBs and PDBs). For example, adding servers and scaling OCPUs up and down, creating databases and database homes, scheduling infrastructure maintenance, updating and upgrading the VM operating system, Grid Infrastructure, and databases, performing backup and recovery operations, and even enabling disaster recovery protections through Oracle Data Guard.

The following diagram illustrates this reference architecture.

Description of azure-kube-exadata-db.png follows
Description of the illustration azure-kube-exadata-db.png

azure-kube-exadata-db-oracle.zip

The architecture has the following components:

  • Regions

    An Oracle Cloud Infrastructure region is a localized geographic area that contains one or more data centers, called availability domains. Regions are independent of other regions, and vast distances can separate them (across countries or even continents).

    An Azure region is a geographical area in which one or more physical Azure data centers, called availability zones, reside. Regions are independent of other regions, and vast distances can separate them (across countries or even continents).

    Azure and OCI regions are localized geographic areas. For Oracle Database@Azure, an Azure region is connected to an OCI region, with availability zones (AZs) in Azure connected to availability domains (ADs) in OCI. Azure and OCI region pairs are selected to minimize distance and latency.

  • Azure availability zone

    An availability zone is a physically separate data center within a region that is designed to be available and fault tolerant. Availability zones are close enough to have low-latency connections to other availability zones.

    Subnet delegation is Microsoft's ability to inject a managed service, specifically a platform-as-a-service service, directly into your virtual network.

  • Microsoft Azure Virtual Network

    Microsoft Azure Virtual Network (VNet) is the fundamental building block for your private network in Azure. VNet enables many types of Azure resources, such as Azure virtual machines (VM), to securely communicate with each other, the internet, and on-premises networks.

    Subnet delegation is Microsoft's ability to inject a managed service, specifically a platform-as-a-service service, directly into your virtual network.

  • Exadata Database Service on Dedicated Infrastructure

    Oracle Exadata Database Service delivers proven Oracle Database capabilities on purpose-built, optimized Oracle Exadata Cloud Infrastructure in the public cloud. Built-in cloud automation, elastic resource scaling, security, and fast performance for OLTP, in-memory analytics, and converged Oracle Database workloads help simplify management and reduce costs.

    Oracle Exadata Cloud Infrastructure brings more CPU cores, increased storage, and a faster network fabric to the public cloud. Oracle Exadata storage servers include Exadata RDMA Memory (XRMEM), creating an additional tier of storage, boosting overall system performance. Exadata combines XRMEM with innovative RDMA algorithms that bypass the network and I/O stack, eliminating expensive CPU interrupts and context switches.

    Oracle Exadata Cloud Infrastructure increases the throughput of its 100 Gbps active-active Remote Direct Memory Access over Converged Ethernet (RoCE) internal network fabric, providing a faster interconnect than previous generations with extremely low-latency between all compute and storage servers.

  • Oracle Database Autonomous Recovery Service

    Oracle Database Autonomous Recovery Service is a fully managed service designed to protect Oracle Databases from data loss and cyber threats. It offers faster backups with reduced database overhead, reliable recovery with validated backups, and real-time protection enabling recovery to within less than a second of an outage or ransomware attack. This service provides a centralized data protection dashboard and is recommended for backing up Oracle Databases.

  • Azure Kubernetes Services

    Azure Kubernetes Service (AKS) is a managed Kubernetes service offered by Microsoft Azure to deploy and manage containerized applications. A Kubernetes cluster can contain multiple pods.

  • 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. The service offers features and price parity with OCI, users purchase the service on Azure Marketplace.

    Oracle Database@Azure integrates Oracle Exadata Database Service, Oracle Real Application Clusters (Oracle RAC), and Oracle Data Guard technologies into the Azure platform. Users manage the service on the Azure console and with Azure automation tools. The service is deployed in Azure Virtual Network (VNet) and integrated with the Azure identity and access management system. The OCI and Oracle Database generic metrics and audit logs are natively available in Azure. The service requires users to have an Azure subscription and an OCI tenancy. Oracle Autonomous Database is built on Oracle Exadata Cloud Infrastructure, is self-managing, self-securing, and self-repairing, helping eliminate manual database management and human errors. Autonomous Database enables development of scalable AI-powered apps with any data using built-in AI capabilities using your choice of large language model (LLM) and deployment location.

    Both Oracle Exadata Database Service and Oracle Autonomous Database Serverless are easily provisioned through the native Azure Portal, enabling access to the broader Azure ecosystem.

    Customer commercial benefits include using Azure commitments (MACC) for procuring Oracle Exadata Database Service, OCI Object Storage and Oracle Cloud Infrastructure Networking Data Transfer fees. It is possible to leverage existing Oracle licenses as BYOL as well as license included, a collaborative support model and procurement in Microsoft Azure Marketplace, all presented as one unified bill.

  • Control Plane

    A Kubernetes control plane manages the resources for the worker nodes and pods within a Kubernetes cluster. The control plane components detect and respond to events, perform scheduling, and move cluster resources.

  • Object storage

    OCI Object Storage provides quick access to large amounts of structured and unstructured data of any content type, including database backups, analytic data, and rich content such as images and videos. You can safely and securely store data directly from the internet or from within the cloud platform. You can scale storage without experiencing any degradation in performance or service reliability.

    Use standard storage for "hot" storage that you need to access quickly, immediately, and frequently. Use archive storage for "cold" storage that you retain for long periods of time and seldom or rarely access.

  • Service gateway

    A service gateway provides access from a VCN to other services, such as Oracle Cloud Infrastructure Object Storage. The traffic from the VCN to the Oracle service travels over the Oracle network fabric and does not traverse the internet.

Considerations

Consider the following when deploying this reference architecture.

  • Update the YAML file

    Use connection strings to update the YAML file of the Azure Kubernetes Service deployment. You can find the connection strings to your databases in the OCI Console.

  • Performance
    • An Oracle multitenant architecture is recommended for the persistence layer for microservices architecture, for bounded context isolation of data, security, and for high availability.

      With Oracle multitenant architecture, an Oracle Database can function as a container database (CDB) that contains multiple pluggable databases (PDBs). This enables microservices that have a variety of data types and workloads to use a single converged container database. By leveraging the PDBs, Oracle can provide the microservices isolated databases within the CDB and enable the movement of the PDBs across physical containers. Microservices can connect to an Oracle Database instance that is running on Oracle Exadata Database Service on Dedicated Infrastructure.

  • Security
    • Consider using a vault, such as Azure Key Vault, instead of storing the connection string password and wallet (if applicable) in Kubernetes secrets for Azure Kubernetes Service.
  • Network
    • Requires at least one Azure Virtual Network (VNet) with a delegated subnet to Oracle Database network attachment.

    • Consider deploying the Microsoft Azure Kubernetes Service subnet and the Oracle Exadata Database Service VM Cluster client subnet in the same VNet.

  • Availability
    • Consider using and configuring the Universal Connection Pool (UCP), Oracle JDBC Driver, and Oracle Real Application Clusters (Oracle RAC) to leverage Oracle Database's High Availability (HA) capabilities for continuous service during planned and unplanned downtime for maintaining your applications’ continuous availability.

      UCP supports all Oracle Database configurations and mission-critical capabilities (availability, scalability, and load balancing) out-of-the-box, including 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) and front-end to Database Resident Connection Pool (DRCP). With the Oracle RAC system, any Oracle database service is accessible equally from several server nodes. If a node or a subset of the Oracle RAC cluster fails or is taken offline for maintenance, the database is still accessible through the remaining active nodes.

    • The following are the building blocks for implementing Application High Availability with Oracle Database:
      1. Use a database service
      2. Configure a URL or a connection string for High Availability
      3. Enable Fast Application Notification (FAN)
      4. Implement draining and enabling continuous database availability for Java applications
    • Consider using Oracle Database Autonomous Recovery Service as recommended as the backup destination for Oracle Database.

      The following are the two available options to store backups: in the same Azure region the Oracle Exadata Database Service resides, or a default OCI Region associated with the Azure Region.

Deploy

Perform the following to deploy this reference architecture:

  1. To deploy the Azure Kubernetes Service (AKS) cluster, go to Quickstart: Deploy an Azure Kubernetes Service (AKS) cluster using Azure portal and follow the instructions to deploy an Azure Kubernetes Cluster.
  2. Subscribe Oracle Database@Azure from Azure Marketplace.
  3. Deploy Oracle Exadata Virtual Cluster in delegated subnet of the VNet.
  4. Deploy Azure Kubernetes in separate subnet in the same VNet.
  5. Update your application definition to use connection strings to connect to your databases.

Acknowledgments

  • Authors: Suzanne Holliday, Julien Silverston, Paul Parkinson, Leo Alvarado