13 ‐ Practical Scenario: Migration from OCI to Azure - SanjeevOCI/Study GitHub Wiki

Practical Scenario: Migration from OCI to Azure


Scenario Overview

A financial services company was hosting its trading application on OCI. The application included a React frontend, Python microservices backend, and a PostgreSQL database. While OCI provided cost-effective infrastructure, the company decided to migrate to Azure due to strategic and operational requirements.


Details of the Migration

1. Business Requirement

  • The company had recently adopted Microsoft 365 and Azure Active Directory (AAD) for identity and access management across the organization.
  • They wanted to integrate their trading application with AAD for Single Sign-On (SSO) and centralized identity management.
  • Additionally, the company planned to modernize its application using Azure PaaS services to reduce operational overhead.

2. Technical Challenges on OCI

  • Limited Integration: OCI lacked native integration with Microsoft 365 and AAD, which was critical for the company's IT strategy.
  • Application Modernization: OCI's PaaS offerings were not as mature as Azure's, making it harder to adopt serverless and containerized architectures.
  • Global Expansion: The company planned to expand its services to regions where OCI had limited availability compared to Azure's global footprint.

3. Migration Goals

  • Seamless Integration: Leverage Azure Active Directory for SSO and role-based access control (RBAC).
  • Modernization: Migrate to Azure App Service and Azure Kubernetes Service (AKS) for backend microservices.
  • Scalability: Use Azure Front Door and Azure Load Balancer for global traffic distribution and high availability.
  • Disaster Recovery: Implement Geo-Replication for the PostgreSQL database using Azure Database for PostgreSQL.

Migration Process

Step 1: Assessment

  • Conducted a cloud readiness assessment to evaluate the existing OCI architecture.
  • Identified dependencies, including the React frontend, Python microservices, PostgreSQL database, and object storage.

Step 2: Infrastructure Setup in Azure

  • Created a Virtual Network (VNet) with subnets for frontend, backend, and database layers.
  • Deployed Azure App Service for the React frontend and AKS for the Python microservices.
  • Set up Azure Database for PostgreSQL with geo-replication for disaster recovery.
  • Configured Azure Blob Storage to replace OCI Object Storage for file storage.

Step 3: Identity Integration

  • Integrated the application with Azure Active Directory for SSO and RBAC.
  • Migrated user roles and permissions from OCI IAM to Azure RBAC.

Step 4: Data Migration

  • Used Azure Database Migration Service (DMS) to migrate the PostgreSQL database from OCI to Azure.
  • Transferred files from OCI Object Storage to Azure Blob Storage using AzCopy.

Step 5: Testing and Validation

  • Performed end-to-end testing to validate application functionality, performance, and security.
  • Conducted load testing to ensure the application could handle 10,000+ hits per day.

Step 6: Cutover

  • Updated DNS records to point to Azure Front Door for global traffic routing.
  • Decommissioned OCI resources after successful migration.

Why the Migration Was Done

1. Integration with Microsoft Ecosystem

  • The company needed seamless integration with Azure Active Directory for SSO and centralized identity management, which OCI could not provide natively.

2. Application Modernization

  • Azure's PaaS offerings (e.g., App Service, AKS) allowed the company to modernize its application architecture, reducing operational overhead and improving scalability.

3. Global Reach

  • Azure's extensive global presence ensured better performance and compliance for the company's planned expansion into new regions.

4. Disaster Recovery

  • Azure's geo-replication capabilities for PostgreSQL and Blob Storage provided a robust disaster recovery solution, which was easier to implement compared to OCI.

5. Strategic Alignment

  • The company had a strategic partnership with Microsoft, which included discounts and incentives for migrating workloads to Azure.

Outcome

  • The migration resulted in:
    • Improved operational efficiency through Azure PaaS services.
    • Enhanced security and compliance with Azure Active Directory integration.
    • Better scalability and performance due to Azure's global infrastructure.
    • Cost savings through reserved instances and Microsoft partnership incentives.

Conclusion

This migration scenario highlights how business requirements, technical limitations, and strategic alignment can drive a decision to migrate from OCI to Azure, even when OCI is more cost-effective.