Moving workloads to the cloud can provide scalability, agility and, sometimes, cost-efficiency. However, cloud migrations can be difficult, as many current applications require re-design before moving into the cloud.
You have probably heard some jargon for methods bandied about, but what do they really mean? Here’s a few to consider:
Re-design: This tends to be expensive and time consuming, but provides the best opportunity to take advantage of the features and functionality of being in “the cloud”. Applications need to be aware of the environment so that they can scale up and back when needed, or spin down when not needed.
Lift-and-Shift: Lifting an application off the servers in your datacenter without modifying the design and simply shifting it to “rental servers” in the cloud requires less effort, but doesn’t provide scalability or take advantage of other cloud-based features. This can be a viable option if the cloud is more cost effective than running the application in your own datacenter. There is no magic rule for this, you have to run the numbers as the result will be different for every company.
Rip-and-Wrap: Using containers such as Docker to wrap your application and provide portability is an interesting alternative which seems to fall between lift-and-shift and the arduous re-design process. You have to do SOME work to the application to make it work in a container, but it’s not a complete re-design. In return, containers provide flexibility and some degree of protection against vendor lock-in. Re-designing an app for the cloud typically means a commitment to the architecture of your chosen provider, and changing your mind later is difficult.