32_Complete Migration steps explanation - SanjeevOCI/Azure GitHub Wiki
OCI to Azure Migration β Short Interview-Ready Version
I led the migration of a core application from OCI to Azure to standardize platforms and leverage Azure-native integration and security. We used ExpressRoute private peering to connect OCI to Azureβs Hub VNet, where traffic was routed through a Palo Alto Firewall and Application Gateway before reaching the appropriate tier in a Spoke VNet (web, app, DB).
I designed the network and infrastructure using modular Terraform code, stored and version-controlled in GitHub. Existing resources were imported into Terraform state; new ones were created as needed. The workflow included terraform init
, plan
, and apply
, followed by DevOps review and CI/CD integration in Azure DevOps.
This approach ensured secure, automated, and auditable infrastructure provisioning, with clear network segmentation and governance between OCI and Azure.
πΉ OCI to Azure Migration β Realistic Interview Narrative
I led a critical migration from Oracle Cloud Infrastructure (OCI) to Azure for a core application called CSL Services, which handled customer loyalty and partner transactions. The migration was driven by a business requirement to standardize platforms, improve integration with Microsoft 365, and leverage Azure-native monitoring and security.
Network & Traffic Flow
- Traffic Origin: OCI, with ExpressRoute configured for private peering to Azure.
- Entry Point: Traffic entered Azure through the Virtual Network Gateway in the Hub VNet.
Hub VNet Design (Subnets):
- GatewaySubnet: For the ExpressRoute/VPN Gateway.
- FirewallSubnet: Deployed a Palo Alto Firewall for traffic inspection.
- AppGatewaySubnet: Hosted the Application Gateway.
- NATSubnet: Used for outbound traffic via NAT Gateway.
Spoke VNet Design (3-Tier Model):
- WebSubnet: Frontend VMs.
- AppSubnet: Mid-tier logic VMs.
- DBSubnet: Backend database connectivity.
Traffic Path
- Traffic from OCI entered the GatewaySubnet.
- Inspected by the Palo Alto Firewall in the FirewallSubnet.
- Passed through the Application Gateway for SSL termination and path-based routing.
- Routed to the appropriate tier in the Spoke VNet (Web, App, or DB).
- Custom UDRs managed all traffic paths.
- NSGs were configured to allow only required ports (e.g., 443, 22, 1433) per subnet.
Infrastructure as Code & DevOps
- Terraform was used for designing and implementing the entire structure.
- Modular Terraform code was created and stored in a GitHub repository with version control and SSH key-based access.
- The repo was structured into folders:
network
,compute
,storage
, andsecurity
for clarity and modularity. - Existing resources were imported into Terraform state; missing resources were created from scratch.
- This migration was a mix of greenfield design in Azure and brownfield discovery from OCI.
Terraform Workflow
terraform init
β Initialize the working directory.terraform plan
β Validate the blueprint.terraform apply
β Deploy the infrastructure.git push
β Push code back to the repo for DevOps review and approval.- Integration into the CI/CD pipeline via Azure DevOps for further validation and deployment.
Outcome
- Achieved secure, automated, version-controlled infrastructure provisioning.
- Ensured seamless network integration between OCI and Azure.
- Maintained full visibility and governance through the DevOps pipeline.