Before delving into Part 2 of 'Cloud Migration Done Right,' take a moment to recap Part 1. This blog centers around the must-haves, analysis, and intelligent planning to kickstart your Cloud migration journey for your enterprise or applications. It will now move on to the following steps, assuming all foundational activities are in place. Get ready for the next phase of your Cloud migration journey!
The next crucial stride for a seamless Cloud migration journey involves initiating the Proof of Concept (POC) phase—an integral step. It's wise to steer clear of direct migration without comprehensive insights into the Cloud infrastructure's functionality, compatibility, performance, infrastructure flexibility, and potential cost efficiencies for your enterprise or applications. A well-executed POC empowers you with ample data points, enabling an informed decision-making process. This assessment ensures that the Cloud infrastructure harmonizes with your business requirements and objectives. You're poised to strategize and execute a full-fledged migration plan upon successful evaluation.
Proof of Concept analysis
In this strategic phase, delineate your chosen Cloud services, precise instances, and required capacity. Delve into the potential advantages of leveraging cloud-native offerings for optimal alignment with your application(s) requirements. Ensure comprehensive cost projections and have a well-defined Reference Architecture in place, primed to facilitate the seamless integration between on-prem and Cloud environments.
Cloud services mapping
Each hardware and software component your application(s) uses at an on-prem data center, like DNS, Load Balancer, Scheduler, Caching, Virtual Machines, Network Storage, Encryption, Database, App Servers, Messaging, etc., would have a corresponding service on the Cloud. Each provider would have their terminologies, and it's essential to understand all these services from the Cloud Provider you have chosen. Once you know these requisites, map each service to your current on-prem setup and create a list of Cloud services you would need for your application(s).
There could be various components your application(s) relies on, like an Application Server, Database, Web Server, VMs for some third-party software, etc. First, start with your current on-prem production environment and list the capacity of infrastructure it uses for various components. Once you have the present ability for your production environment, conduct a capacity assessment for the Cloud by working with professional support teams. You can easily select the environment that best suits your POC goal. In this context, we mean a production-like setting for conducting performance assessments within the POC.
Cloud-native offerings assessment
You'll encounter diverse Cloud-native services throughout the infrastructure assessment, such as Database-as-a-Service and App Server-as-a-Service. Scrutinize their relevance, compatibility with your application(s) software ecosystem, and supportability. During a lift-and-shift of your existing application, exercise prudence by minimizing variables. Commencing with fundamental Cloud infrastructure for the initial deployment is prudent. Subsequently, with your application(s) established on the Cloud infrastructure, you can systematically migrate individual components to Cloud-native services as needed.
Once the assessment of cost and Cloud services are in place, it's time to carry out cost estimates of the environment for the POC. While building the POC for the environment, work with the identified Cloud provider to develop estimates for all the services you would need for the POC. Cloud providers often extend POC grants for their infrastructure. Remember to engage with the provider when estimating costs and factor in this possibility.
In this phase, it's time to put everything into a reference architecture to see how your application(s) will look and work on the Cloud infrastructure. After drafting the reference architecture, gather input from internal stakeholders, vendor partners, and Cloud partners. Essential connectivity between on-prem data centers and Cloud hinges on vital services from providers. Existing Cloud-based applications in your enterprise often foster this linkage. If absent, collaborate with networking and security teams to establish this essential connection.
Data flow diagram
It is essential to detail the Data Flow diagram for your application(s) and to explicitly call out how the handshakes will happen between on-prem applications and your application(s) on the Cloud. Every aspect of how the data will flow, security standards, encryptions, etc., must be addressed.
Once the POC analysis is in place with all the groundwork, it's time to execute the POC by setting up a clear plan with objectives. After completing the POC, gather findings, match them with goals, and share them with stakeholders.
- Setting objectives
Start by defining clear POC goals. For instance, assess the Cloud infrastructure's performance and cost for your application(s) without affecting functionality. Enumerate desired tests for evaluations and corresponding deliverables.
- Planning and execution
Once the POC's objectives are set, create a clear execution plan and identify the resource capacity required to perform the POC. Make cost estimates for the support resources within your enterprise and across vendors and submit them for approval. Once the cost is approved, carry out all the planned POC tests. It will take more than a straightforward outcome. You should expect challenges as it's the first time your application(s) will be deployed on the Cloud infrastructure.
- Evaluate and compile benefits
Once the execution of POC tests is complete, compile all results into categories of your previously set objectives. For instance, assemble all the performance results and the actual POC test cost. Prepare a deck or a document comparing the performance and functional results with an on-prem setup. Include the cost estimates for both on-prem and Cloud infrastructure and the environment capacity.
- Discuss the POC results
Engage all stakeholders and discuss the POC results on various parameters. Ensure to include networking, infrastructure, platform, server engineering, business stakeholders, application teams, etc. Stay prepared to resolve multiple queries and know all the details of the POC to be shared with various teams.
Once the POC is successfully executed and the results are socialized with all stakeholders, it's time to start assessing the complete migration of your application(s). This part will be simpler than POC as most of the pathway has been laid out.
- Evaluate POC results
The POC results could lead to one of these decisions:
a) Migrate all the environments of the application(s) to the Cloud
b) Migrate some of the environments to the Cloud and leave some on-prem
c) Do not migrate to the Cloud; on-prem might still be the best solution
Once a path is chosen and approved, start a detailed assessment. We will now select option (a), where the results favor migrating all environments to the Cloud.
- Assessment for full implementation
Carry out a capacity assessment for each environment to be migrated and all the associated components, including Load Balancer, DNS, LDAP, etc. Once all the components and capacities are assessed, conduct a cost assessment for the Cloud services and the human effort required for migration.
- Hardening architecture
Revisit the POC's reference architecture and Data Flow diagram and adjust as needed. Review the full view of the architecture and design with technical stakeholders from all teams, including networking, server engineering, infrastructure, platform, application teams, etc.
Once the full migration assessment is in place and the budget is approved, it's time to kick off the planning and execution phase.
- Implementation planning
Put together a detailed implementation plan for migrating all the environments to the Cloud from on-prem. It's vital to ensure that the functional changes and releases planned for the application(s) have a minimal impact due to this migration.
- Implementation execution
Avoid migrating all environments simultaneously, which can jeopardize the project. Begin with a lower development environment, then progress to QA after migration. After each migration, ensure thorough validation and sign-off from upstream and downstream applications and users.
For the final production environment, devise a detailed plan and derive the downtime required to switch. To minimize downtime, build the production environment on the Cloud first and ensure everything works as expected, including connections, access, etc. It's essential to have a thorough backout plan if a rollback is required due to unforeseen situations.
Carry out parallel executions and keep the data in sync with on-prem production and Cloud by running all the processes and the latest data on the Cloud. Compare results to make sure both are similar. Once the results of the parallel tests are satisfactory, execute cutover, switch entirely to a Cloud-based production environment, and shut down on-prem production.
- Evaluate benefits and socialize
Once the cutover to Cloud Migration is complete, monitor for a few weeks and collect all metrics required to support the objectives. For example, gather performance data for batch, real-time, and near-real-time transactions of your application(s). Create a comparison slide/deck. Do the same for the monthly costs of Cloud infrastructure, comparing it to on-prem expenses. While not a direct match, these metrics provide insights into Cloud benefits beyond flexibility and maintenance advantages.
Executing Cloud Migration is a substantial endeavor, encountering varying degrees of resistance across different organizations. Irrespective of the degree of Cloud adoption, this strategic approach guarantees the following:
- Enlightening stakeholders on its advantage
- Engaging and uniting teams
- Collaborating with the product and Cloud partners
- Initiating with a POC
- Proceeding with full-scale migration
Prabhu R Chennupati
Enterprise Consulting Architect
With over two decades of experience spanning enterprise architecture, data and solution architecture, strategic planning, and delivery leadership, Prabhu has significantly guided CDO organizations to develop data architecture strategies and roadmaps for diverse clients.