Live Containers Migration Across Data Centers: AWS and Azure Integration

| DevOps PaaS, Multi-Cloud | December 14, 2015

Jelastic smart orchestration allows to unify and aggregate various hardware sets from different data centers within the confines of a single Cloud Platform installation. Such DCs are presented in a form of separate environment regions, which can be chosen as a location for an environment while its creation.

Such an approach enables to build complex and multipurpose cloud unions, where the main benefits achieved are:

  • autonomy - get rid of a single cloud vendor lock-in and increase utilization of data centers, providing low latency for end customers through the vast geo-distribution
  • hybridity - private and public clouds unification ensures the efficient workloads’ distribution, allowing to gain better performance with a lower cost
  • HA and DR - get the improved fault tolerance and eliminate the risks of services’ downtimeimage001

We’ve already considered some examples of leveraging such multi-hardware integrity, e.g. through configuring DNS Round Robin Load-Balancing across Multiple Data Centers. And in order to gain even more profit, the live migration feature can be used, which ensures the ability to easily relocate environments (a group of containers) from one DC to another. Due to the evolving container-based applications’ composing approach, this task becomes much simpler and helps to speed up the adoption of Multi-Cloud, making the numerous high availability & disaster recovery scenarios available.

Live Migration Specifics

To ensure the smooth and seamless cloud regions’ interaction, the process of migration between them should cause zero application downtime and require zero configurations afterward. The live migration option suits perfectly for this purpose.

At Jelastic, it is implemented with the help of CRIU (Checkpoint/Restore In Userspace) as a part of the leveraged OpenVZ container-based virtualization technology, and P.Haul - specially developed Python-powered mechanism on top of CRIU, intended for live migration of containers and memory-touching processes inside.  image02               

This allows to freeze a running environment and save the data it is currently operating with to a hard drive (i.e. make a checkpoint). As a result, an application can be easily transferred to a different location, where it will be restored in the same state it was frozen with and continue working as before. Herewith, such a relocation takes 10-15 seconds in average, during which all the incoming requests are queued, so users may only experience a brief single-time delay in the server response. Add the advanced traffic load balancing solution to it, and you will be able to migrate a bunch of containers without redeploy and downtime as well.

Big Data: Containers’ live migration is not recommended for Big Data. However, with the software-defined storage, you can automate even the Big Data migration.

In a combination with the approach of composing a cluster from multiple hardware sets, this technology becomes especially efficient. In order to prove this, let’s consider a couple of real use cases - e.g. with live migration across data centers of such competitive vendors as Microsoft Azure and Amazon Web Services.image04

Already interested? Just imagine the variety of opportunities, like implementing smart project management and gaining extra reliability, that become available with the numerous possible DevOps scenarios. So, let’s go on and discover how you can benefit on such an integration!

Use Case #1: Increasing Cluster Capacity without Downtime

To start with, let us reveal how the option of live migration could complement the default solutions, offered by Azure and AWS. Both these vendors’ service-providing model is based on usage of VMs with the predefined amount of allocated resources, without the ability to change the stated limits on fly. Thus, if your virtual machine was suddenly run out of resources (let's say, insufficient RAM or disk space), all the appropriate applications should be shut down for the time of VM configuration and re-launching.


But with the live migration enabled, the whole process becomes seamless and painless. So, no more resource lock-up for running apps - just migrate to a virtual machine with more resources upon reaching or coming close to the dangerous limit for using all the nodes in your cluster in a more efficient way.

Tip: With Jelastic containers, you can configure the constant tracking of the incoming load for the required vertical and horizontal scaling to be performed automatically, without any manual adjustments needed.


Use Case #2: Moving Applications between Clouds

Another good example is migration between regions of different cloud infrastructure vendors. This allows to achieve the high availability across multiple clouds and ensures disaster recovery through the unification of DevOps workloads deployment. For example, you can instantly cope with any performance issues, like maintenance works on your current region or temporary load burst, through simple evacuation of all your containers to another DC.image01

One more benefit here is the ability to relocate applications according to the current business requirements and, in such a way, gain the most sufficient quality/price/SLA rate - for example, less performance region can be used as a Private Cloud for the development/testing zone, while another Public one provides the sufficient capacity for production. Smooth migration ensures all these changes can be performed without bothering about possible downtimes and profit losses.

How It Works

Lastly, let’s see how the above-described processes are handled in action with a few real showcases.

The first one is devoted to Minecraft - an extremely popular 3D texture-based building simulator. The short video below shows how this entirely stateful application can be migrated to another DC without a single connection dropped, so the players can continue crafting their worlds even during the relocation:

Besides, you can easily launch your own Minecraft server within Jelastic Cloud through simply deploying the appropriate Docker image to an environment - follow the Adding Docker Container to Jelastic Environment instruction to accomplish this.

And here is another example, with SeisComP - a stateful application for geoscientists, which gathers seismological data in the defined locations, monitors the earthquake situation on its basis and builds graphs for the interactive analysis in real-time.

As you can see, the process of live migration does not influent the work neither the environment nor the application inside, assuring its stable workability.

That’s all for today, but in a short time, we’ll cover a few more interesting solutions the live migration across regions can come in handy for - in particular, how it could be applied to applications with external IP address attached. So, subscribe to our blog and stay tuned for more guides of the series, whilst consider requesting a free demo for the cloud platform evaluation and get the ability to implement the described scenarios for your own projects!