this post was submitted on 23 May 2024
462 points (99.1% liked)
Technology
59534 readers
3195 users here now
This is a most excellent place for technology news and articles.
Our Rules
- Follow the lemmy.world rules.
- Only tech related content.
- Be excellent to each another!
- Mod approved content bots can post up to 10 articles per day.
- Threads asking for personal tech support may be deleted.
- Politics threads may be removed.
- No memes allowed as posts, OK to post as comments.
- Only approved bots from the list below, to ask if your bot can be added please contact us.
- Check for duplicates before posting, duplicates may be removed
Approved Bots
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
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.
I have three VMs running concurrently on a decade+ old Dell T7500.
Even elderly enterprise stuff can do this.
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.
And off course having multiple hardware platforms interconnected allows for a VM to be moved from hardware platform to hardware platform without interruption (license required) meaning you can perform hardware maintenance without an outage.
VMs provide a meaningful security boundary between applications. Containers (docker, etc) do not.
VMs are for actual isolation. Containers are for overcoming limitations of previous century package managers. They are not the same. =)
Pretty much. Isolated environments to run a single service usually, although someone with more familiarity can comment further