SDxCentral
Join Login
SD-WAN 3 5G 10 Edge 9 IoT 4 SDN 5 NFV 6 Containers 10 Cloud 15 Security 8 AI 9 Data Center 4 Storage 4 APM/NPM 2 Open Source

Login to SDxCentral

Your login link has been emailed to you.

Or login with your password

Enter Your Password

Forgot your password? Login as a different user?
  • Newsletters
  • eBriefs
  • Podcasts
  • Webinars
  • Videos
  • Directory
  • White Papers
  • Resources
  • Use Cases
  • Support

Join SDxCentral and get information tailored to your particular interests everyday.

Join
Sponsored:
Dell EMC 7 Citrix Riverbed 1

Containers > Containers Definitions > Containers vs VMs: Which is better in the Data Center?

Containers vs VMs: Which is better in the Data Center?

The determination of which is better in Containers vs VMs is dependent on what you are trying to accomplish.  Virtualization enables workloads to be run in environments that are separated from their underlying hardware by a layer of abstraction. This abstraction allows servers to be broken up into virtualized machines (VMs) that can run different operating systems.

Container technology offers an alternative method for virtualization, in which a single operating system on a host can run many different applications from the cloud. One way to think of containers vs VMs is that while VMs run several different operating systems on one compute node, container technology offers the opportunity to virtualize the operating system itself.

Containers vs VMs:  Virtual Machine Workloads

A  VM is a software-based environment geared to simulate a hardware-based environment, for the sake of the applications it will host. Conventional applications are designed to be managed by an operating system and executed by a set of processor cores. Such applications can run within a VM without any re-architecture.

With VMs, a software component called a hypervisor acts as an agent between the VM environment and the underlying hardware, providing the necessary layer of abstraction. A hypervisor, such as VMware ESXi, is responsible for executing the virtual machine assigned to it and can execute several simultaneously. Other popular hypervisors include KVM, Citrix Xen, and Microsoft Hyper-V. In the most recent VM environments, modern processors are capable of interacting with hypervisors directly, providing them with channels for pipelining instructions from the VM in a manner that is completely opaque to the applications running inside the VM. They also include sophisticated network virtualization models such as VMware NSX.

The scalability of a VM server workload is achieved in much the same way it is achieved on bare metal: With a Web server or a database server, the programs responsible for delivering service are distributed among multiple hosts. Load balancers are inserted in front of those hosts to direct traffic among them equally. Automated procedures within VM environments make such load balancing processes sensitive to changes in traffic patterns across data centers.

Containers vs VMs:  Container-Driven Workloads

The concept of containerization was originally developed, not as an alternative to VM environments, but as a way to segregate namespaces in a Linux operating system for security purposes. The first Linux environments, resembling modern container systems, produced partitions (sometimes called “jails”) within which applications of questionable security or authenticity could be executed without risk to the kernel. The kernel was still responsible for execution, though a layer of abstraction was inserted between the kernel and the workload.

Once the environment within these partitions was minimized for efficiency’s sake, the idea of making the contents of these partitions portable came later. The first true container system was not yet an environment: LXC developed as a part of Linux. Docker originated as an experiment for easily deploying LXC containers onto a PaaS platform operated by Docker Inc.’s original parent company, dotCloud.

Workloads within containers such as Docker are virtualized. However, within Docker’s native environment, there is no hypervisor (see Figure 1). Instead, the Linux kernel (or, more recently, the Windows Server kernel) is supplemented by a daemon that maintains the compartmentalization between containers, while connecting their workloads to the kernel. Modern containers often do include minimalized operating systems such as CoreOS and VMware’s Photon OS – their only purpose is to maintain basic, local services for the programs they host, not to project the image of a complete processor space.

Containers vs. VMs

Figure 1. Containers vs Virtual Machines, courtesy of Docker Inc. and RightScale Inc.

In the architecture first employed at Google and at streaming video service provider Netflix, microservices are functions that can operate without exclusivity to any single application. They perform small workloads, in the form of functions that can be contacted via APIs and that produce discrete outputs. Such functions exist in traditional, monolithic applications today, although multiple applications instantiate these same functions redundantly. In a microservices architecture, these functions are more like libraries, providing service to any and all applications that require them.

Scalability of containerized workloads is a completely different process from VM workloads. Modern containers include only the basic services their functions require, but one of them is a Web server, such as NGINX, that also acts as a load balancer. An orchestration system such as Google Kubernetes or Mesosphere Marathon is capable of determining, based upon traffic patterns, when the quantity of containers needs to scale out, can replicate container images automatically, and can then remove them from the system.

The key characteristic distinguishing a container from a VM is the container’s ephemeral nature. In a modern orchestration system, multiple copies of a container coexist. Containers that fail can be removed and replaced without noticeable impact on service. In the most radical environments, where continuous delivery methods are in place, new or experimental versions of containers may coexist with older versions. If an experiment fails, all the newer versions can be rolled back and replaced. These new and vastly different methods of managing data centers are key to the overwhelming interest the telecom industry has displayed in Docker and its associated technologies, in the handful of months they have existed.

Related Definitions

containers-basics
Container Basics and an Update
Understanding the Kubernetes Monitoring ProcessThe Solutions that Brings Forth MEC VirtualizationHow to Use Docker and Why It WorksWhat Is Open Virtual Network (OVN)? How It WorksWhat is the Docker Platform and Container Components? Definition
SDxCentral Daily News

Join your Peers! Subscribe to SDxCentral's Newsletter

Subscribe to Get the Daily News!

Related Definitions

  • Container Basics and an Update
  • What Is Docker Security & How Do You Use It?
  • What is the Docker Platform and Container Components? Definition
  • What is Docker Container? Part 2: How Docker Containers Work
  • How Does Container Networking Work? Defined
  • What are Containers (like Docker Linux Containers or Software Containers)?
  • What is Docker Container? Pt. 1: The Docker Open Source Project

About SDxCentral

  • Newsletters
  • About Us
  • Contact Us
  • Work With Us
  • Editorial Team
  • Careers
  • Legal
  • Support

Engage With us

This material may not be copied, reproduced, or modified in whole or in part for any purpose except with express written permission from an authorized representative of SDxCentral, LLC. In addition to such written permission to copy, reproduce, or modify this document in whole or part, an acknowledgement of the authors of the document and all applicable portions of the copyright notice must be clearly referenced. All Rights Reserved.

© 2012-2019 SDxCentral, LLC, All Rights Reserved. SDNCentral™, the SDNCentral logo, SDxCentral™, SDxCentral logo, SDxNews™, SDxTech™, SDx™, the SDx logo, and DemoFriday™ are trademarks of SDxCentral, LLC in the U.S. and other countries.

  • Terms of Service
  • Privacy

Please enter your Business Email to view this asset:

We are requesting you provide a valid business, education, non-profit or government email address not from free or temporary email providers or ISPs. If you feel that our filters are incorrectly disallowing your email, please contact us at support@sdxcentral.com.