5 ms·
Container virtualization certainly has its uses, and we will see hosting products based on it; no question. But to say that it is "the future" and virtual mach
by ebbv 13y ago
Container virtualization certainly has its uses, and we will see hosting products based on it; no question.
But to say that it is "the future" and virtual machines are on their way out is a naive view.
There's plenty of reasons why someone might want a virtualized OS; customization.
What if my application is built to run on Debian but yours is built to run on CentOS? With container based virtualization we have to be put on different nodes. With VMs, we can share a node.
This is why VMs exist. This is why they will continue to exist.
Disclaimer; I work in the hosting industry.
- justincormack 13y agoYou can run debian containers in a centOS host, so long as they can share the same kernel, which Linux distros mostly can now, as we dont see the degree of distro patching we used to at one point.
- ebbv 13y agoIt was just a simplistic example. The point remains the same; there are use cases where people want an OS image that has a different kernel.
- viraptor 13y agoThere's a question of "which people?" Sure, there are some cases where people will want their own OSes / images / kernels. But there's also a huge group of "people" who would prefer to make the whole issue of "image" disappear. They're more happy to deploy to heroku / dotcloud / something similar where they can have the NoOps environment. And for those providers secure containers will have a much lower overhead than full blown virtual machines.
- ebbv 13y agoYes this is true and I said that we will definitely see hosting products based on containers. I'm not disputing that point. You know what the most popular hosting product is right now? It's not VPSes. It's shared hosting. Good old simple shared hosting outsells VPSes by a huge margin. There's plenty of room for a variety of products, all the way from shared, to VPS, to container based to dedicated servers. What I took issue with was the original article saying that containers would make VMs a thing of the past, which is silly.
- dedward 13y agoIt is silly - it's apples and oranges. We will still need virtual machines for different operating systems, different versions of the same OS, multiple instances to span multiple VM hosts for scaling/redundancy, and so on. Containers will cut down on the number of VMs we have to deploy within an organisation, nominally... it will be a more effective way to manage resources. VMs won't go away, or even be diminished.
- vidarh 13y ago> With container based virtualization we have to be put on different nodes. That's only true when the OS's in question require different kernels. For OpenVz/Virtuozzo for example their RHEL based kernel has long been the preferred one for a lot of people for non-Redhat Linux versions too. I agree with you there are still lots of reasons people will want VM's though. We've picked containers at work, but only because while we host customer sites, we run and manage all of them, and so have a lot of flexibility a typical hosting provider doesn't have.
- dedward 13y agoI don't see VMs and Containers at odds. Virtual Machines let us abstract away our hardware resources. They also made deploying new instances much easier than it was previously, so we started using more instances than we would ahve without it, just to provide configuration and resource separation. The first part is still necessary - and we still need multiple instances to take advantage of multiple VM hosts when it comes to scaling and redundancy. The second part is what containers address. I have a feeling we will end up mixing and matching the two as appropriate.
- vidarh 13y agoI don't get what you're saying here. You don't need VM's to abstract away resources - containers do that just fine. Containers are - depending somewhat on the container technology used - from a user perspective just like a VM that happens to be restricted to running the same kernel as the host and use less resources. Some container systems may leak more in terms of abstractions and/or might not be designed to be as secure, and so there's certainly scenarios where certain types of containers are not appropriate, but that's an issue of specific implementations. In the systems I deploy, containers takes care of all of what you describe all by themselves.
- mikegagnon 13y ago> There's plenty of reasons why someone might want a virtualized OS; customization. True, using today's off-the-self software it is easier to customize your environment using full virtualization compared to containers. But it isn't an inherent limitation of the container approach. Containers do however, provide inherent cost savings compared to full virtualization. I expect that in a short amount of time, usability for containers will continue to improve. See for example docker: http://www.docker.io/ http://www.docker.io/ > What if my application is built to run on Debian but yours is built to run on CentOS? With container based virtualization we have to be put on different nodes. With VMs, we can share a node. With the cost savings afforded by containers, I expect developers will generally choose to write applications that are portable enough to work inside containers. > This is why VMs exist. This is why they will continue to exist. Virtualization is popular because it is a feature-rich, economical way to host. Containers are more economical and I expect will win in the end.
- bmullan 13y agoYou can run any distro in a LXC container... Only requirement is that they all run the kernel of the host.
- api 13y agoContainers can run any Linux distribution, and any version thereof. The only thing you can't do is customize the kernel, but 99.99% of applications do not need this. Then there's emerging technologies like rump kernels, which might permit endless kernel customization with very tiny overhead... even emulating other OSes.
- deleted 13y ago[deleted]
- olgeni 13y ago> There's plenty of reasons why someone might want a virtualized OS; customization. Also, avoiding having to deal with Linux.
- pacala 13y agoThe only reason VMs exist is because build systems are leaky. "Application built to run on Debian" means application depending on a myriad packages / shared libraries pre-installed on Debian. If your build system were hermetic, you'd end up with package that contains everything you need, which you can deploy everywhere you want, provided a comparatively tiny syscall interface. The costs in complexity, incompatibility and pure byte bloat of running Debian & all are going to eventually be their death knell.
- shykes 13y agoAnd this is why docker.io exists :) See for example https://github.com/steeve/docker-opencv/blob/master/Dockerfile https://github.com/steeve/docker-opencv/blob/master/Dockerfi... for a completely hermetic build process which outputs a self-contained tarball which can be run as an lxc container.
- davidgerard 13y agoMy recent experience is the same sort of setup on Solaris 10 zones, moved about a year ago to Ubuntu VMs. If I could do it all with Solaris zones, I would. The main problem for a hosting company is they would be hard to sell.
- bmullan 13y agoLxc only requires same kernel in containers as host. I use ubuntu and have containers in several diff distos...they work fine.
- bmullan 13y agoBiggest reason I still have for VM is when you need to virtualize a non Linux OS (windows etc). Other than that lxc now does just about anything a VM can do. Live migrate between machines, nested containers, remote desktops (freerdp, x2go). Understanding start control cgroup gives you is important. For a great GUI mgmt tool for LXC look at LXC Web Panel..!