By Ying Xiong and Hakim Weatherspoon, Originally posted on thenewstack.io
Incompatibilities among different cloud providers result in a vendor lock-in problem. For example, Amazon Elastic Compute Cloud (EC2) and Microsoft Azure are built on top of different hypervisors (Xen/KVM and Hyper-V, respectively), and they use different virtual machine (VM) image formats. This, in turn, forces users to adopt ad-hoc deployment strategies in order to tolerate cloud failures and limits their ability to do activities such as workload migration and resource scaling across different clouds.
Incompatibility among cloud providers and vendor lock-in makes it impossible to live migrate a VM workload from one type of hypervisor to another. Cloud providers also provide different interfaces to infrastructure such as storage and do not support networking between virtual machines in different clouds. As a result, applications are locked into a specific cloud, which makes using resources from multiple cloud providers very difficult.
The following sections briefly cover the possible use case scenarios for cloud mobility, along with the key challenges. We then describe our innovative technology approach for seamlessly addressing these cloud mobility-related challenges.
Key Challenges – Use Cases
Migrate Legacy Applications to Public Cloud
As part of the ongoing digital transformation, enterprises are striving towards a cloud-first approach. Such customers are currently mired in their own data center environment and are struggling to increase business agility. Migration of legacy application assets without any changes would remove barriers of transitioning to the cloud and would dramatically accelerate the timeline. It’s easy to get all “cloud first” when developing new, greenfield applications, but how do you get the core business applications running in your data center — so-called brownfield apps — easily and efficiently migrated to the cloud?
As an example, consider a three-tier legacy application stack where the application layer runs within a KVM VM environment, the database tier runs within the VMWare ESX environment, and the public cloud is a KVM-based environment. As part of the lift-and-shift one-off migration scenario, a key challenge is seamless offline migration of the first-layer VM running the application stack to a public cloud as a second-layer VM. It is very important that the performance overhead of such a migration scenario to the public cloud environment be reasonably small.
Hybrid Cloud — Cloud Bursting for Legacy Applications
Public cloud providers are focused on transitioning enterprise customers to a cloud computing environment as part of the digital transformation. Cloud bursting is an important use case. In this model, workloads in virtual machines are burst from the enterprise data center to the cloud provider environment once the available resources in the original customer data center exceed a certain threshold limit. Typically, a live VM migration mechanism is employed in the hybrid cloud setting, so one does not need to shut anything down.
As an example, consider that the customer data center is running an application based on a specific version of Linux in a VMWare ESX first-layer VM. The public cloud, on the other hand, may be using KVM or Xen as the underlying hypervisor environment. As part of the hybrid cloud scenario, the key challenge is seamless live VM migration of an application at the time of a resource spike in the enterprise customer datacenter. Here again, performance overhead needs to be small and migration needs to be live and migration time needs to also be reasonably small.
Multicloud Scenario
A multicloud option may be invaluable for multinational enterprises who may want to migrate their legacy workloads across multiple cloud providers, for reasons such as proximity of cloud provider data centers to their end users to comply with regional or country regulations.
It is important to note that applications cannot only seamlessly migrate to a public cloud provider environment (live VM migration with zero perceived downtime) but across other cloud providers such as Amazon EC2, Google Compute Engine (GCE), etc. There is a stop-and-copy phase to live migration where a VM is not running, but it should be short enough that network TCP connections are not broken.
Xen-Blanket – Innovative Enabling Technology
Xen-Blanket’s original research by Cornell University and now developed and supported by Exotanium is an enabling technology for tackling the above-mentioned cloud mobility challenges. Xen-Blanket advocates a user-centric view of homogenization, where users are able to run their unmodified VMs on any cloud without any special provider support. Xen-Blanket is a thin, immediately deployable virtualization layer that homogenizes today’s diverse cloud Infrastructures. It uses nested machine virtualization in the form of the Xen-Blanket hypervisor, offering uniformity in virtual devices and VM images. Nested virtualization paves over heterogeneity issues such as different virtual machine monitors and image representations, as well as small differences in hardware.
Xen-Blanket runs on various widely supported hardware virtualized VMs (HVM) and provides a para-virtualized (PV) environment to run (second layer) guest VMs. Xen-Blanket leverages the PV-on-HVM drivers on Xen, virtio drivers on KVM, and enlightened I/O drivers on Hyper-V to optimize performance. It makes the underlying (heterogeneous) infrastructure transparent and appears as a homogeneous Xen environment to a second layer guest VM. The key is that a user can control not only second layer guest VMs, but also second layer Xen-Blanket hypervisors, thus enabling a “user-controlled” cloud environment.
Migrate Legacy Applications to Public Cloud
Using Xen-Blanket technology, a customer’s ESX-based VM can easily be migrated to a public cloud environment and run as a second-layer VM on top of Xen-Blanket within a Xen- or KVM-based public cloud environment with minimal performance overheads — Xen-Blanket enables lifting first-layer virtual machines from a VMware environment to the public cloud as second-layer VMs.
Hybrid Cloud — Cloud Bursting for Legacy Applications
In this particular use case, a customer data center is running an application based on a specific version of Linux in a second-layer VM on top of Xen-Blanket in a VMWare ESX first-layer VM. The public cloud, on the other hand, may be using KVM or Xen as the underlying hypervisor environment and has Xen-Blanket installed within the first-layer VMs. Using Xen-Blanket as the underlying technology demonstrates the ability to live-migrate VMs across hybrid-cloud environments with minimal performance overheads.
Hybrid Cloud — Cloud Bursting for Legacy Applications
In this particular use case, a customer is running an application based on a specific version of Linux in a public cloud environment on top of Xen-Blanket. Using Xen-Blanket as the underlying technology demonstrates the ability to seamlessly migrate a VM of the application stack from one public cloud to another, with minimal performance overheads.
Technology Collaboration
Futurewei’s Cloud Lab and Exotanium collaborated on development of this technology project. All the artifacts for this project are open sourced to the following public Github repository with the hope that others will be able to contribute to the development efforts: