Preparing to Adopt the Cloud: A 10-Step Cloud Migration Checklist

Step 1: Establish the migration-architect role

Before you begin your cloud migration, establish the migration architect role to lead the effort. The migration architect is a system architect-level position responsible for planning and completing all aspects of the migration; their core responsibility should include defining necessary refactoring required to make the migration successful, designing strategies for data migration, defining cloud-solution requirements, and determining migration priorities and production switchover mechanisms. During the course of a large migration project, there are many decisions and technical plans that must be made, and having a migration architect who is responsible for all aspects of the migration is critical to the success of the project.

Step 2: Choose your level of cloud integration

When you move an application from an on-premise data center to the cloud, there are two ways you can migrate your application — a shallow cloud integration or a deep cloud integration.

Step 3: Choose a single cloud or go multi-cloud

Before you begin your cloud migration, address this question: Do you want to pick a single cloud provider and migrate your application so it runs optimized for that single environment, or do you want your application to run on multiple cloud providers?

Step 4: Establish cloud KPIs

Key Performance Indicators (KPIs) are metrics that you gather about your application or service to measure how it is performing against your expectations. You may already have defined some KPIs for your applications and services, but are they still the right ones for an application or service once it’s in the cloud? The best KPIs for a cloud migration show how your in-progress migration is doing, illuminating visible or invisible problems that may be lurking within your application. Most important, perhaps, cloud migration KPIs can help you determine when the migration is complete and successful.

  • Application/component performance. For example: error rates, throughput, availability, apdex
  • Infrastructure. For example: CPU usage %, disk performance, memory usage, network throughput
  • Business engagement. For example: cart adds, conversions, conversion %, engagement rates

Step 5: Establish performance baselines

Baselining is the process of measuring the current (pre-migration) performance of your application or service in order to determine if its future (post-migration) performance is acceptable. Baselines help you determine when your migration is complete and provide validation of the post-migration performance improvements you expected. You can also refer to baselines during a cloud migration to diagnose any problems that arise.

Step 6: Prioritize migration components

You also have to decide if you will migrate your entire application at once, or if you will migrate it to the cloud component by component or service by service.

Step 7: Perform any necessary refactoring

You may want to do other work on your applications and services before you migrate them so they work as effectively and efficiently in the cloud as possible. For example, you may want to refactor your application:

  • So your resource utilization can better take advantage of dynamic-cloud capabilities, such as the ability to dynamically allocate and de-allocate resources as needed, rather than you statically allocating them ahead of time.
  • To move to a more service-oriented architecture before the migration, so that you can more easily move individual services to the cloud.

Step 8: Create a data-migration plan

Migrating data is one of the trickiest parts of a cloud migration. The location of your data can significantly impact the performance of your application. Moving your data to the cloud when the data-access methods are still primarily on-premises can significantly impact performance. The same holds true if the data is still on-premise but the service accessing it resides in the cloud.

  • Use an on-premise database with one-way synchronization to a cloud-based database, and allow consumers to connect only to the on-premise version. When you’re ready, disable access to the on-premise version so the cloud-based version becomes the main database, and enable cloud-based consumers access to the new database.
  • Use a cloud data migration service, such as those available from Amazon Web Services and Microsoft Azure.

Step 9: Switch over production

When and how do you switch over the production system from the legacy on-premise solution to the new cloud version? The answer depends on the complexity and architecture of your application, and especially the architecture of your data and datastores.

  • Do it a little bit at a time. Move a few customers over, test that things are still working, and then move a few more customers. Continue this process until you’ve moved all your customers to the cloud-based application.

Step 10: Review application resource allocation

Even after you’ve finished migrating everything to the cloud, there are a few more things to consider. Most important is resource optimization. The cloud is optimized for dynamic resource allocation, and when you allocate resources (servers, for example) statically, you’re not taking advantage of the cloud’s strengths. As you move into the cloud, make sure your teams have a plan for distributing resources to your application. When you need to allocate additional resources to an application in the cloud, they are usually available from the vendor in virtually any quantity in a moment’s notice. This means that you can typically trust that you can scale as needed to meet demand, assuming your teams have the application architecture in place to support dynamic scaling.

Other considerations for your cloud migration

The ten steps in this checklist cover a lot of ground, but there are definitely other things you should consider during your cloud migration. Creating and safe and secure cloud environment, for example, is obviously a critical part of any cloud migration. Fortunately, the major cloud providers offer significant tooling and resources to help you build and maintain a secure system.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Lee Atchison

Lee Atchison

Lee Atchison is a recognized industry thought leader in cloud computing and application modernization. leeatchison.com