Before You Do a 'Lift and Shift' Cloud Migration, Consider This...

POSTED BY : Principal Architect - MS Azure CoE
Monday, August 3, 2015

'Lift and Shift' migration is to cloud architects as Mjolnir is to Thorindispensable and used often at whim.

Lift and Shift migration is the cloud migration strategy that involves moving an application to a cloud platform almost exactly as it runs on-premises. This often means you are moving a bunch of virtual machines and trying to stitch the inter dependencies that existed on-premises into a cloud platform. Read on as we explore why, even though this is one of the most popular migration strategies, you should try to move away from this model and explore newer options. 

The popularity of this model is deeply rooted in the fact that this is probably the easiest cloud migration approach. Consider almost any monolithic application and you can break it down into its multiple layers such as web, app and the database tiers. Simplifying this further comes down to identifying stateless and state-full components that make up the application. A load-balancer takes care of stateless components, say a web server farm. And a cluster takes care of state-full components - like your database. Replicating this in the cloud ‘as is’, is described as a successful Lift and Shift. This is the cloud architect's answer to the engineers at a world famous razor manufacturer adding the fifth blade to their latest razor line, because number five comes after number four. There is nothing new in this approach, and hence you get almost the same result that you would have if you were on-premises. It works! But, since when is 'just works' enough? So, how do we approach the next migration? 

Consider a better way to migrate to the cloud

The cloud migration talent pool is categorized into infrastructure architects (IT professionals) and application architects (developers).  Most of the cloud migration projects are dominated by infrastructure architects. This means they talk the language that is familiar to them; which is VMs, networks, load-balancers and the like. The irony is radical breakthrough innovation that comes about in most of the popular cloud platforms, comes in the form of a managed/packaged PaaS service and the infrastructure side of cloud platforms goes through mere incremental innovation. Take the case of Azure HDInsight, a managed Hadoop environment that can scale to handle petabytes of data. From the view of an IT professional who is familiar with managing server nodes of a Hadoop cluster, its storage, networking and associated virtualization, will envision many VMs stitched together in a cloud platform when a cloud migration opportunity arises, which is essentially a Lift and Shift migration. But a developer or an application architect does not care for VMs, networks and the SAN devices. The language of managed and packaged services is closer to developers, and it is natural for them to adopt services such as Azure’s HDInsight or Amazon's RDS or Event Hubs or SQL Azure. This makes a drastic difference to the benefits you get from your cloud solution, like better time to market, reduced operational expenditure, superior manageability, and ROI. 

Most of the managed services available in cloud platforms are a wrapper that focuses on providing immediate value to the customer using the application. The cloud provider takes care of all aspects of setting up and managing the underlying core infrastructure. Leveraging such services gives you access to some of the best engineering services at a marginal cost. Next time you are tasked with a migration project, consider breaking the application down to its physical components, which is how it runs on-premises. Take this further by breaking it down to its logical components and explore PaaS alternatives to perform the same or similar function; for instance, choose either a mail server on a VM or Amazon SNS. The former is too predictable and expensive, the latter is cheaper, easier to manage and setup. In a cloud world, the customer is paying for every bit of resource being consumed and this means a heavier object like a virtual machine that contains the operating system is costlier than a PaaS alternative. There are options like containers or Microservices that could be an alternative that consumes much lower CPU and memory in comparison to a full-blown VM.

Explore value oriented packaged cloud services

The key takeaway is that the line between infrastructure architects and developers is blurring; it should and will continue to do so. There should be a conscious effort to learn and discover every opportunity, feature and component to get rid of the VMs for a more advanced, cheaper and value oriented packaged cloud service. With every solution, you build, ask if it is the best a customer can get? Or, is it just another blade accompanied by an aloe strip?

We are limited by what we know but our solutions should not be hampered by traditional datacenter problem solving approaches. As Maslow pointed out "If a hammer is the only tool you have, everything will look like a nail." Even if it’s Thor's Mjolnir. 

Vishnu Rajkumar
Principal Architect - MS Azure CoE