The Future of VMs and Containers

For years, virtual machines (VMs) were the default option for reducing hardware needs and keeping data center costs in check. Virtualization solutions like VMware’s vSphere and Microsoft’s s Hyper-V make it possible to isolate applications so they can safely and securely share underlying hardware, thus reducing infrastructure costs.  

Then along came the cloud. Instead of worrying about making efficient use of servers, a cloud provider would do it for you. Data centers haven’t disappeared, but there is no question a lot of workloads have shifted to the cloud. As a result, solutions such as vSphere and Hyper-V remain important, but have lost their pride of place at the center of the IT world.  

Containers and the Pace of Business 

But the cloud is more than just a different place to house your hardware and software. Numerous companies in retail, transportation, hospitality, financial services and many other industries have discovered that they can more quickly and cost-effectively launch new and highly lucrative apps and services without investing in data center resources. Thanks mainly to the cloud, the pace of business has sped up dramatically.  

The drive to be more agile and efficient is now relentless. That’s why so many enterprises are now embracing containers—and rethinking their long-term reliance on VMs. That’s what led to the rise of Kubernetes as the de facto standard for deploying containers. And it’s why Diamanti developed our platforms for making the most of Kubernetes containers.  

Performance Advantages of Containers 

VMs and containers have many similarities. They both provide a way to package an application and isolate it so that it gets the resources and runtime environment it requires without interference from other applications.  

But there is a big difference between containers and VMs: the packaging for a VM includes its own operating system (OS). Not so the container. A container has only the application and necessary libraries—it then shares the OS with the hardware that hosts the container. Both approaches have their merits, but there is no question that this distinction gives containers a range of performance and cost advantages: 

Startup: With no need to initiate an OS, containers start almost instantly. VMs require longer boot-up times.  

Portability: Because they share the OS, containers are more portable and operate more consistently across environments. You can test an application inside a container and then use that same container in production. No need to worry about possible configuration snags as you go from one environment to the other. VMs, by contrast, can have challenges operating in different environments because of OS-specific dependencies. 

Cloud Native: Many if not most developers have embraced the cloud native microservices approach to app development where different services are developed, scaled, and deployed independently. Containers are ideal for these cloud native architectures. 

Resources and Costs: The biggest difference between VMs and containers is in resource utilization and cost. VMs consume more resources compared to containers. As a result, it’s not always efficient to run many VMs on a single host. In a situation where you have many VMs running the same application, you will be duplicating the OS over and over and only able to run a limited number of VMs. By contrast, a single container’s footprint is much smaller. Because they are sharing the host OS, you can run many more containers using the same amount of resources. 

The cost savings of containers play out both in the cloud and on premises: 

  • In the cloud, the resource efficiency of containers  translates into lower IaaS costs including far less compute and storage use.  
  • On premises, teams can host the same workloads with fewer servers, which also translates to lower costs.  

Diamanti has worked with clients who have shaved millions of dollars from their cloud and data center operating costs. We also created an easy online Kubernetes calculator that allows you to estimate your cost savings, including when you transition from VMs. Check it out here. 

The Future 

Are VMs going to disappear? Not anytime soon. But they will no longer be the default tool for hosting applications. As Gary Chen, research director at IDC notes: “Hypervisors are a foundational datacenter technology that is the compute standard today. However, [the] virtualization market is evolving beyond standalone virtualization software to modern cloud and container platforms.” 

At the application level, you might see more companies adopt hybrid approaches, utilizing both VMs and containers. For example, a bank might keep using VMs for its database systems, ensuring resource isolation and stability. At the same time, it will rely on containers for its front-end and microservices. 

Companies also have the option to house VMs inside containers. This eliminates the need to refactor VM workloads to make them container-ready (something that is not always possible) but allows you to start realizing significant infrastructure and operational savings that only containers can deliver.  We discuss this in more detail in upcoming blogs.