13_1 ‐ Practical Scenario: Migration from OCI to Azure in the Airline Domain - SanjeevOCI/Study GitHub Wiki

Practical Scenario: Migration from OCI to Azure in the Airline Domain


Scenario Overview

An airline company is hosting its flight booking system and customer management platform on OCI. The system includes:

  1. Frontend: A React-based web application for flight booking.
  2. Backend: Python-based microservices for flight search, booking, and payment processing.
  3. Database: Oracle Autonomous Database for transactional data and PostgreSQL for analytics.
  4. File Storage: OCI Object Storage for storing flight schedules, customer documents, and logs.
  5. Key Management: OCI Vault for encryption keys.
  6. Challenges:
    • Limited integration with the airline's existing Microsoft ecosystem (e.g., Azure AD, Office 365).
    • Need for global scalability to support international expansion.
    • Requirement for advanced AI/ML capabilities for personalized customer experiences.
    • Strategic decision to consolidate workloads on Azure for better alignment with enterprise IT strategy.

Reasons for Migration

  1. Integration with Microsoft Ecosystem:
    • The airline uses Azure Active Directory (AAD) for identity and access management and wants to integrate its applications with AAD for Single Sign-On (SSO).
  2. Global Reach:
    • Azure's extensive global presence ensures better performance and compliance in regions where the airline operates.
  3. Advanced AI/ML Capabilities:
    • Azure's Cognitive Services and Azure Machine Learning provide advanced tools for customer personalization and predictive analytics.
  4. Strategic Alignment:
    • The airline has a strategic partnership with Microsoft, offering cost incentives and technical support for migration.

Migration Goals

  1. Seamless Integration: Leverage Azure AD for SSO and role-based access control.
  2. Scalability: Use Azure's global infrastructure to handle seasonal spikes in flight bookings.
  3. Modernization: Adopt Azure PaaS services to reduce operational overhead.
  4. Disaster Recovery: Implement a robust DR solution across Azure regions.

Migration Steps

Step 1: Assessment and Planning

  1. Inventory Assessment:
    • Identify all OCI components: React frontend, Python microservices, Oracle Autonomous Database, PostgreSQL, and Object Storage.
    • Evaluate dependencies between applications, databases, and external systems (e.g., payment gateways).
  2. Migration Strategy:
    • Use Rehost (Lift-and-Shift) for the backend and database to minimize downtime.
    • Use Replatform for the frontend by deploying it on Azure Blob Storage and Azure CDN.
  3. Sizing and Cost Estimation:
    • Use Azure Migrate to assess resource requirements and estimate costs.

Step 2: Infrastructure Setup in Azure

  1. Networking:
    • Create a Virtual Network (VNet) with subnets for frontend, backend, and database layers.
    • Configure Azure Firewall and NSGs for traffic control.
    • Set up VPN Gateway or ExpressRoute for secure connectivity with on-premises systems.
  2. Compute:
    • Deploy Azure Kubernetes Service (AKS) for the Python-based microservices.
    • Use Azure App Service for hosting the React frontend.
  3. Database:
    • Migrate Oracle Autonomous Database to Azure Database for Oracle.
    • Migrate PostgreSQL to Azure Database for PostgreSQL with geo-replication for DR.
  4. Storage:
    • Use Azure Blob Storage to replace OCI Object Storage.
    • Enable Azure Storage Lifecycle Management to optimize costs.
  5. Key Management:
    • Migrate encryption keys to Azure Key Vault.

Step 3: Data Migration

  1. Database Migration:
    • Use Azure Database Migration Service (DMS) to migrate Oracle and PostgreSQL databases.
    • Ensure minimal downtime by using Change Data Capture (CDC) for real-time replication.
  2. File Migration:
    • Use AzCopy to transfer files from OCI Object Storage to Azure Blob Storage.
  3. Application Data:
    • Export application data and configurations from OCI and re-import them into Azure.

Step 4: Application Migration

  1. Frontend:
    • Deploy the React-based frontend on Azure Blob Storage (Static Website Hosting).
    • Use Azure CDN for faster content delivery globally.
  2. Backend:
    • Containerize the Python-based microservices using Docker.
    • Deploy the containers on Azure Kubernetes Service (AKS) for orchestration.
    • Use Azure API Management to expose APIs securely.

Step 5: Testing and Validation

  1. Functional Testing:
    • Test the application end-to-end to ensure all components work as expected.
  2. Performance Testing:
    • Simulate peak booking traffic to validate scalability.
  3. Security Testing:
    • Verify that all security policies (e.g., NSGs, IAM roles) are correctly configured.
  4. Data Validation:
    • Ensure data integrity after migration by comparing source and target datasets.

Step 6: Cutover

  1. DNS Update:
    • Update DNS records to point to Azure Front Door for global traffic routing.
  2. Monitoring:
    • Enable Azure Monitor and Application Insights to track application performance and errors.
  3. Rollback Plan:
    • Keep the OCI environment operational during the initial cutover as a fallback.

Step 7: Disaster Recovery Setup

  1. Cross-Region DR:
    • Replicate Azure Database for PostgreSQL and Blob Storage to a secondary Azure region.
    • Use Azure Traffic Manager for DNS-based failover.
  2. Backup:
    • Enable Azure Backup for regular backups of databases and files.

Step 8: CI/CD Pipeline

  1. Code Repository:
    • Migrate the application code to Azure DevOps Repos or integrate with GitHub.
  2. CI/CD:
    • Set up a CI/CD pipeline using Azure DevOps for automated builds, tests, and deployments.

Outcome

  1. Seamless Integration: The application now integrates with Azure AD for SSO and RBAC.
  2. Scalability: Azure's global infrastructure ensures the application can handle seasonal spikes in bookings.
  3. Modernization: Leveraged Azure PaaS services for better performance and reduced management overhead.
  4. Disaster Recovery: Implemented a robust DR solution with geo-replication and failover capabilities.
  5. Cost Optimization: Reduced operational costs through reserved instances and lifecycle management for storage.

Conclusion

This migration scenario demonstrates how an airline can move its critical systems from OCI to Azure to achieve better integration with the Microsoft ecosystem, global scalability, and advanced AI/ML capabilities while ensuring high availability and disaster recovery.