While most companies benefit from migrating on-premises to the cloud, they also save up to 40% in total cost. Due to this, public cloud adoption is on the rise and the worldwide spending on public cloud services is expected to increase in 2019. As more and more companies are opting to migrate their IT infrastructure to the cloud, achieving success is a major concern. However to address this we've come up with a 10 step cloud migration checklist. 

Let's look at the 10 Steps of cloud migration checklist.

1. Establish the migration-architect role

The first step is to establish the cloud migration architect role to lead the migration project. Migration architects will be responsible for planning and assessing all aspects of migration. Their core responsibility includes defining the migration strategies, determining cloud solution requirements, determining priorities and production switchover mechanism. This step is crucial for the success of any cloud migration. 

2. Define your level of cloud integration

There are two ways to migrate your on-premise data center to the cloud - a shallow cloud integration or a deep cloud integration.

Shallow cloud integration also known as lift-and-shift is a method where you move from on-premise to the cloud by making little to no changes. Little changes may include changes to the servers or application changes just to make your on-premise application run in the cloud environment. 

In deep cloud integration, you take key cloud capabilities by modifying the application during the migration process. This includes auto-scaling, load balancing or utilizing serverless technology such as AWS Lamda. It might also include using cloud storage such as Amazon S3 or DynamoDB.

3. Choose a single cloud or multi-cloud

Before migrating your on-premise to cloud, consider whether to choose a single cloud for optimized cloud environment or run your application in a multi-cloud.

The simplest way is to run your applications with a single cloud provider. Here the development teams have set up a single set of cloud APIs to learn, and take advantage of everything that cloud provider has to offer. The disadvantage of this method is that you get vendor lock-in. Once you are cloud locked-in, migrating to a different cloud provider requires just as much effort as the original cloud migration. 

However, this gets more complicated. There are three different models to consider using multiple cloud providers:

One application in one cloud; another application in a different cloud. This is the simplest multi-cloud approach which gives you increased business leverage with multiple cloud providers and the flexibility for where to put applications in the future.

Split your application across multiple cloud providers. This method involves running parts of an application in one cloud provider and other parts of it in another. This approach utilizes the primary advantages of each cloud providers offer. A downside of this method is that the performance of your application depends on both the cloud providers and any issues with either of the cloud provider will impact the performance.

Build your application to be cloud agnostic. Some organizations build their applications to run on any cloud provider. By utilizing this approach you can run applications simultaneously on multiple providers or split your application load across them. This method may complicate your application development and validation process.

4. Establish cloud KPIs

The metrics that are gathered to measure the performance against expectation for your application or service are known as Key Performance Indicators (KPI). You may have already defined KPI metrics in the on-premises, but what about in the cloud? Implementing the best KPIs for the cloud migration show the progress of migration, illuminating visible or invisible problems that may be lurking within your application. Some of the important cloud migration KPIs are:

Implement the KPIs that are effective for the migration process by first determining the category and then the KPIs.

5. Establish performance baselines

This is a process of measuring the current data center performance to compare against the performance after moving to the cloud. Establishing the performance baselines helps you to determine if cloud migration has improved the performance as expected.

Once you decide on the KPIs, go ahead and set the baseline metric and determine how long you're planning to collect the data before migrating. Long baseline period takes more time to collect data, but can provide more representative data. But, small baseline period lets you move faster, but you risk not collecting a representative performance sample.

Depending on your appropriate industry make sure to define which data type you're going to collect and for how long.

6. Prioritize migration components

Before migrating to the cloud, identify the dependency of each component or services and their connections. If your existing on-premise is large and complex use a monitoring application such as New Relic APM that will generate dependency diagrams using service maps. You can use this dependency diagram to determine in which order the components are to be migrated. The best practice is to start with the services that have the fewest dependencies.

7. Perform necessary refactoring

You may have to make some slight modifications to your applications and services before migrating to the cloud so that they work effectively and efficiently in the cloud.

8. Create a data-migration plan

Never underestimate the importance of data migration planning. The trickiest part of data migration is accessing the data while still moving it to the cloud. Moving data to the cloud when the data-access methods still residing in the on-premises can significantly impact performance. Options for data migration include:

  • Using the cloud data migration service offered by cloud providers.
  • Using a bi-directional syncing mechanism between cloud databases and on-premise.
  • Use one-way synchronization between on-premise and the cloud, and allow consumers to connect to the only on-premise data center. Once the data migration is complete, disable access to on-premise so that the cloud becomes the main database.

9. Switch over to production

Depending on the complexity and architecture of an application, there are two common approaches:

  1.  Move a little bit at a time: Move a few customers over to the cloud and perform tests if the application is working as expected. If it is, move a few more customers and re-run the test. Continue this process until all the users have moved to the cloud.
  2. Move all at once: Once your application is moved to the cloud and successfully validated that it works well in the cloud, then switch the traffic from on-premise stack to the cloud stack.

10. Review application resource allocation

Once you've finished migrating everything to the cloud, there are few more tasks to be performed that is resource optimization. The cloud is optimized for dynamic resource allocation. If you allocate resources statically, you're not taking advantage of the cloud's real strength. As you migrate to the cloud, ensure your team has a plan for distributing resources to the application. If there is an additional need for resources to the application in the cloud, one can scale up easily in a moment's notice.