Migration Strategies
Migration Strategies
Migration Strategies
A well-aligned migration strategy, with a supporting business case and a well-thought out
migration plan, sets the proper groundwork for cloud adoption success. One critical aspect of
developing your migration strategy is to collect application portfolio data and rationalize it into
what we refer to as the 6 R’s: Re-host, Replatform, Re-factor/Re-architect, Re-purchase, Retire,
and Retain.
Some customers prefer to do this manually as they learn how to apply their legacy
systems to the new cloud platform. Applications are easier to optimize/re-architect once
they’re already running in the cloud. Partly because your organization will have
developed the skills to do so, and partly because the hard part—migrating the application,
data, and traffic—has already been done.
As the name suggest this approach involves taking the existing architecture from on premise
storage and moving it to cloud storage with minimal changes to the application using mainly
Infrastructure as a Service model (IaaS). This method is mainly implemented as a stepping stone
to go cloud native, the advantages of lift and shift are; it’s fast, minimal down time and it’s
inexpensive when compared with redesigning or rebuilding the architecture. The disadvantages
are that the application are not optimized to utilize cloud to the fullest, thus not achieving
maximum possible performance, also a great deal of planning is required before initiating the
migration process and tools like CloudFormation, OpsWorks or Cloud Adoption Readiness Tool
(CART) can be used to judge cloud readiness.
Re-platform (Referred to as “lift, tinker, and shift.”)
Make a few cloud optimizations to achieve a tangible benefit. You will not change the
core architecture of the application. For example, reduce the amount of time you spend
managing database instances by migrating to a database-asa-service platform like
Amazon Relational Database Service (Amazon RDS), or migrating your application to a
fully managed platform like AWS Elastic Beanstalk.
A large media company migrated hundreds of web servers that it ran onpremises to
AWS. In the process, it moved from WebLogic (a Java application container that requires
an expensive license) to Apache Tomcat, an open-source equivalent. By migrating to
AWS, this media company saved millions of dollars in licensing costs and increased
savings and agility.
Re-factor / Re-architect
Re-imagine how the application is architected and developed using cloud-native features.
This is driven by a strong business need to add features, scale, or performance that would
otherwise be difficult to achieve in the application’s existing environment. Are you
looking to migrate from a monolithic architecture to a service-oriented (or server-less)
architecture to boost agility or improve business continuity? This strategy tends to be the
most expensive, but it can also be the most beneficial if you have a good product-market
fit.
Re-purchase
Move from perpetual licenses to a software-as-a-service model. For example, move from
a customer relationship management (CRM) to Salesforce.com, an HR system to
Workday, or a content management system (CMS) to Drupal.
Retire
Remove applications that are no longer needed. Once you have completed discovery for
your environment, ask who owns each application. As much as 10%-20% of an enterprise
IT portfolio is no longer useful and can be turned off. These savings can boost your
business case, direct your team’s attention to the applications people use, and reduce the
number of applications you have to secure.
Retain (Referred to as re-visit.)
Keep applications that are critical for the business but that require major refactoring
before they can be migrated. You can revisit all applications that fall in this category at a
later point in time.
Figure 1:
Methodology
Change web servers and admin server to General Purpose EC2 using reserved instances and the
test server to EC2 spot instance. The web servers are load balanced by an Elastic Load Balancer
(ELB) using active-passive configuration and sticky sessions. The data base is also stored in
reserved EC2 instance optimized for storage and its snapshots (backups) are saved in a S3 bucket
along with the static website content while DNS is serviced using Route 53. The EC2 used for
data base can be replicated in multiple AZ to ensure fault tolerance. When comparing this
architecture against the draw backs stated for on-premise architecture, it doesn’t solve most of
the issues, hence a re-engineering approach is required to convert web-app to cloud native
architecture.
Re-Engineering
As stated above, lift and shift is mainly used as a stepping block to a more cloud native
architecture by redesigning, this will allow the application to use AWS services to the fullest
maximizing performance while returning the most value for expenses. Below shows an example
of re-engineering approach
References
https://aws.amazon.com/blogs/enterprise-strategy/6-strategies-for-migrating-applications-to-the-
cloud/