VMs and containers represent two different methods of virtualization, each offering various benefits and drawbacks. Luckily, you don't have to choose between VMs and containers. You can integrate the two, especially as VMware makes major strides toward incorporating Kubernetes management capabilities into its product suite.
With both VMs and containers, you get improved system utility, decoupled applications from underlying hardware and enhanced workload mobility and protection compared to a non-virtualized environment. The fundamental difference between the two comes from the level of isolation. The ways each distributes compute resources such as processors, memory and I/O also differs. However, VMs and containers aren't necessarily two separate entities that can't function together.
VMware has made several strides toward integrating containers with its products, from developing Pivotal Container Service (PKS) and Octant to initiatives such as Project Pacific and Tanzu.
The difference between VMs and containers
Virtual machines are generally more secure than containers and better for hosting traditional applications. VMs rely on a hypervisor -- a software layer installed on top of a hardware system -- such as ESXi to operate. Each VM has its own OS and is fully isolated from other VMs. This protects the system from malware or application crashes; such a problem only affects the specific VM and not the entire system. Because of VMs' level of isolation, you can migrate them from one ecosystem to another without affecting the system's hardware or OSes.
Containers provide greater resource efficiency, scalability and migration speeds compared to their VM counterparts. Containers rely on a container manager -- Kubernetes being the most popular and widely known -- installed on top of a host OS -- often Linux. Once you install a container layer, you can provision container instances from available compute resources and deploy apps in those containers. Like VMs, you can easily migrate containers from one system to another. All containers share the same underlying OS, which can present a single point of vulnerability.
Part of containers' current popularity within the developer community comes from their history as a technology. Containers were specifically pioneered by developers for developers, compared to VMs, which became popular when IT controlled all parts of an infrastructure, including development.
Integrating VMs and containers
A frequent method for integrating VMs and containers involves packaging containers inside VMs. With a one-container-per-VM model, you can manage your containers separately and use the VM management software that you're already familiar with to do so. This method provides increased security over a container-only model, because VMs provide another layer of abstraction.
VMware employed this method when it developed its vSphere Integrated Containers (VICs) and now-defunct Photon Platform. VIC enables container deployment and management within VMs in vSphere clusters.
VMware's Kubernetes-focused developments
VMware has a vested interest in making sure VMs stay relevant, but the vendor also hopes to evolve with technology and cash in on emerging trends such as containers. Kubernetes has emerged as the most popular container management platform, and VMware has made progress in integrating its product line with Kubernetes specifically and containers at large.
VMware co-developed PKS with Pivotal in 2017. PKS enables you to deploy and operate Kubernetes on top of a VMware vSphere environment and manage container workloads side by side with traditional VM workloads. In 2019, VMware acquired Pivotal, solidifying its commitment to developing container-specific products for its customers.
Vmware also developed Octant, a web interface for Kubernetes that enables developers to manage Kubernetes clusters. It includes a simple dashboard and plug-ins that add information to cluster views and accommodates several different methods of Kubernetes cluster management, such as integrating ecosystems of tools or working with CI/CD tools.
New in 2019: Tanzu, Project Pacific and beyond
At VMworld in 2019, VMware announced Project Pacific, an initiative to embed Kubernetes directly into vSphere. The vendor hopes to enable both developers and admins to deploy and manage containers and VMs through the interfaces they're already familiar with.
VMware also announced Tanzu, its new product portfolio intended to help customers build, manage and run their applications on Kubernetes. This portfolio incorporates tech from VMware's Bitnami and Heptio acquisitions, and VMware hopes to include a variety of other Kubernetes-focused products, platforms and services. VMware has already released a technical preview of one Tanzu product: Tanzu Mission Control, which enables you to manage Kubernetes clusters from a single pane of glass.