Build Azure DevOps Pipelines using Oracle Exadata Database Service in Oracle Database@Azure
Before You Begin
- Microsoft Azure DevOps
- Microsoft Azure Pipelines
- Version Control systems: Azure Repos Git, GitHub, and TFVC.
- Microsoft Azure Kubernetes Service (AKS)
- Configure Oracle Database@Azure with the following:
- Access to an Azure subscription and directory
- Access to an Oracle Cloud Infrastructure (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 OCI service limits:
- In the OCI menu, click Governance & Administration.
- Under Tenancy Management, click Limits, Quotas and Usage.
- From the Service drop-down menu, select Database.
Architecture
The application and database source code are hosted on a Microsoft Azure DevOps code repository, GitHub, or similar. A user commits changes into the code repository which triggers the continuous integration (CI) pipeline. This phase includes running unit tests, integration tests, static code analysis, and also testing of containers within the Azure Kubernetes Service (AKS) cluster to verify deployment readiness.
Once testing is complete, the build pipeline creates Docker images and pushes them to the Azure container registry. These artifacts then initiate the continuous delivery (CD) pipeline. In the CD phase, the artifacts are deployed to AKS where end-to-end and system tests are run to ensure microservices operate correctly within the Kubernetes environment and the Oracle Database. Staging and production environments, using strategies like blue/green or canary deployments, are then initiated for zero downtime deployment of the new changes.
A Kubernetes cluster can contain multiple pods, each connecting to its own respective 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 Cloud Infrastructure and Oracle multitenant databases (CDBs, 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, Oracle Grid Infrastructure, and databases, performing backup and recovery operations, and even enabling disaster recovery protections through Oracle Data Guard.
Metrics, logs, and tracing of the entire CI/CD process are observed continuously using tools like Azure Monitor, Oracle Cloud Infrastructure (OCI) and Oracle Database's Unified Observability OpenTelemetry framework which provides traces from the entry point of the application residing on Azure, across all subsystems, and into the Oracle Database ensuring the performance and reliability of both the microservices and the database. This approach ensures a robust, efficient, and scalable solution for deploying and managing modern applications in a cloud-native environment.
The following diagram illustrates this reference architecture.

Description of the illustration exadata-database-service.png
exadata-database-service-oracle.zip
The architecture has the following components:
- Region
An Oracle Cloud Infrastructure region is a localized geographic area that contains one or more data centers, hosting 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.
- Azure Pipelines
Azure Pipelines are part of the Azure DevOps service offered by Microsoft Azure to automatically builds, tests, and deploys code projects for continuous integration, continuous testing and continuous delivery. (CI-CD)
- Azure Kubernetes Service
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.
- Kubernetes 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.
- Oracle 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. Oracle Database Zero Data Loss Autonomous Recovery Service is a Zero Data Loss option for the Autonomous Recovery Service. This service provides a centralized data protection dashboard and is recommended for backing up Oracle Databases.
- 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. 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.
- Object storage
OCI Object Storage provides 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 points when planning to deploy 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, instead of storing applications' database connection information, 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 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:
- Use a database service
- Configure a URL or a connection string for High Availability
- Enable Fast Application Notification (FAN)
- 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
-
Explore More
Learn more about Oracle Cloud Infrastructure (OCI) and Microsoft Azure:
Review these additional resources:
- Oracle Cloud Infrastructure Documentation:
- Build MultiCloud DevOps using Azure CI/CD Pipelines with Kubernetes and Oracle Database Cloud Services (Workshop)
- Well-architected framework for Oracle Cloud Infrastructure
- Oracle Cloud Cost Estimator
- Cloud Adoption Framework
- Oracle Cloud Free Tier account (Oracle Cloud)
- Azure Free Account (Microsoft Azure)