Rehosting can be automated with a combination of various tools and solutions. It is the obvious choice for organizations that don’t have the in-house skills and expertise for more advanced methods such as rearchitecting.
On the downside, since the client organization continues to own the platform, rehosted applications can’t benefit from cloud-native capabilities in monitoring, security and governance.
Stephen Orban, VP of AWS Marketplace, refers to replatforming as “lift, tinker and shift.” The core architecture of the application doesn’t change but other cloud optimizations could be in the offing.
Having said that, replatforming can involve a complete change in the database or OS on which the application runs (to their equivalents in the cloud). It can use a DBaaS platform, web server, application container or full-scale orchestration service provided by the cloud vendor.
There isn’t much investment risk in replatforming. It lets the organization take immediate advantage of the cloud model.
Many see repurchasing as simply moving the application to a SaaS platform – like ditching the old client/server-based CRM for Salesforce. The business may or may not need to make modifications to the new app but they’d almost certainly need to change their business process.
Repurchasing is ideal for legacy applications that can’t be virtualized or migrated with positive ROI. While there might be some immediate CAPEX, long-term OPEX drops significantly for the organization.
Refactoring involves making significant changes to the application code so that it can retain its exact functionality and characteristics after it’s moved to the cloud. Typically, the application is optimized for the platform, middleware (such as IIS or Apache web servers) and OS of the cloud provider. This way, it can make use of core cloud-based capabilities like dynamic horizontal scaling and DevOps.
When the application needs performance and scale that is totally beyond its existing environment or architecture, it needs to be rearchitected – developed from the ground-up on the public cloud using a cloud-native language. Rearchitecting typically means migrating from a monolithic to a service-oriented or serverless architecture that boosts the portability and agility of the application.
While rearchitecting is one of the more expensive paths to the cloud, it is usually the one with the biggest business impact. Rearchitecting is the only choice when continuing to run the legacy application with patches and upgrades becomes too risky or there are no longer any in-house programmers who understand its nuts and bolts.
Like retaining, this is an option that doesn’t really involve cloud migration. If the application isn’t meeting its objectives or is no longer critical to operations, it can simply be retired. Most of the time, it’s just an unnecessary function that everyone thinks someone else must be using.
“I’ve found that up to 20% of an enterprise IT portfolio is no longer useful,” said Orban.
Any required functionality can be moved to other apps in the cloud or a new application can be built from scratch.
Failing to Plan is Planning to Fail
While the COVID-19 crisis accelerated cloud adoption and cloud-based digital transformation in most organizations, small and large. However, the promise of agility, rapid scaling, efficient workflows and lower costs rapidly gave way to unexpected challenges and cost overruns. Data from McKinsey shows that the average company spends 14% more in migration than originally planned.