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.