📜 ⬆️ ⬇️

Automatic Migration of Containers in Data Centers: Microsoft Azure and AWS Integration

We continue to talk about solution development companies (ISVs) using the Microsoft Azure cloud. In this issue we will continue the story about the platform of the Jelastic company with the topic of automatic migration of containers between data centers. You can always find the previous articles in the cycle at the #isvcloudstory link. - Vladimir Yunev
Smart management Jelastic allows you to unify and aggregate different sets of equipment from different data centers within a single installation of a cloud platform. Such DCs, represented as separate regions of environments, can be chosen as a location for the environment when it is created.

This approach allows you to create complex and multifunctional cloud service unions, where the main benefits are:

Autonomy - you will eliminate the need for service from only one supplier and increase the efficiency of using data centers, ensuring low latency in data processing for end customers through an extensive network of geo-distribution;
')
Hybridity - the unification of private and public clouds ensures the efficiency of loads, allowing you to get higher performance with less cost;

HA and DR - the acquisition of increased resiliency and the elimination of risks associated with downtime services.

We have already reviewed some examples of using features such as ensuring multi-hardware integrity, for example, through DNS settings using the Round Robin algorithm for load balancing between several data centers. And in order to get even more opportunities that automatic migration can provide, it provides the ability to easily move environments (groups of containers) from one DC to another. Due to the ongoing need to maintain container-based applications, this task becomes much easier and helps speed up the adoption of Multi-Clouds, making numerous existing high availability and disaster recovery scenarios available.

Specificity of automatic migration


To ensure smooth and smooth interaction between cloud regions, migration processes between them should negate application downtime and do not require configuration later. Automatic migration is an option that is ideal for this purpose.

In Jelastic, this is implemented using CRIU (Checkpoint / Restore in user space), as part of a borrowed container based on the virtualization technology OpenVZ and P.Haul - a specially developed Python-based mechanism at the head of CRIU, designed for dynamic container migration and memory processing. inside.


This allows you to freeze the running environment and save the data with which it currently works from the hard disk (i.e., make a checkpoint). As a result, applications can be easily transferred to different places where they will be restored to the state in which they were frozen and continue to work as before. At the same time, such a move takes an average of 10-15 seconds, during which all incoming requests are placed in a queue, so users can only experience brief one-time delays in the response from the server. If you add advanced traffic balancing, then you can transfer a large number of containers without re-deployment and downtime.

Big Data : Automatic container migration is not recommended for working with Big Data. However, with software storage, you can even automate Big Data migration.

In combination with the approach of building a cluster of several sets of equipment, this technology becomes particularly effective. To prove this, consider a couple of real cases (for example, automatic migration to the scale of data centers of competitive suppliers such as Microsoft Azure and Amazon Web Services.


Already interesting? Just imagine the various possibilities, such as introducing “smart” project management and gaining additional security that becomes available with numerous possible DevOps scenarios. So let's go ahead and find out how you can benefit from this integration!

Option number 1: increasing the capacity of the cluster without downtime

To begin with, let's see how automated migration capabilities can complement the default solutions offered in Azure and AWS. The model that these service providers provide is based on the use of virtual machines with a given amount of allocated resources, without the possibility of changing the established limits on the fly. Thus, if the resources of your virtual machine suddenly run out (say, not enough RAM or disk space), all relevant applications should be closed while the virtual machine is being configured and restarting.


But with the support of dynamic migration, the whole process becomes smoother and painless. So, there is no longer blocking the resources of running applications - just migrating to a virtual machine, which has more resources available, when reaching or approaching a dangerous line to use all the nodes in the cluster is a more efficient way.

Tip : with Jelastic containers, you can set up constant tracking of incoming load for the necessary vertical and horizontal scaling, which will be performed automatically, without any necessary manual adjustments.

Option # 2: move apps between clouds

Another good example is the migration between regions of different cloud infrastructure providers. This enables high availability in various cloud types and provides disaster recovery by combining the deployment of DevOps workloads. For example, you can instantly deal with any performance problems, such as maintenance work in your current region or a temporary increase in load, through the simple transfer of all your containers to another DC.


Another advantage is the ability to move applications according to current business requirements and, thus, get the most quality / price / SLA ratio — for example, a less productive region can be used as a private cloud for development / testing, while another public The region provides sufficient power for production. A smooth transition ensures that all of these changes can be made without thinking about possible downtime and loss of profits.

How it works?


Finally, let's see how the processes described above are carried out in action using real case studies.

The first one is dedicated to Minecraft - this is an extremely popular building simulator in 3D textures. The short video below shows how the simulator data, completely preserving the state of the application, can be transferred to another DC without a single connection break, so players can continue to craft in their worlds even during the migration period:



In addition, you can easily launch your own Minecraft server in the Jelastic cloud, simply by deploying the appropriate Docker image settings in your environment - follow the instructions from the Adding Docker Container to Jelastic Environment article to achieve this goal.

And here is another example, with SeisComP , a state tracking application for geologists and geophysicists, which collects seismological data in certain places, monitors the situation with earthquakes. On its basis, and built graphics for interactive analysis in real time.



As you can see, the automatic migration process does not affect the work either in the environment or inside the application, ensuring its stable performance.

That's all for today, but soon we will consider some more interesting solutions for automatic migration between regions that may be useful to you - in particular, how it can be used in applications with an external IP address. So, subscribe to our blog and stay tuned for a series of additional instructions, while we are considering providing a free demo version of the cloud platform software, and get the opportunity to implement the described scenarios for your own projects!

Azure Marketplace


Azure users can get quick access to the Jelastic platform through the convenient Azure Marketplace. Start working with Jelastic today!

Source: https://habr.com/ru/post/275833/


All Articles