In large scale computing, a server will have VERY powerful hardware. You can run multiple VMs on that one machine, giving a slice of that power to each VM so that it basically ends up with multiple individual computers running on one very powerful set of hardware instead of building a ton of individual.
The other key feature being cost. A VDI terminal is much cheaper than actual PCs for employees. When I was working IT for a large company, we were able to get them in bulk for about $100 each. A PC cost us at least $800.
Similar to docker, but the technical differences matter a lot. VMs have a lot of capabilities containers don’t have, while missing some of the value on being lightweight.
However, a more direct (if longer) answer would be: all cloud providers ultimately offer you VMs. You can run docker on those VMs, but you have to start with a VM. Selfhosted stuff (my homelab, for example) will also generally end up as a mix of VMs and docker containers. So no matter what project you’re working on at scale, you’ve probably got some VMs around.
Whether you then use containers inside them is a more nuanced and subtle question.
Running a virtual server allows you to run a server application on its own virtual machine, this eliminates the chance that (when running multiple applications from a server) the underlaying requirement for each apllication conflict.
In comparison to docker the full server can offer more native capabilities for some applications, while other applications simply only run on a full OS.
So by virtualizing the servers one large piece of Hardware can be used to run multiple servers and you can (sometimes dynamically) allocate resources as needed.
The backups can consume all computing power put of office hours while the other applications share during Office hours as needed… sometimes a bit more for VM A and sometimes a bit more for VM B.
Off course monitoring overallocation is a thing as you might end up with bottlenecks caused by peak loads that occur at the same time… the issue would be bigger when running on dedicated hardware.
This may be a silly question, but what are VMs generally used for in a corporate setting? Is it the same use case as docker?
In large scale computing, a server will have VERY powerful hardware. You can run multiple VMs on that one machine, giving a slice of that power to each VM so that it basically ends up with multiple individual computers running on one very powerful set of hardware instead of building a ton of individual.
The other key feature being cost. A VDI terminal is much cheaper than actual PCs for employees. When I was working IT for a large company, we were able to get them in bulk for about $100 each. A PC cost us at least $800.
Similar to docker, but the technical differences matter a lot. VMs have a lot of capabilities containers don’t have, while missing some of the value on being lightweight.
However, a more direct (if longer) answer would be: all cloud providers ultimately offer you VMs. You can run docker on those VMs, but you have to start with a VM. Selfhosted stuff (my homelab, for example) will also generally end up as a mix of VMs and docker containers. So no matter what project you’re working on at scale, you’ve probably got some VMs around.
Whether you then use containers inside them is a more nuanced and subtle question.
Running a virtual server allows you to run a server application on its own virtual machine, this eliminates the chance that (when running multiple applications from a server) the underlaying requirement for each apllication conflict.
In comparison to docker the full server can offer more native capabilities for some applications, while other applications simply only run on a full OS.
So by virtualizing the servers one large piece of Hardware can be used to run multiple servers and you can (sometimes dynamically) allocate resources as needed.
The backups can consume all computing power put of office hours while the other applications share during Office hours as needed… sometimes a bit more for VM A and sometimes a bit more for VM B.
Off course monitoring overallocation is a thing as you might end up with bottlenecks caused by peak loads that occur at the same time… the issue would be bigger when running on dedicated hardware.
Pretty much. Isolated environments to run a single service usually, although someone with more familiarity can comment further
VMs are for actual isolation. Containers are for overcoming limitations of previous century package managers. They are not the same. =)
VMs provide a meaningful security boundary between applications. Containers (docker, etc) do not.