Checklist for Porting an Existing Application to Cloud

 

This sample checklist lists out major tasks required for porting an existing application to the cloud platform. It is based on the following scenario -

 

  • The existing system includes a web based Internet application managed by the application owner ( "owner" ) with an application server, a database server and a web server.
  • The exercise involves porting all of the three-tiered servers to a Platform-as-a-Service (PaaS) cloud provider ( "provider" ) with fully compatible OS and server software.
  • The application owner will have the technical expertise (which can be acquired through outsourcing) to perform the porting.

 

Porting an existing application to cloud normally involves three key steps: (a) Preparation, (b) Migration and (c) Switchover.

During the preparation step, checking and customizations will be required on the environment setup, application configuration and data security settings to ensure compatibility and tighten data security in the cloud environment. The cloud platform will also be configured during this step. Network service settings (such as firewall, load-balancing and other access controls) should be reviewed and updated according to the network connectivity requirements of the cloud provider and also the application owner.

In the migration step, application software and respective data from the latest backup will be migrated to the cloud platform and thoroughly tested to ensure that the application can work under the cloud environment. To facilitate migration, Physical-to-Virtual (P2V) tools can be deployed where applicable to minimize the discrepancy in server configuration setup between the physical and virtual environments. The P2V tools can convert majority of physical machines and third-party clone image formats to virtual machines for working in the cloud. The final switchover date can then be fixed when the migration and testing have been completed.

During the switchover step, the application service will often need to be suspended (or frozen) for a short period during which the last minute production data will be copied to the cloud platform. Subsequent access to the application will be switched to the cloud platform and the whole porting process will then be completed.

The major tasks for porting to the cloud platform will basically be the same for both development and production sites. Porting of development site should be conducted first so that the experience gained can be used to enable a smoother porting of production site and minimize the risks.

 

Checklist of Major Tasks

 

Preparation Responsible Parties
1. Ensure that domain names (instead of absolute IP addresses) are used for the key components (e.g. DB connection) if possible. [In many cases the IP addresses of the destination site will be different from the source site.] Owner
2. Ensure proper value for DNS refreshing interval is set. Owner
3. Ensure database schemas in development and production are synchronized. Owner
4. Setup and configure the server and network environment on the cloud platform (e.g. firewall rules, load-balancing setup, API or web service libraries, DB connections, etc.). Provider / Owner
5. Prepare a testing plan for verification of the system healthiness after migration and switchover, and a fallback plan for handling exceptions. Owner
Migration Responsible Parties
1. Disable server routine jobs (e.g. cron jobs) on the existing system (can be resumed after migration steps 2-4 below). Owner
2. Perform P2V conversion and migration of applicable components (e.g. application server programs). Provider / Owner
3. Migrate database data from the existing system to the cloud platform. Owner
4. Migrate static web content from the existing system to the cloud platform. Owner
5. Fine-tune application configurations (e.g. amending startup scripts / configurations to use new IP addresses) and verify the connectivity between various server tiers. Owner
6. Conduct testing (according to the test plan) to ensure that the cloud platform is ready. Provider / Owner
Switchover Responsible Parties
1. Hoist a maintenance page on current and cloud platforms (if necessary). Owner
2. Confirm that the existing system can be stopped (e.g. confirm that all outstanding batch jobs have been completed and the outstanding working files have been cleared up on the application server). Owner
3. Stop the current application and database servers. Owner
4. Migrate the last minute changes of static web contents, and working files on application server (if any) from the existing system to the cloud platform. Owner
5. Migrate last minute database data from the existing system to the cloud platform. Owner
6. Verify and confirm migrated data. Owner
7. Perform testing (according to the test plan) on the migrated application. Provider / Owner
8. Confirm cloud platform is ready for switchover. Provider / Owner
9. Switch public DNS entries from the existing system to the cloud platform. Owner
10. Enable server routine jobs (e.g. cron jobs) on the cloud platform. Owner
11. Confirm that applications have successfully migrated to the cloud platform (according to the test plan). Provider / Owner
12. Remove maintenance page on the cloud platform (if hoisted). Owner
13. Decommission the existing system after completing the reliability test of the cloud platform for a preset period of time. Owner

 

 

Sample Test Plan

 

Areas of Testing Applicable for
1.

Compatibility test

  • Verify the support of the required libraries and APIs (if any) under the cloud platform.
Preparation
2.

Network connectivity test

  • Verify the connectivity between client computers and web servers, web servers and application servers, and application servers and database servers, etc.
Migration / Switchover
3.

Functional test

  • Verify against the system specifications or requirements on functionality.
  • After completing a full functional test during the Migration, user may consider conducting a smaller-scale testing after Switchover.
Migration / Switchover
4.

Performance and Load test

  • Verify that the required performance of the application can be achieved under the prescribed workload.
  • Tune the performance against the required service levels.
Migration / Switchover
5.

Failover test

  • Verify the resilience functions of databases servers cluster, application servers, web servers, global load balancer, etc.
Migration / Switchover
6.

Stress and Elasticity test

  • Determine the ability of application to maintain its stability under excessive stress.
  • Verify the elasticity of the cloud platform under extreme workloads.
Migration
7.

Security Risk Assessment and Audit (SRAA)

  • Assess the vulnerability of the application and cloud platform.
Migration / Switchover

 

 

 

 

Back Top