Virtual machines (VMs) and containers are obvious choices for organizations looking to run applications in a cloud environment. But, which is the right choice?
According to Bruce Mathews, senior solutions architect at Mirantis, it depends. (Thanks Bruce, that’s a lot of help.)
Following up on a recent blog post, Mathews noted that: “All technologies have a place. Sometimes you don’t want to find it, but they all have a place.”
Mathews explained that organizations have flocked to these platforms because of their ability to support better utilization of cloud resources. But, the structure of VMs and containers dictate their use cases.
He noted that VMs are really just a software extraction of a computer that lives in the cloud. This includes a separate storage and memory system dedicated to that single VM. This capability is the most familiar to organizations as they can easily associate the one-to-one connection.
Containers are more finely split, leveraging a host storage and memory system to run multiple computers, or pods. This allows for much less overhead as each container only siphons off the resources needed to run a function.
While their definitions seem clear, Mathews said that he left a recent industry event that was focused on containers realizing the two ecosystems appeared to be operating on different planets.
“There is really a difference in how the two ecosystems think,” Mathews said, noting the VM world is more focused on large-scale production environments, while the container ecosystem is more aligned with agility and DevOps.
“I think both sides don’t really know enough about each other, and I think that scares each side,” Mathews said.
Containers Making Progress
VMs have a head start in the market, having gained attention from moves by companies like VMware and platforms like OpenStack. But containers have been making headway. SDxCentral recently conducted a survey as part of our 2017 Container and Cloud Orchestration report and found that containers could surpass VMs as the application development platform of choice.
One of the more striking takeaways from the survey was the increased use of containers, which surged from just 8 percent in 2016 to 45 percent this year. Of the 55 percent of respondents not currently using containers, 45 percent said they expect to make the move in the next year.
The lean operating nature of containers was viewed by most as central to their usage. This showed with 62 percent of respondents citing “faster spin up and down” as the reason for their use; 58 percent stating a “lower perceived overhead” than VMs; and nearly half (47 percent) said they were using containers for their “ease of management.”
For the 55 percent of respondents that were not currently using container technology, 51 percent cited a “lack of maturity” for their hesitance; a “lack of management and deployment tools” were cited by 27 percent of non-users; while 24 percent said they didn’t yet “know how to scale containers.”
Mathews did note that some organizations are gaining familiarity with containers by running them inside of VMs.
Mathews said security remains one of the most significant differences between VMs and containers and is likely driving the decision-making process.
In his blog post, he noted that both platforms have “pros” and “cons” in terms of their security parameters and abilities. However, most people are just more familiar with VM deployments and potential vulnerabilities.
“For my money right now, I know how to secure a physical device and virtual machine from an Internet attack,” Mathews said. “When people don’t follow the rules, they get attacked.”
As for containers, while proponents tout security advantages tied to their smaller operating environment, Mathews said vulnerabilities remain, and organizations will want more experience with the platform before taking the plunge.
“There are a bazillion new ways to get into the namespaces that are running containers,” Mathews said. “That’s an area where the vulnerability will hold back the adoption of containers until it’s fully addressed.”
So what’s the answer for organizations today?
“If you’re basically doing a ‘lift-and-shift’ of your application you may be better off simply moving it to a VM where it will experience the least disruption,” Mathews said. “If you’re creating a new application from scratch, you’re probably better off starting with containers.”