Building Multi-Cloud Apps on Microsoft Azure and Oracle Cloud Infrastructure
Special credits to co-author Sam Shah
As the multi cloud story unfolds, enterprises are looking to build applications that span infrastructures and cloud providers. Oracle and Microsoft recently announced cloud partnership. This partnership enables cross-cloud networking, unified identity & access management, as well as collaborative and integrated support model across Microsoft Azure and Oracle Cloud Infrastructure (OCI). The cross-cloud networking is a secure dedicated link that provides high bandwidth and low-latency between the two cloud providers. There is no need for customers to work with a third party network providers to setup the cross-cloud connectivity.
The power of cross-cloud connectivity enables many use cases. Here are some use cases:
1. Web/App on Azure, Oracle Autonomous, ExaCS database on OCI
2. Java and Oracle Apps on Oracle, .NET/SQL Server applications on Azure
3. Data Mining in Autonomous Database from Azure
4. Apps to Apps interoperability across the Clouds
5. High availability across multiple cloud vendors
Recently Jamal Arif published a blog that walks users through the simplicity of creating an end to end Cloud interconnect between Microsoft Azure and Oracle Cloud Infrastructure (OCI).
As a continuation to the series, through this blog we (Sam Shah & Vinay Rao) would like to walk you through the process of building a simple 2 Tier Multi-cloud application that help enterprise envision applications that leverage best of the breed services from both these cloud providers
Before you start building the application, lets take a quick glance at the architecture
In the above setup, The App tier resides on a Azure compute and DB tier is the Oracle Autonomous Database offering. App tier will write/query data to/from the autonomous database tier over a secure private connection using the Transit Routing: Private Access to Oracle Services.
Pre-requisites:
Before you start deploying your application, Please follow the How to setup the interconnect between Oracle Cloud Infrastructure and Microsoft Azure Blog to setup an end to end connectivity between Oracle Cloud Infrastructure and Microsoft Azure.
Step1: Setup the Autonomous Database on Oracle
Login into the OCI console , select the us-ashburn-1 region and on the quick setup menu click on the “Create Autonomous Data Warehouse” option to spin up a Autonomous Data warehouse service.
Now follow the setup wizard to setup all the required parameters for your ADW service instance and select the “create autonomous database” button on the lower left corner of the page
Once you have created the Autonomous Database, it will take 3–5 mins for the databases to get provisioned.
Now download the Wallet file(Client credentials) as we will need that later in Step4
From the autonomous database console, you can right click on the autonomous database and enter service console
Now navigate to Administration section and download the wallet file
the wallet file will be used later
Step2: Setup the Application Tier on Azure
Now login into the Azure portal and create a Ubuntu virtual machine in the network you have created when following the pre-requisite steps
Please ensure you configure the Network Security Groups to allow the required Database Port and other connections
Once the VM is up and running, SSH into the VM and ensure the connectivity is working
Step3: Setup private peering routes to Oracle services
Assuming you have followed the pre-requisite steps and you have a private peering link setup between Oracle Cloud Infrastructure and Microsoft Azure, the VM’s in the two infrastructure can now reach each other securely over a private connection.
Now in order to access the autonomous database over the secure private connection we will leverage the recently announced Transit Routing: Private Access to Oracle Services feature.
To enable this feature, Lets create a service gateway using the following document : OCI Service Gateway
Navigate to the Virtual Cloud Network > Virtual Network Details and select the service gateway resource on the bottom left side and click on the create service gateway button
Now follow to Wizard to create a service gateway to reach “All IAD Services in Oracle Services Network”
Now once the service gateway is created, We will create 2 route tables: DRG route table and SGW route table
Route Table1: DRG Route Table
Now lets associate this route table to the DRG to ensure all Oracle services routes are advertised by the DRG
Now that the route table is associated with DRG, The DRG will advertise the OSN network routes over the Azure Express route and these routes are visible on the VM’s route table
Now to ensure that the traffic from the Oracle Services Network can reach the remote Azure Application, Lets create SGW route table
Route Table2: SGW Route Table
And associate the SGW Route Table to the SGW
Step4: Install the Application
Now that the connectivity has been setup. Lets install the application that will Mine Data from the autonomous database
To Install the Application, Please follow the following steps
Step1: Install the Oracle Instance Client using the following link in the Azure VM
Step2 : Upload the Wallet file mentioned in step1, unzip the folder and use the files to access the data in the autonomous data warehouse database.
Step3: Clone the application code from this repo.
Step4 : run the application
Voila! The simple python app residing in Azure VNET can privately and securely read data from Oracle Autonomous Database.
Conclusion:
We hope you enjoyed reading this blog, The sample 2 tier application is just a proof of concept of to help you build your ideas and application across Azure and OCI.
We look forward to staying connected and have enterprises benefit from such multi-cloud partnerships.
Video blog coming soon