Welcome to the Power Users community on Codidact!
Power Users is a Q&A site for questions about the usage of computer software and hardware. We are still a small site and would like to grow, so please consider joining our community. We are looking forward to your questions and answers; they are the building blocks of a repository of knowledge we are building together.
Why do you need virtual machines in these examples?
It's a virtual machine. Basically, it's one or more computers pretending to be one or more computers. Believe it or not, this is incredibly useful.
- Say you have some services that are busy during the day and others that are busy at night. You need 50 computers to do each of those things. You can now do both with 50 computers by giving priority to VMs based on time of day.
1.1. If you're running some services during the day and other services during the night, then these services won't happen at different times and won't interfere with each other! Why do you need VMs to distinguish these services?
- Say you have mission-critical services. You put them on some VMs hosted on a farm of computers. One of the computers has a hardware failure. Without affecting the uptime of the service, you can take the physical machine out of the farm and repair or replace it.
2.1. This sounds like uploading the mission-critical services to a cloud server? Then why do you need VMs? What if the VMs are on the computer that had crashed?
- Say you have a lot of little tiny apps that don't really need much power at all. You can put them each on independent VMs, all running on one or two physical computers, saving a boatload of money on hardware.
3.1. If your "tiny apps" "don't really need much power at all", then how can you save money on hardware? Why do you need "independent VMs"?
1 answer
Well - all these examples essentially are ways to spread out utilisation of "work" between PCs.
To start with - "Cloud" servers essentially are VMs, running on managed hardware. While in many cases the 'details' are abstracted away from developers, they run many of the same OSes and systems that a 'real' server might.
Say you have some services that are busy during the day and others that are busy at night. You need 50 computers to do each of those things. You can now do both with 50 computers by giving priority to VMs based on time of day.
You might not want to run them on the 'same' servers - either for security or redundancy reasons. This sounds a 'lot' like VDIs - in which case you're running "PCs" centrally and using less powerful clients to access them.In this case you can 'manage' your systems in one place - with updates and maintenance done on the virtual machines, and redeploy resources as needed.
You could also in theory turn off VMs not in use, and get them up faster than bare metal.
2.1. This sounds like uploading the mission-critical services to a cloud server? Then why do you need VMs? What if the VMs are on the computer that had crashed?
In most 'practical' VM setups, you'd separate out storage, management and your virtual machine host. Essentially what happens if a server crashes is your VM management 'node' realises its down, and starts up a new copy of the VM, using the shared storage on another system and that takes over. You might also have extra copies of storage for redundancy and backups.
While in theory you could run physical machines similarly - you'd be running hot and cold spares (A machine running with the services, or a machine with the services installed ready to take over) - you'd have them sitting around doing nothing
3.1. If your "tiny apps" "don't really need much power at all", then how can you save money on hardware? Why do you need "independent VMs"?
Lets say I want to run multiple services that I want to expose on port 80. Only one application can listen to a port on one server. With a VM setup, I could have one VM sitting in front talking to the outside world, routing data to the respective, correct services each running on a self contained VM or container. I could also restart one service, and its associated dependencies, and it would not affect unrelated services.
1 comment thread