My team is migrating several legacy monolithic applications to a hybrid environment. 'Lift and Shift' seems faster, but I’m worried we won't see the cost benefits of the cloud. On the other hand, refactoring for microservices is a huge time sink. What criteria should I use to decide which apps deserve a full rewrite and which should stay as-is on our private cloud?
3 answers
You should use the "Value vs. Effort" matrix. For applications that are mission-critical and require frequent updates, Refactoring is worth the investment because it unlocks auto-scaling and CI/CD efficiencies. However, for "stable" legacy apps that only need to run without much change, a "Replatforming" (Lift, Tinker, and Shift) approach is often the sweet spot. This involves moving the app to the cloud but perhaps swapping a self-managed database for a managed service like RDS. This gives you some cloud benefits without the 12-month dev cycle of a full microservices rewrite. Save your engineering hours for the apps that actually drive revenue.
Have you looked at the data egress costs? If you lift and shift an app but keep its database on-prem, will the latency and data transfer fees kill your ROI?
Usually, if an app is destined to be retired in 2 years, just lift and shift it. Don't waste precious developer time refactoring something that has an expiration date.
Jennifer is spot on. We wasted six months refactoring a legacy reporting tool only for the business to replace it with a SaaS solution shortly after. Total waste of resources.
David, that’s exactly what we are calculating now. To answer your question, we've decided to move the "chatty" apps—those that make thousands of database calls—as a single unit. If the app moves, the data must follow it to the same environment to avoid those massive latency delays and egress bills.