From ‘Lift & Shift’ to ‘Land & Stand’ Pt. 2

From ‘Lift & Shift’ to ‘Land & Stand’ Pt. 2

Un-Strand your Workloads (Part 2)


In last week’s post on the challenges and frustrations enterprises have encountered with early moves to cloud, we covered some of the factors that organizations have encountered in their workload migration efforts. (See Lift & Shift to Land & Strand https://www.linkedin.com/pulse/lift-shift-land-strand-robert-erickson-gvjyc/)

In the discussion, we held that organizations initially ‘lifted and shifted’ workloads into cloud environments (not addressing application architecture or structure) for two primary reasons:

  1. The pressing need to move out of a traditional/legacy environment, such as a data center.  This was especially the case during the pandemic period where enterprises were under duress and sought flexible, digital access to workloads for access, scalability and financial reasons.
  2. The lack of understanding or sophisticated maturity in use and application of cloud infrastructure and cloud native benefits and capabilities.

Today, many enterprises find they have moved the workloads to cloud, but are increasingly faced with performance issues, barriers to new cloud capabilities due to legacy application architecture, financial over-runs and significant technical debt where they lack the budget and/or skills to address.

In short, these organizations find themselves ‘Stranded’ between legacy IT and modern Cloud capabilities.

Working with hundreds of enterprises, we have generally found that three patterns that provide a path forward:


Pattern 1 – Optimize:  Optimizing Workloads through Refactoring and/or Replatforming. In this pattern, enterprises are seeking to improve their technology lot through lift, tinker, and shift actions, that is ‘just enhance it’.  This is the focus of this posting.  I call this pattern the ‘Un-stuck yourself’ pattern.

Pattern 2 – Enhance:  Repurchasing and/or Retiring Workloads (Part 3, coming post).  In this pattern, the enterprise seeks to ‘replace’ a workload by finding an alternative provider, such as a SaaS application, and retiring the existing workload.  (Part 3, coming post).  I refer to this pattern as ‘We are going to need a different boat pattern.’

Pattern 3 – Reinvent: – In the Reinvent pattern, organizations are fundamentally and deeply considering the need and purpose of the workload, the business processes, partnerships and, yes, the application(s) from the ground up.  Often, there is a desire to leave behind business as usual or business as envisioned and ‘leap forward’ by re-envisioning how the business will work, perhaps serverless with AI-based engagement for example.  I describe this pattern as “Do I even need a boat?  just take a plane” (Part 4, coming post)

So, let’s dig deeper into the Optimize pattern to illustrate what this pattern includes, when it should be considered and some of the trade-offs that enterprises might encounter.

In today’s rapidly evolving digital landscape, organizations are constantly seeking ways to enhance their applications’ performance, scalability, and maintainability. One of the key strategies in application migration involves either replatforming or refactoring applications to modernize and optimize them for the cloud, new environments, or a more robust infrastructure. But what exactly do replatforming and refactoring mean, and how do they fit into the larger picture of application migration?

Application migration refers to the process of moving an application from one environment to another. This could mean moving from on-premises data centers to the cloud, shifting from one cloud provider to another, or upgrading to a more modern version of an application. However, migration isn’t just about moving an app—it’s about optimizing it for the new environment, making sure it performs better, scales more easily, and is easier to maintain.

Two of the most common strategies for optimizing applications during migration are replatforming and refactoring.


Replatforming, often referred to as “lift and shift with optimization,” is the practice of moving an application from one environment to another, with minimal changes, but taking advantage of specific features or capabilities of the new platform to improve performance, security, or scalability.

  • Minimal Code Changes: The primary focus of replatforming is to make fewer changes to the application itself. Instead of rewriting entire sections of code, the goal is to modify the app just enough to make it compatible with the new platform or infrastructure.
  • Leveraging Cloud-Native Features: In cloud migrations, replatforming allows businesses to take advantage of cloud services like auto-scaling, database management, and integrated security features without having to re-engineer the entire app.
  • Increased Flexibility: Replatforming can help businesses migrate quickly to the cloud or new platforms while introducing necessary optimizations that ensure the app runs efficiently.
  • You need to migrate quickly and can’t afford a complete rebuild.
  • You want to modernize your infrastructure without disrupting the app’s core functionality.
  • The application is relatively well-designed and doesn’t need major structural changes to perform in a new environment.
  • Your application is using outdated infrastructure, and you want to leverage modern cloud features without altering much of the application itself.

Example: If your organization is running an e-commerce application on legacy servers and decides to move to AWS, replatforming might involve transferring the app to AWS EC2 instances, making small changes to optimize it for the cloud environment (like adding auto-scaling capabilities), and replacing old databases with cloud-native alternatives (such as Amazon RDS or DynamoDB).


Refactoring, on the other hand, involves a deeper transformation of the application code itself. It is a more extensive process than replatforming and typically requires significant changes to the underlying architecture and codebase to improve performance, scalability, maintainability, or functionality.

  • Code Rewriting: Refactoring often involves re-architecting and rewriting parts of the application to align with modern practices, such as microservices, serverless computing, or containerization.
  • Improving Performance and Scalability: The goal of refactoring is to ensure the application is optimized for the future. It may involve redesigning parts of the system to make it more modular, introducing better data management practices, or improving user experiences.
  • Technical Debt Reduction: Refactoring is an opportunity to eliminate legacy code, outdated frameworks, and inefficient practices that slow down the app’s performance or make it hard to maintain.
  • You need to future-proof your application to handle new business needs or scale.
  • The application is poorly designed or has accumulated significant technical debt that hinders performance and growth.
  • The current architecture doesn’t support modern technologies, such as cloud-native solutions, microservices, or containers.
  • You’re looking to improve both the user experience and back-end performance for long-term sustainability.

Example: Suppose your application is a monolithic platform with tight dependencies between its various components. Moving it to the cloud with replatforming may not bring the benefits you’re seeking if the app doesn’t scale well or is hard to maintain. In this case, refactoring might involve breaking the monolith into microservices, moving from a traditional database to a distributed one, and optimizing the app to take full advantage of modern cloud capabilities, like container orchestration with Kubernetes.

FactorReplatformingRefactoring
Scope of ChangeMinimal, with some tweaks for optimization.Major codebase and architectural changes.
Time to ImplementFaster, as fewer changes are required.Longer, as significant work is involved.
CostLower, due to fewer changes and quicker migration.Higher, due to development, testing, and deployment efforts.
RiskLower risk, as functionality stays mostly intact.Higher risk, as changes may impact existing functionality.
Future ScalabilityImproved, but not a long-term solution for growth.Optimized for future scalability and agility.
SuitabilitySuitable for quick migration and cloud optimization.Best for applications that require a significant overhaul for long-term sustainability.

The decision to replatform or refactor depends on several factors, including the business goals, the current state of the application, and the desired outcome:

  • Choose Replatforming if your priority is speed and minimizing disruption, and the application doesn’t require a complete overhaul. This is especially useful for businesses that need to modernize their infrastructure but are not ready to invest in a large-scale redevelopment effort.
  • Choose Refactoring if the application’s architecture is outdated, your business requires scalability, or the app has accumulated technical debt that needs to be addressed for future growth. While this approach takes more time and resources, it sets your application up for long-term success.

Replatforming and refactoring are powerful strategies in the application migration process, each serving different purposes and delivering distinct advantages. Replatforming offers a quicker, less intrusive path to modernization, while refactoring provides the opportunity to completely optimize an application for future needs. Understanding the unique requirements of your organization and application will help guide the decision-making process, ensuring you select the most appropriate strategy to meet both immediate and long-term goals.

No matter which routes you choose, both approaches provide critical opportunities to enhance the performance, scalability, and maintainability of your applications, ensuring they remain competitive and efficient in an increasingly cloud-centric world.

About the Author

Robert Erickson

VP, Products, Strategy & Innovation
Entrepreneur | Sustained Growth | Strategist | Mentor & Team Builder Contact me – www.linkedin/in/ericksonrw

A seasoned high-tech software executive with over 25 years of experience in both entrepreneurial and established organizations.  With proven track record of bringing to market innovative and scalable traditional, cloud and hybrid/SaaS software products and service, Robert has built and led cross-functional teams of developers, sales teams, and go-to-market groups. Robert leverages his experience as a serial entrepreneur and a leader of multiple successful acquisitions to drive cultural shifts and transformation initiatives within organizations and its partners. 

His mission is to help enterprises achieve sustainable competitive growth through innovation, agility, and customer-centricity for enterprises.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *