Virtual Computers

What is a virtual computer and what role does it play?

Virtual hardware utilizes a collection of computing resources such as the memory, processor and storage of a real physical computer. This is often referred to as a virtual machine (VM) and it’s possible for many of them to be running on the same physical computer, sharing its resources. 

Article by Simon Challinor
Photo by Bradley Hook from Pexels

Each VM sees itself as a separate isolated computer with its own operating system and file system and potentially its IP address on a network or the Internet.

Whilst VMs are a relatively mature area of computing, in recent years a new type of technology “Containers”, that uses similar concepts to VMs, has arrived.  Docker is one such example. 
Historically VMs have been quite heavy in terms of their requirements but with the introduction of Docker Containers we can run many of these virtual computers within the same server or even on your mac book. 

What does that really mean for us?

 An example would be running two or three other operating systems (perhaps different versions of Linux) simultaneously inside the mac OS on your laptop. Each container is a separate isolated computer environment and each container installs just the software it needs for it’s own task.  One container may be a webserver designed to serve webpages, one may be optimised to run a particular database and one may needed to run regular background processes such as backups.

Why can’t we do that all on just one computer? 

This can of course all be done on a single, regular (physical) computer but the advantage of virtual containers is that each one is a virtual snapshot of a computer (stored in binary file) that can be started, stopped or moved to another computer as, and when, we need them.  In other words the computer and all of its setup can be running (or not) anywhere we wish.

The entire concept of a computer is now abstract and separate from any one physical device.

The physical hardware is not a limitation. At 12pm it’s running on my mac book pro in Hong Kong but 5 minutes later it can be running somewhere in the cloud on a physical server based in London. Later we may need more power so 3 new instances of the same computer could be spawned in other locations around the world.  

When the virtual computer is not running the sum total of its existence is effectively just binary (zeros and ones) so it can be copied, transferred and restarted elsewhere.

We would have confidence that there would be absolutely no difference in the way the container operates. 
The concept of a computer has itself become virtual in nature independent and indifferent to the physical memory or the CPUs it uses.  Hardware is disposable and abstracted away from the logic and purpose of the computer.