Rehost, replatform or refactor – which strategy is the best?Publish Date: November 17, 2019
Businesses of all sizes and nature are going on-line at a rapid speed. With technologies moving at faster speeds themselves, the shelf life of a website or a mobile app is shrinking. Keeping up with the latest technology updates can be a task in itself, and moving to another platform might sound daunting. However, if approached the right way, re-platforming can be extremely beneficial.
Re-platforming, like the name suggests, is upgrading an application, reducing dependency between the execution environment (application) and its host architecture/code. Traditionally, the two of them being inter-dependent, posed challenges while migrating towards new technological infrastructure. But separation offers design flexibility, easy scalability, and a smoother transition into newer platforms.
That is where replatforming comes into the picture – Think of it as a home renovation, on various levels – moving from physical to cloud-based, like vertical models of RDBMS to data as a service and so on.
There are various strategies an enterprise can deploy towards cloud modernization, with each having its own pros and cons. Replatforming brings together a bunch of techniques that isolates the application from its execution platform, and reinstall it in the new environment. Or the business process can be broken down into bite-sized pieces, which are reinforced with cloud-based applications one by one. Choosing the best fit for an enterprise is necessary after careful consideration since it is critical for cloud migration. The decision in itself is driven by various factors, which include software licenses, hardware upgrades, regulatory compliances, etc.,
Like mentioned, there is no one size fits all strategy when it comes to migration because every business is unique and has its own legacy challenges. There are several popular strategies that can be employed for application migration of which the Lift shift (Rehost), Lift, tinker, and shift (replatform) and refactor are the most widely used. The enterprise also has options to completely rebuild, drop and shop, retire or retain, and while they are important considerations during the decision-making process, they do not necessarily require migration as an action.
In a large legacy enterprise, a rehost strategy is often considered, which involves lifting portions of the existing application, or even the complete application itself, from an on-premises or existing platform to a new cloud environment. Like the name, it involves plain Lift and shift, with little or no modifications to the application itself, but may involve changing of host configuration if it moves to a new cloud-based environment since the hardware is changing too.
Rehost or Lift and shift is simple, fast, and employs fewer resources in the migration process. This approach also delivers a quick and easy migration solution as it can be migrated with minimal application disruption.
The rehost approach is usually chosen by large enterprises looking for quick migration without disturbing the existing application workflow. Once the challenge of application migration to the cloud is done, the enterprise can concentrate to re-architect or optimize depending on their needs. This migration could be manual or automated – for example, if migrating to AWS cloud, automation tools like AWS VM Import/Export, Racemi, etc., could be used.
All that said and done, rehosting is not always the best strategy for migration. It does not offer benefits of functionalities or tools that a cloud environment offers, because the application still functions how it used to function on its earlier physical server. This means the application is not taking advantage of flexibility and scalability the tools/functions promise.
Lift, Tinker and Shift strategy
Also called the re-platform strategy, in this approach, unlike in the lift and shift approach, a few changes or optimizations are made to suit the cloud environment to achieve some tangible benefit, without changing the core application architecture. Industry experts believe this is the middle ground, and a small cloud optimization offers huge benefits. Only processes that needed an overhaul anyway could be upgraded suitably, or management tools that could offer business value that would not disrupt the central architecture and would be just minor additions – the advantages from minor changes are quite significant.
The Replatform approach allows comfort to developers since they reuse the resources they are already familiar with. It is smart and cost-effective and allows the application to grow along with the cloud environment. The downside of Lift, tinker shift being the validity and scope of the part/process tinkered with. If the changed process does not add value to the application in the new environment, it won’t be of much use.
Rearchitect or Refactor Strategy
Re-architect or refactor is entirely changing the way the application is developed, to make it compatible with the cloud environment. This is usually done if the business demands changes on many fronts – features, performance, scale and this cannot be achieved with minor changes to the existing architecture. Refactoring calls for not just making major changes in the application but major disruptive changes to the core code as well. This could be more complex because it is important that the external face of the application does not change despite major changes to the application code.
This is a great strategy if the existing application is resource-intensive, uses an outdated legacy system, involves intensive data processing – it would make more sense to redesign the application for cloud and save on billing costs than just tinkering or shifting, which delivers higher performance.
Rehost, re-platform, or refactor – Which One Is The Best?
The answer to this question cannot be binary, simply because different enterprises require different things. Analyzing business needs and finding the approach that suits specific needs is the obvious way. However, there are definite ways to determine which strategy would suit an enterprise the best.
If the application can be moved in its entirety while keeping operational efficiency and won’t compromise on functionality when moved onto the cloud – rehosting is a good idea.
If rehosting is not viable, and the application is in need of a few ramp-ups in terms of cost-effectiveness, or resource utilization, that serves the purpose but needs improvement – replatforming is the approach to take.
The same goes for refactoring. Many times, a one-time investment on a full rebuilding of current solutions is profitable in the long run than migration of a defunct application that won’t contribute on the cloud, and in such a case, refactoring should be considered – the prospect of finding leaner, smarter ways to do the same thing can be better thing to do.
A combination of the three could also be a great approach, given that some choices are clear while some are complicated when it comes to deciding on which strategy to adopt.
Do you have a plan in mind for your enterprise? For intelligent solutions that can help turn your thoughts into business solutions visit https://www.yash.com/digital-transformation
YASH Technologies is an AWS channel reseller, Partner, and Certified by AWS for SAP Competency.