Monday, February 17, 2025

What are the steps involved in migrating application to cloud?

Below are some of steps which can be taken care while performing any application or database migration in cloud.

  1. Identify Application and Database - Architecture and Flow

    • Check all the on-prem application functionalities

    • Majorly focuses on how the application services seamlessly working

    • Write down the requirement specification to enable decision making to application architect/cloud architect

  2. Identify Application and Database – Coding Complexity

    • Application is designed in old legacy language i.e. cobol, fortran, c, c++, etc.

    • Check the code coverage and code availability and code expertise people availability

    • Consider the complexity of the application code

    • Consider how data communication happens in current application

    • Consider how much security features covered in current application

  3. Discussion – Tech Team / Cloud Vendor

    • Discussion with Tech Team on Application Design and Operations

    • Draw the flow charts and application diagrams accordingly

    • Define time line to make a pilot development and deployment

    • Prepare check list for application and database

    • Identify cloud vendor i.e. AWS, Azure, GCP, OCI, etc. to approach first

    • kick off meeting with cloud vendors and choose which one to go

  4. Discussion – Tech Team/Business Team

    • Meeting with Application/Tech Team Management on finalization of further approach for cloud migration

  5. Finalize – Tech Stack and Operating Model in Cloud

    • Check and compare the cloud vendors Tech Solutions along with Application and Business Teams, in data, infra, reporting, etc. aspects.

    • Consider Tech Solutions based upon your application scalability, complexity, and budget to migrate and operate

    • Consider current Tech Solutions which also provides SAAS Services in cloud and identify their operating/charging model

  6. Finalize – Tech Stack and Operating Model in Cloud

    • Meeting with cloud vendors i.e. AWS, Azure, GCP, OCI, etc.

    • Discuss current application checklist, application flow requirement, budgeting and all other details

    • Ask cloud vendors for their tech solutions - use cases and service model

    • Verified all aspects whether its fulfilled by cloud vendors Tech Solutions or not

    • Identify charging models of cloud vendors, long term or pay per use or any other, carefully understand charging pattern

    • Ideally choose – pay per usage resource charging model

  7. Empower – Tech Team / Migration Team

    • Identify or gather Tech Talent based on Cloud Vendor Tech Solutions and make a migration team responsible for migration in cloud

    • Provide training to inhouse teams on Tech Solutions

    • Partner with Cloud Vendor on training services offered by them to upskill our teams

    • Migration team should have more than 2 Architects (Cloud / On-Prem)

    • Provision a Migration Team Lead to supervise – guide team on migration activities

  8. Standards – Migration/Cloud

    • Validate earlier prepared check list for application and database with cloud

    • Choose Agile/Scrum/Kanban Model to track migration process

    • According to me, big bang approach is not suitable for migration

    • Divide application based on most used to least used functionalities, if possible

    • Leverage any IaC Tool i.e Terraform, OpenTofu, Pulumi, etc.

    • Consider hybrid approach to create Network connectivity, DNS, Load balancing, etc.

    • Security/Identity and Access (IAM) configs and group/pool level access in cloud

  9. Execution – Pilot / POC

    • Perform Pilot / POC with cloud vendor by Migration Team using IaC Tool

    • Test at least 2-3 application flows

  10. Standards – Define Strategies

    • Migration Team responsible for defining Enterprise-wide standards for application/database migration, along with environments to create in cloud

    • Define strategies for load balancing along with Automated Stress Testing along with HA of application/database in cloud

  11. Migrate – Business/Application/Tech/Migration Team

    • Obtain Management Approvals, upon successfully execution of Pilot/POC of the application

    • Migrate other workloads in cloud

    • Create and Validate DEV first, then QA, TEST and PROD will be last with no manual changes allowed in cloud resources

  12. Perform – BACKUP/DR

    • Consider BACKUP and DR as well for Application and Database workloads

    • Define Storage retention policies in cloud

    • Test BACKUP and DR at least once in cloud after every 4-5 Months/ 2-3 times in a year

  13. Optimize – application/database

    • Implement performance optimization techiques, caching, memory storage, etc. at database/application level

    • Increase network bandwidth, machine size, disks, if required

    • Add more metrices to monitor performance