Co-Existence of Containers and Virtualization Technologies

By, Federico Simoncelli, Principal Software Engineer, Red Hat

As a software engineer working on the Red Hat Enterprise Virtualization (RHEV), my team and I are driven by innovation; we are always looking for cutting edge technologies to integrate into our product.

Lately there has been a growing interest in Linux containers solutions such as Docker. Docker provides an open and standardized platform for developers and sysadmins to build, ship, and run distributed applications. The application images can be safely held in your organization registry or they can be shared publicly in the docker hub portal (http://registry.hub.docker.com) for everyone to use and to contribute to.

Linux containers are a well-known technology that runs isolated Linux systems on the same host sharing the same kernel and resources as cpu time and memory. Containers are more lightweight, perform better and allow more density of instances compared to full virtualization where virtual machines run dedicated full kernels and operating systems on top of virtualized hardware. On the other hand virtual machines are still the preferred solution when it comes to running highly isolated workloads or different operating systems than the host.

As the Docker vendor ecosystem has grown richer, Red Hat announced Red Hat Enterprise Linux Atomic: a lightweight operating system based on Red Hat Enterprise Linux and designed to run applications in Docker containers. Other vendors are focused on providing Docker orchestration tools across different hosts. One example is Kubernetes, an open source Docker manager, recently released by Google.

So how does Red Hat Enterprise Virtualization work with Docker today? oVirt (the upstream project for Red Hat Enterprise Virtualization) supports running Docker containers inside virtual machines and simplifies the process by enabling the Project Atomic image to be imported into your datacenter from the public Glance repository (glance.ovirt.org). Additionally, we are working on providing a platform for the orchestration solutions to integrate with RHEV. Kubernetes, in fact, already includes an oVirt Cloud Provider that can be connected to your data centers to discover the virtual machines dedicated to run containers (minions in the Kubernetes jargon).

Red Hat Enterprise Virtualization therefore is capable of providing you with an optimized stack to run containers starting from the operating system on the bare-metal up to the one inside the virtual machines and in the images, preserving at the same time the freedom and possibilities of the Docker hub. It is possible to imagine a future addition to the Kubernetes oVirt Cloud Provider to register regular RHEV hosts as minions as well, giving you the option to run containers on bare-metal with a minimum effort.

Today, deploying a private or hybrid cloud that runs virtual machines and containers, as just described, is cost prohibitive. We know that you are very much interested in maximizing the efficiency and optimizing your data centers by deploying the right tools for the right workloads. To help you in this quest, we are working on enabling Red Hat Enterprise Linux (RHEL) Atomic hosts to dynamically run different types of workloads. For example RHEV virtual machines, Docker containers and Hadoop jobs. In fact under the orchestration of Mesos (a powerful scheduling framework) it is possible to maximize and balance the hosts computational power for the most important and demanding tasks at any given time.

Integrating emerging technologies such as Kubernetes, Docker and Mesos enables us to help you to meet your requirements and run efficient and reliable datacenters. Stay tuned for more blog posts that will highlight the integration of these new technologies features into Red Hat Enterprise Virtualization.