december 1st
New York City 2017

understanding networks
#41 Virtualization


This is a guide on virtual machines and a study of the different options that can be found online offering said kind of product and how to use them.

what are they

An electronic device for storing and processing data, typically in binary form, according to instructions given to it in a variable program.

This is the definition of a computer , hence a pocket calculator is a computer, but we do not visualise a calculator when we hear the word computer, we think more of an “actual” computer like a laptop or a PC, things with a GUI (Graphical User Interface) a keyboard and a screen.

This image of a computer that people have is what a virtual machine is emulating . The main difference between a regular computer and virtual one is the absence of physical parts . This means that all the hardware that a computer needs to run is emulated by software. Evidently software that is part of an other computer that has actual hardware. Every chicken needs an egg (at least here).

what is the point of it

Being able to create a virtual system that does not depend on hardware is a very interesting thing but what is the point, why would someone use it. There are two very different reasons that justify making use of VMs.

But to understand this two, there are some common reasons that make a very strong case for virtualization.


It is expensive. specially if you have the chance of not even using it. Virtualization allows us to get rid of the ‘burden’ that hardware is. You don’t need components if you are ‘hosting’ a VM you just need a OS to host it


To manage a virtualized systems is significantly faster than setting up a ‘real’ machine. In a hypothetical situation where you need to add RAM of processing power to a physical machine, you need to; buy the components, install them, make all that works, and then pray for it to be in working order.

With a VM you just need to add it on the system specifications. It’s a matter of seconds. and without paying a penny


All the flexibility that the two previous points give us, make taking care of virtual systems fairly simpler that hardware based setups. Bonus point for less factors to take care of. Like hardware failure of energy management/expenses.


All the reasons mentioned above make a very strong case on why companies make use of virtualization. Those make taking care of information, data, and pretty much anything that a computer could do easier. and subsequently cheaper. Thus is very obvious why is widely used by companies.

the other reason

But that is not the reasons we are talking about virtualization here. Evidently the fact that you can have a computer hosted in your machine is useful, particularly if it is at no expense for you. But being able to ‘manage’ your servers easier and bring your electricity bill down are no strong enough reasons to value the use of a virtualization.

A VM becomes a very powerful tool to do what we do here at ITP, which is ‘playing around’. by that I mean experimentation . The strongest benefit of a VM is that it is a contained system. sometimes you need to run a server. And have it online for everyone to use. But you don’t want to use your domain, or you need a very specific kind of server, of which you want total control over it.

Opening your computer to the internet is a bad idea, you don’t want to just open the door to your house and let anyone come in. Just because there is a room that you really want to show everybody. What you do is build a small shed in you yard, and put your showcase there. Anyone can enter, but you know that the place where you keep all your earthly possessions are safe.

This this shed is not only useful to host your servers, you can use if for pretty much anything that you can do with a computer. Just set it with the specifications you need for your project and you are good to go.

Hosting virtual machines in your own computer can be handy, but you might be missing out on a significant part of what a VM can offer.

Let’s say you are curious about machine learning, that might be a very heavy task on your own machine and your would need to keep it on somehow, that is not a very good idea. How do you get access to a cheap computer, that allows you to have it on as long as you need it to, that is accessible from anywhere, and is fairly cheap to run. Well…

There are plenty of companies that do that. (check Outsourcing bellow) They offer VMs that are accessible online and are cheap to run, you pay them for the hour.

Like a motel for your data (apologies for that).

Getting back to the shed analogy, the good thing about having it contained and separated form your house, is that if you do something ‘stupid’ and burn it down, you don’t have to worry about it.

Most companies offer a snapshot system that allows you to go back to a certain copy of your machine before you screwed it up.


Well, if you are still reading, you certainly interested in this topic. If that is so, there are some things that need to be addressed.

partition v virtualization

It is important to mention the difference between a disk partition and a virtual machine , also known as virtual box. The experience is very similar you have various different systems running in a same machine. But the main difference in how these are being run and created, a partition is a division of computer storage to be able to host different systems with the same hardware, this means that even though we have more than one OS (Operative System) with shared physical components is not the same as a virtual machine. Similar result, distinct build. (elephant & mammoth)


There are different kinds of virtualisation , you can create a system that has no GUI and it’s only controlled through the console, these are the most popular ones. The lack of a graphical interface makes a system less demanding and cheaper to maintain. But the user can’t process the what is happening as easily as you would with a GUI. These are good to be used as servers, databases, or any operations that clearly have no need of a graphical interface

An alternative would be a system that has a GUI, which would be the closest to a regular computer.

These are the ones that are more popular for small projects or experiments of any sort, there are 5 specific kinds of virtualization.


OS-Level: When a virtualized environment is hosted in an existing instance of an OS

This is most used kind of virtualization in the context of experimentation , and specifically what is referred as Virtual Machine (VM) .

App: narrowing down the virtualization to an only application. A use case might be portable apps.

Service: Virtualization of a concrete part of an existing application, like an API


Memory: Simply virtualization of Random Access Memory (RAM).

Virtual Memory: Faking the amount of memory given by the computer, isolating or expanding the memory to fit your purpose.

Storage & Data

When the physical capabilities of a system are delimited using virtualization.


When a network is created between virtual nodes in the same host OS.

Virtual Private Network: also know as VPN, is the network protocol that replaces physical connection with a virtual one that allows the creation of a network over the internet.


As mentioned before, Making use of services that host VMs for you in exchange of a fee is a very valuable resource if interested on virtualization. There are plenty of companies that offer this. The following is a compilation of the best/most used websites related to the subject in hand.

digital ocean droplets


easy fast deployment Low variety
no BS confusing naming of products
Active community  

amazon ec2


Large spec variety Not new user friendly
Large OS variety Very long sign-up

microsoft azure


Long term discounts too expensive for new users
200$ credit for new users  
well explained options  

google cloud compute


extremely customizable extremely customizable
good documentation business focused

dizzion cloud desktop


virtual Desktops Business focused
niche options at least 50 users


good middle-ground Business focused
easy setup  

alibaba cloud


lots of storage convoluted UI
free snapshots  

build your own

If all this sounds good and you would like to get started with VMs, you should do the tutorial bellow. It is a very hand-holding tutorial that helps you set up a server and have a website running.

It uses Digital Ocean and uses node for the server. very simple stuff.

Digital Ocean + Node


Please, tell me how good or bad this post was. And comment on anything that comes up in that beautiful brain of yours.