If I need N virtual machines running the same OS, this simply means I need to install these N machines and then also have to take care of their updates etc etc...

Is it possible to have only one virtual machine as base that has OS installed so I would only need to update one VM OS, and all the rest would use this base VM to install other software that they need. This means that updating base would update all of them.

Question 1: Is this even possible/feasible?

If this is not possible, is it possible then to have a host OS and then just fully virtualize environments, so that running an environment would start a virtualized sandbox in the host to install and use environment-related apps. This would also mean that I would only need to take care of the host OS, and all sandboxes would get updated OS. If this is even possible, is it also possible to run multiple sandboxes simultaneously?

Question 2: is environment sandboxing even possible to the extent that it really doesn't interfere with host OS? So that it doesn't have any impact to the non-sandboxed apps running on the host.

Note: I'm only familiar with VMWare Workstation/VirtualBox VMs, that are separate from the OS in terms of maintenance. I've never used or researched anything else.

  • Did you check out Docker? – Tommiie Sep 14 '18 at 7:37
  • @Tom: Nope? Looks like I will have to. I only checked Sanboxie which doesn't really virtualize environments but rather just a single app... Still I'm vary of its complete separation. – Robert Koritnik Sep 14 '18 at 7:48

There is a spectrum of virtualization/isolation and deployment methods, so it is all possible.

Template VM Deployment

Often, a host is updated in place after it is deployed from a golden image template. You may have a generic web server disk, but say web2 has installed a certain release of the web site. Refreshing from the template has to preserve that customization. Maybe you can keep data on separate disks, or get very good at redeploying your application, or whatever.

An alternative is to maintain two production environments, update the passive one, and cut over to it. This is sometimes called blue green deployment. The next version can be freshly cloned VMs with an updated OS if you want. Or newly deployed containers. Which brings us to...


Regarding sandboxing, containers are good at isolating processes on a shared OS kernel and hardware resources. One light weight container does not have access to another's resources, and you can run many of them. Although, being shared means that one hardware fault or kernel panic can bring down all the containers. You haven't specified which OS, but the concept is implemented in many isolation technologies: Solaris zones, BSD jails, AIX WPARs, Windows containers, Linux containers.

There might be some OS components to maintain in a container, depending on technology. But generally not, they are usually light weight and just the userspace programs for the application.

| improve this answer | |

Answer to your first question: You can create VMs instantly through maintaining templates. It's possible on any hyper-visor.

Example: https://www.starwindsoftware.com/blog/automate-the-hyper-v-virtual-machine-deployment-with-powershell

But you have to manage the OSs (Host and Guests) seperately.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.