While 451 Research predicts that application containers will grow faster than any other solution type (40 percent annually in 2017 and 2018, many organizations are still determining how and if containers or virtual machines (VMs) are the best fit for their infrastructure plans. The ongoing debate as to the use of VMs or container technology is happening regardless of the growing adoption of containerization, primarily because every business’s needs are different. When it comes to choosing the right option for your business, it’s important to understand the benefits of each by viewing them through the lens of business priorities.
VMs consist of an entire operating system (OS), complete with configuration and maintenance requirements, as well as updates and applications. In their entirety, they make up a system where hypervisors provide the abstraction layer between VMs and host systems for determining resource allocation. VMs have become the recognized best solution for ensuring that applications could allow admins to install multiple copies of different OSs on a single server to improve resource use. As VMs have had to grow due to OS updates and application patches, they have become less agile for the growing application needs of businesses.
In general, containers have many similarities in that they also include an entire OS and everything needed to run applications, but what sets them apart is that they use only a fraction of the resources that VMs demand. Containers enable easier use and an ability to build and test applications quickly, as well as move them to any private or public cloud platform seamlessly. Their scalability is also a bonus in that it’s easy to stack large numbers of them on a single server for better resource allocation. They make applications modular and able to run in their own space, resulting in easy scalability and simplified updates. Additionally, development teams can quickly and efficiently make changes during the DevOps process.
But despite concerns over data persistence and multi-tenant security, many organizations are running containers in place of VMs due to the sheer number of containers (as many as 36 in some cases for a VM and hundreds on a bare metal server) that can be supported on top of a server as opposed to the number of VMs that can be deployed on those same servers.
For those enterprises that run a high volume of applications looking to minimize the resources on which they are run, containers are an obvious choice. Still, at this stage, there are some concerns about whether container technology use in terms of persistent storage and multi-tenant security and the ability to break deployments up into more microservices can lead to container sprawl.
The choice between containers and VMs primarily comes down to the way in which you plan to use them. For those looking to run a maximum number of applications on a minimum number of servers, a container will work best. If on the other hand, you need to run multiple applications on servers and have a wide variety of OSs required, VMs are the best choice.
In today’s hybrid cloud approach, it’s often not a question of one or the other but the use of both. Many enterprises are running containers on top of or alongside VMs, which gives them the freedom to leverage containers while still keeping things like security and critical processes in place. They get some of the simplicity, speed, and efficiency of containers along with the tried-and-true VM process that they're accustomed to.
While containerization at scale offers an attractive economic model, VMs will continue to play an important role while bringing economic benefits of their own. Some operations will be more conducive to containers, while other applications are still going to be best suited for running on VMs without containers. Much in the same way that physical servers run alongside VMs, VMs will often be found running alongside container technology as enterprises seek to maximize agility while minimizing risks and costs.