DEV Community

Olawale Adepoju for AWS Community Builders

Posted on • Edited on • Originally published at dev.classmethod.jp

Cloud Migration Strategies

What is Cloud Migration

Cloud Migration is the process in which an organization moves its’ data center capabilities into the cloud. Typically it operates on the cloud-based offered by a cloud service provider such as AWS, Google Cloud, or Azure.

Cloud Migration is an iterative process of reducing costs and reaching the full potential of the cloud. The cloud, on the other hand, can support high scalability, performance, agility, and cost-efficiency through flexible expenditure and pricing models.

Several companies have already moved to the cloud, therefore giving chances to cloud migration within the cloud. Companies can migrate between different cloud providers(cloud-to-cloud migration).

Cloud Migration process

Your migration path to the cloud depends on the size and complexity of your environment. The steps are as follows:

  1. Planning your migration: before migrating to the cloud, there must clear understanding as to why you are moving to the cloud and which strategy will be best for the migration.
  2. Choosing your Cloud Environment: Having had the vision needed to attain a successful cloud migration, you need to choose the type of cloud model you want to adopt. Regardless of whether you go with Public Cloud, Hybrid Cloud, Private Cloud, it’s determined by your current and future needs.
  3. Migrating your apps and data: After accurate planning, the actual migration should be smooth. However, keeping the cloud security challenges in mind, such as adhering to securities policies and planning for data backup and recovery.
  4. Continuous Operation: A cloud migration cannot be said to be successful without proof that it works as expected. A continuous operation is expected for the migration to keeps the system.

Cloud Migration Strategy

A cloud migration strategy is a high-level plan that an organization implements to migrate existing on-premises and/or co-located application workloads and their related data to the cloud. The majority of plans incorporate a public cloud migration strategy with Amazon Web Services (AWS), Google Cloud Platform (GCP), Microsoft Azure, or other public cloud providers as the goal. Although cloud migrations will help the majority of workloads, not all workloads are viable for migration.

An effective cloud infrastructure migration strategy will prioritize workloads for migration, determine the best migration plan for each workload, design a pilot, test it, and adapt the strategy based on the results of the pilot. A cloud migration strategy document should be developed to guide teams through the process and to allow for rollback if necessary.

The 6 R’s of Cloud Migration Strategy

There are mainly six common strategies used when talking about migrating to the cloud. The Gartner group identified five cloud migration techniques knowns as the 5R’s that provided insight for defining cloud migration strategy in the early stage of public cloud adoption. With the advent of time, the strategy has evolved into six.

These six strategies are commonly referred to as the 6R’s:

  • Rehost
  • Replatform
  • Refactoring
  • Repurchase
  • Retain
  • Retire

In Cloud Migration there is no one-fit-all solution, every migration is unique and has its own solution.

Rehost: commonly referred to as lift and shift, is a method used while moving servers or applications from their present hosting environment to a public cloud infrastructure. It is a common practice for organizations that are just beginning their migration journey.
For example, an on-premise Oracle database wants to be moved to an EC2 instance AWS cloud, then reposting can be considered. It is one of the quickest and easiest cloud migration strategies that move data without code-level changes.

Its use cases are:

  • New to the cloud
  • Migration with time constraints
  • Large-scale enterprise migration

Replatforming: this is called lift, tinker, and shift, it is a modified version of rehosting. Replatform allows you to make a few configurational changes to the apps to suit the cloud environment without changing their core architecture. This strategy is frequent in situations when the developer wants to change the way the application interacts with the database so they can run on managed platforms like Amazon RDS.

Its use cases are:

  • Shorter migration timeline
  • Migrating complex apps with minor changes to avail cloud benefits
  • Leveraging benefits of the cloud without refactoring the app.

Refactoring/ Re-architecture: this strategy involves re-writing your applications from scratch to make them cloud-native. It allows you to realize the full potential of cloud-native technologies like microservice architecture, Serverless, containers, function-as-a-service, and load balancers. The refactored applications are scalable, agile, efficient, and return ROI in the long run.

This approach is the most expensive, resource-intensive, and time-consuming compared to the others but will prove most worthy in the long run.

Its use cases:

  • The application will gain most from the cloud
  • There is a strong business drive to add scalability, speed, performance
  • An on-premise app is not compatible with cloud

Repurchase: Also called “drop and shop” strategy. This refers to the decision to move to another vendor software, which sometimes means ending existing licensing and repurposing services on a new platform. It can be moved to a SaaS application with the same capabilities.

For example, moving from on-premise CRM to salesforce.

Its use cases are:

  • You’re replacing software for standard functions like finance, accounting, CRM, HRM, ERP, email, CMS, etc.
  • A legacy app is not compatible with cloud

Retain: During a cloud migration process, you may want to retain portions of your IT infrastructure. Some applications are more suitable to on-premise arrangements or have been recently upgraded and need to be retained. In other words, applications are retained due to latency requirements, compliance, regulatory constraints, or it’s not cost-efficient. Retaining is often used in hybrid cloud deployment by organizations to ensure business continuity during large-scale migrations that take several years

Its use cases:

  • You adopt a hybrid cloud model during migration
  • You’re heavily invested in on-premise applications
  • A legacy app is not compatible with the cloud and works well on-premise applications
  • You decide to revisit an app later

Retire: With the 'retire' strategy, you get rid of assets that are no longer necessary or useful for your IT infrastructure. If it is determined that a program is not worth transferring to the cloud, it can be removed or scaled back. It enables you to investigate all of your apps in terms of their usage, dependencies, and overall cost to the firm.

Though it may appear simple, decommissioning apps is a difficult process that is crucial in determining which apps to retire. It should be done early in the planning process so that crucial apps or services may be migrated, the scope of applications to migrate is reduced, and resources are saved.

Its use cases:

  • Archive applications that contain useful data.
  • Retire applications with duplicate capabilities to save costs.
  • Retire apps whose functionality can be added to another through microservices.

Image description

Top comments (0)