Loading...

Loading...

Rethink Azure migration and modernization – the role of refactoring

  • Posted on October 13, 2021
  • Estimated reading time 4 minutes
Azure Migration With Refactoring

Companies are accelerating their public cloud journeys as they search for ways to reduce technical debt, scale more efficiently, and find new ways to innovate.

Many organizations are migrating virtual machines to the cloud through a ‘Lift & Shift’ or Rehosting approach. However, significant benefits of the cloud cannot be derived from Lift & Shift alone, and for many, this approach will fail to deliver the full promise of the cloud.

Organizations adopting this approach will often see momentum slowing after their initial workload migrations.

It’s critical to understand that while Lift & Shift is a crucial step for most organizations, it should generally be viewed as a first step, rather than the end goal. As a rule, the mass migration of applications and data workloads to the cloud should be quick and straightforward compared to refactoring to PaaS/containers or rebuilding fully. But those who expect to really unlock value from the cloud and the benefits of real time deployment and scalability will be disappointed. These outcomes are not fully available from a simple Rehost/Lift & shift approach.

It’s critical to understand that while Lift & Shift is a crucial step for most organizations, it should generally be viewed as a first step, rather than the end goal. As a rule, the mass migration of applications and data workloads to the cloud should be quick and straightforward compared to refactoring to PaaS/containers or rebuilding fully. But those who expect to really unlock value from the cloud and the benefits of real time deployment and scalability will be disappointed. These outcomes are not fully available from a simple Rehost/Lift & shift approach.

The real value of cloud is derived from refactoring or rebuilding applications to leverage cloud scalability and resilience more effectively. However, it won’t always be cost-effective or time efficient to modernize every application. For some, the time, cost and effort required to rebuild an application will outweigh the business value potential.

Finding the happy medium
There is a middle ground solution between ‘Lift & shift’ and a full rebuild, which is selective or full refactoring of applications to take advantage of cloud scalability where it is needed.

Refactoring is the process of performing selective (full/partial) restructuring of the application source code to move to cloud PaaS/containers/serverless, in order to benefit from the speed, agility, and innovation possibilities of the latest technologies. In this process, we identify possible changes and prioritize based on the value delivered and the complexity of the change. Using the right patterns to make selective modifications allows a flexible approach and avoids being forced into making significant, complex changes with low opportunities for value. In this way, by refactoring, you can turn an application into a cloud-enabled application through the composition of cloud services.

In many cases, the best option will be to break down the application into manageable components in order to focus on the parts that need to be refactored to improve scalability.

Refactor for faster time to value
Refactoring helps to:

  • Extend the life of a legacy application and address immediate burning needs.
  • Focus on delivering business value without worrying about managing infrastructure and technical complexities.
  • Introduce incremental changes more frequently and easily.
  • Improve the security posture of the application by rewriting vulnerable components.
  • Improve scalability of the application through Cloud PaaS/containers/serverless technologies.
  • Use the built-in scaling capabilities of the cloud platform to optimize cost and scale on-demand.

Much like other options, refactoring is not always the best option, so how do you identify which applications to refactor? Here’s a simple checklist:

  • Legacy applications that meet business demand but are hard to maintain & scale.
  • Applications that typically have high technical debt due to deprecated technologies & frameworks used.
  • Applications that need improvements to the security posture and other non-functional properties.
  • Applications that need to vacate an old platform based on cost or skills issues (e.g., Mainframe). A popular option for these types of applications is to refactor through language conversion, if closing the skill gaps is a primary concern.

Weighing up the pros and cons

How to get started

  • Identify the blockers in your target applications that are preventing migration.
  • Identify application aspects that are most challenging in terms of scalability or adaptability.
  • Determine if you want to refactor the application fully or just the relevant components.
  • Determine opportunities to containerize.
  • Refactor applications to take advantage of modern technologies & databases.

We recommend an assessment of application source code, as this helps to accelerate the refactoring process by identifying the true blockers and the extent of configuration or code changes required.
Avanade assessments will also provide estimates of timescales and costs.

Learn how you can start to identify opportunities to unlock greater value from your applications and book an Application Innovation Engagement.

Avanade Insights Newsletter

Stay up to date with our latest news.

Contact Avanade

Next steps

Talk to us about how we can bring the power of digital innovation to your business.

Share this page