On June 5, 2019, Oracle and Microsoft announced a cloud interoperability partnership that enables customers to migrate and run mission-critical enterprise workloads across Oracle Cloud Infrastructure and Microsoft Azure. Enterprises can seamlessly connect Azure services to various Oracle Cloud services, like Autonomous Database. By enabling customers to run one part of a workload in Azure and another part of the same workload in Oracle Cloud Infrastructure, the partnership delivers a highly optimized, best-of-both-clouds experience. Taken together, Azure and Oracle Cloud offer customers a one-stop shop for all the cloud services and applications that they need to run their entire business.
Oracle and Microsoft are collaborating to provide customers low-latency, high-throughput cross-cloud connectivity, which allows them to take advantage of the best features of both clouds. Using this cross-cloud connectivity, customers can partition a multitier application to run the database tier on Oracle Cloud Infrastructure and the application and other tiers on Microsoft Azure. The experience is similar to running the entire solution stack in a single cloud.
The following Oracle applications can run in the Oracle Cloud Infrastructure and Azure cross-cloud configuration:
Figure 1: Interconnect Overview
This post provides a step-by-step demonstration of how to set up the interconnection between Oracle Cloud and Azure. In places, it refers to other documentation for detailed background information and detailed steps.
To prepare for the interconnect setup in Oracle Cloud, you create a virtual cloud network (VCN) with subnets, a dynamic routing gateway (DRG), and a test virtual machine (VM).
A VCN is a private network that you set up in Oracle data centers. It resembles a traditional network with firewall rules and specific types of communication gateways that you can use. A VCN resides in a single Oracle Cloud Infrastructure region and covers a single, contiguous IPv4 CIDR block of your choice.
For more information about using the networking quickstart, see the Networking documentation.
Sign in to the Oracle Cloud Infrastructure Console home page.
In the Quick Actions section, click Set up a network with a wizard.
Select VCN with Internet Connectivity, and then click Start VCN Wizard.
Add the required information (in this example, the VCN name is VCN_OCI_Azure), click Next, and then click Create.
Figure 2: Create a VCN with Internet Connectivity Wizard in Oracle Cloud Infrastructure
After the VCN is connected, its details page is displayed in the Console.
Figure 3: VCN Details Page in Oracle Cloud Infrastructure
After the VCN is successfully created, you create a dynamic routing gateway (DRG). For more information about DRGs, see the documentation.
Open the navigation menu. Go to Networking and then click Dynamic Routing Gateways.
Click Create Dynamic Routing Gateway.
Enter a name for the DRG (in this example, OCI_Azure_Demo), and then click Create Dynamic Routing Gateway.
Figure 4: Create a DRG in Oracle Cloud Infrastructure
After the DRG is successfully provisioned, attach it to the VCN.
On the details page of the DRG, click Virtual Cloud Networks under Resources, and then click Attach to Virtual Cloud Network.
Select the VCN that you created, and click Attach to Virtual Cloud Network.
Figure 5: Attach a DRG to a VCN
For more information about creating an instance, see the Compute documentation.
Open the navigation menu. Go to Compute and then click Instances.
Click Create Instance and enter the necessary information. For this example, we created a VM with an Oracle Linux 7.7 OS, a VM.Standard2.1 shape, and the default boot volume. The instance is named OCI_Azure_Demo, and it’s connected to the VCN_OCI_Azure VCN.
Figure 6: Create an Oracle Linux VM in Oracle Cloud Infrastructure
The VM is now successfully provisioned. Continue with the Azure prerequisites steps.
To prepare for the interconnect setup in Microsoft Azure, you create an Azure virtual network (VNet) with subnets, an Azure virtual network gateway, and a test VM.
For detailed steps, see the Azure documentation.
Sign in to the Azure portal.
From the portal menu, select Create a resource.
Select Networking and then click Virtual network.
Enter the required values. In this example, the VNet is named VNet_Azure_OCI, and it’s created in the OCI_Azure resource group and the US East location. Its subnet is named Subnet_1. Then, click Create.
Figure 7: Create a VNet in Azure
The finished deployment creates a VNet and a subnet, which are scoped to a single region in Azure (in our example, US East).
For detailed steps, see the Azure documentation.
On the upper-left side of the portal, open the navigation menu and search for virtual network gateway.
Enter the required details for the virtual network gateway. In this example, the gateway instance is named Azure_OCI, its type is ExpressRoute, its region is US East, and the VNet is the one just created, VNet_Azure_OCI.
Figure 8: Create a Virtual Network Gateway in Azure
From the Azure portal menu, select Create a resource.
Select Compute, select Ubuntu Server 16.04 LTS, and then click Create.
Enter the required values. In this example, the VM is named OCIAzureVM. It’s created in the US East region, and the size is Standard D2s v3. The network is the one that was just created.
Figure 9: Create a VM in Azure
This section provides the instructions for setting up the interconnection between Oracle Cloud Infrastructure and Microsoft Azure.
Azure ExpressRoute enables you to create private connections between Azure data centers and infrastructure that's on premises or in a colocated environment. ExpressRoute connections don’t go over the public internet, which provides more reliability, faster speeds, lower latency, and higher security than typical connections. Using ExpressRoute connections to transfer data between on-premises and Azure can also yield significant cost benefits.
With ExpressRoute, you can connect to Azure from an ExpressRoute location (exchange provider facility) or connect directly to Azure from your existing WAN network, such as an MPLS VPN, provided by a network service provider.
For detailed instructions, see Tutorial: Create and modify an ExpressRoute circuit.
From the Azure portal menu, select Create a resource.
Select Networking, and then click ExpressRoute.
On the Create ExpressRoute circuit page, click Create new, and then enter the required values. In this example, the circuit is named OCI_Azure_ExpressRoute, the provider is Oracle Cloud FastConnect, the peering location is Washington DC, the resource group is OCI_Azure, and the Location is US East.
Figure 10: Create an ExpressRoute Circuit in Azure
Click Create. An ExpressRoute circuit is created, but it’s not provisioned and doesn’t provide any connectivity details.
Note the service key, which you’ll use in the next step.
For detailed steps, see “Task 3: Set up an Oracle Cloud Infrastructure FastConnect virtual circuit” in Setting Up a VNet-to-VCN Connection.
In the Oracle Cloud Infrastructure Console, open the navigation menu.
Under Core Infrastructure, go to Networking, and click FastConnect.
Click Create FastConnect.
In the Create Connection workflow, select Use Oracle Provider and then select Microsoft Azure ExpressRoute. Click Next.
Enter the required details. For this example, the connection is named OCI_Azure_Demo, the circuit type is private, the DRG is OCI_Azure_Demo, and the provider service key is the one that you copied in the preceding step.
Figure 11: Set Up a FastConnect Virtual Circuit in Oracle Cloud Infrastructure
Click Create.
When provisioning is completed, the lifecycle state for the FastConnect circuit is UP, and the provider status for the ExpressRoute circuit changes to Provisioned, as shown in the following screenshot.
Figure 12: ExpressRoute Provisioned in Azure
In this step, create a link between the Azure VNet and the ExpressRoute circuit. Then, configure the security groups and routing for the virtual network.
In the Azure portal, navigate to the VNet that you created. In the Dashboard, click Resource groups, and then select the OCI_Azure resource group. Then, click Azure_OCI and then click Connections.
Click Add, and enter the required values. In this example, the connection is named OCI, the connection type is ExpressRoute, the virtual network gateway is Azure_OCI, and the ExpressRoute circuit is OCI_Azure_ExpressRoute. Then, click OK.
Figure 13: Link from the VNet to the ExpressRoute Circuit
For detailed steps, see the Azure documentation.
From the Azure portal menu, select Create a resource.
Select Networking, and then click Network security group.
Enter the required values. In this example, the NSG is named OCU_Azure_Demo_SG, the region is US East, and the resource group is OCI_Azure.
Figure 14: Create an NSG in Azure
Click Create.
When the NSG has been created, the following message appears: “Your deployment is complete.” Now, associate the NSG with the subnet in your VNet that’s hosting your VM.
Select the new NSG and click Subnets.
Associate the NSG with the Subnet_1 subnet.
Figure 15: Associate the Subnet with VNet in Azure
Next, add security group rules to allow traffic from the VCN on Oracle Cloud Infrastructure.
Navigate back to the NSG. In the Dashboard, click Resource groups, and then select the OCI_Azure resource group. Select the NSG.
Select Inbound security rules.
Add two rules, one for an SSH connection to the Azure VM and one for the connection between the VCN subnet (10.0.0.0/24) to the VNet subnet (172.16.0.0/24).
Figure 16: Inbound Security Rules in Azure
From the portal navigation menu, select Create a resource.
Select Route Table, and then click Create.
Enter the required values. In this example, the route table is named Route_Table, and it’s created in the OCI_Azure resource group and the US East location. Click Create.
Figure 17. Create a Route Table in Azure
After the route table is successfully created, associate it with the VNet subnet that’s hosting your VM and then add a route.
Select the route table, go to Routes and click Add. In this example, the route is called OCI, the address prefix is the Oracle Cloud Infrastructure VCN CIDR (10.0.0.0/16), and the next hop type is the Azure virtual network gateway. Click OK.
Figure 18: Add a Route in Azure
We have now successfully created an ExpressRoute, linked it with the virtual network gateway, and configured an NSG and route table to allow traffic connectivity with the Oracle Cloud Infrastructure VCN.
In Oracle Cloud Infrastructure, configure the security lists and route table associated with the subnet that’s hosting the VM.
From the main menu of the console, select Networking and then click Virtual Cloud Networks.
Click the name of the network (in this example, VCN_OCI_Azure).
Under Resources, click Security Lists, and then click Default Security List for VCN_OCI_Azure.
Add an ingress rule with a source type of CIDR, and enter the CIDR of the Azure VNet subnet (172.16.0.0/24). Specify All Protocols for the IP protocol.
Figure 19: Add an Ingress Rule to the VCN in Oracle Cloud Infrastructure
On the details page of the VCN, under Resources, click Route Tables.
Click Default Route Table for VCN_OCI_Azure.
Add a route rule with the target type Dynamic Routing Gateway and the destination CIDR block of the Azure VNet (172.16.0.0/16). This adds a route table entry for routing the traffic to the VNet.
Figure 20: Add a Route Rule to the VCN in Oracle Cloud Infrastructure
Now that the interconnect is set up, test the connection. Use SSH to connect to the VM in each virtual network, and test the connectivity by doing a basic PING test.
Locate the private IP address of each VM on the details page of that VM.
The private IP address of the Oracle Cloud Infrastructure VM (OCI_Azure_Demo) is 10.0.0.2.
The private IP address of the Azure VM (OCIAzureVM) is 172.16.0.4.
Figure 21: Azure and Oracle Cloud Infrastructure VM Details
From the Oracle Cloud VM, run ping 172.16.0.4. The following screenshot shows a successful test.
Figure 22: Ping Test from the Oracle Cloud VM to the Azure VM
From the Azure VM, run ping 10.0.0.2. The following screenshot shows a successful test.
Figure 23: Ping Test from the Azure VM to the Oracle Cloud VM
The following additional ping results show the latency between the Azure US East region and the Ashburn region in Oracle Cloud Infrastructure, which is about 2 ms!
Figure 24: Latency Test Between Oracle Cloud and Azure
This post explains how to create the interconnect between Oracle Cloud and Azure environments, which enables the VMs to communicate with each other through their private IP addresses as if they were in the same network segment. Furthermore, this cross-cloud direct interconnection between Oracle Cloud and Microsoft Azure enables the following use cases:
Migrate to the cloud or build cloud native applications by using the best of Oracle Cloud and Microsoft Azure.
Set up extremely low-latency, private connections between workloads distributed across Oracle Cloud and Microsoft Azure.
Extend your on-premises data centers to both Oracle Cloud and Microsoft Azure.
Provide single sign-on (SSO) access to resources deployed in Oracle Cloud and Microsoft Azure.
To learn more about the benefits of the Oracle Cloud and Microsoft Azure Interconnect, see the following resources:
Learn about interconnecting Oracle Cloud with Microsoft Azure (Oracle documentation)
Access to Microsoft Azure (Oracle documentation)
Set up a direct interconnection between Azure and Oracle Cloud Infrastructure (Microsoft documentation)