Hello, I am Abdullah Zahid and our today's article is going to be very specific and we are going to discuss how computers and servers changed. In the old days the reality was that only one server could be there to entertain one application. Which means that we spent a lot of money on the hardware of our machine which ran only 1 server for only 1 application.
Like we would be wasting a huge amount of hardware on simply running a web server for a web application of course. This was a huge head ache for a lot of companies and was a source of huge loss of hardware and electricity and took a whole lot of space. As we a company wanted more servers to entertain more applications they would require more space, which again costed more money and one machine could only run one server for one application.
Now these machines barely used any hardware. Barely 20% of their hardware capacity would be in use for running a server. To fix this a solution came in, that solution we call today as Virtualization.
Disadvantages of Running one server on one machine
High cost: Buying a lot of physical servers requires money and it also requires a certain amount of time for its deployment. Not only that we also have to account for their cooling, space, maintenance and again purchasing them.
Low utilization: As mentioned before running these servers barely utilized the maximum potential of the hardware of their machines. Which left unused hardware which came at a cost of money rotting in those machines.
Slow deployment: Setting up those new physical servers could take days or weeks.
Hard to scale: If an application suddenly needed more resources and hardware, you often had to buy yet another upgraded machine for that new server.
So what is virtualization?
Basically, the main idea revolves around the fact that we are not going to allow even a single piece of hardware go unused. If the hardware exists then why don't we use it all? So, this gave birth to virtualization.
In virtualization we basically make virtual machines on existing hardware and these machines are totally virtual and only utilize a slight portion of the existing hardware. For example, we can windows running 2-3 or a number of machines that our main physica
l hardware can handle so the numbers can not be limited but yes our hardware can be limited. But yes each machine can run a new server. In simple words we could have multiple windows inside a main windows OS through virtualization. This was revolutionary my friends. It is directly responsible for the birth of cloud infrastructure.
How Does It Work?
We basically have a software that creates this virtual world for us. This virtual layer or software in computer terminology is what we call a " Hypervisor ." Through this software we are able to create virtual operating systems. This means we are now able to run multiple servers on the same physical hardware.
The best example for explaining this concept is that of an apartment. Suppose our physical computer is an apartment and until now we were only able rent out 1 floor of this apartment. But through a hypervisor we are now able to divide this apartment into multiple floors which we can rent out. Each floor with its doors, windows, furniture etc. Now if we pivot back to computer terminology we can say that each floor is an Operating System (OS). And it works through a hypervisor.
Now each of these new " VIRTUAL OPERATING SYSTEMS ." Will have their own virtual CPU, GPU, Storage RAM/ROM etc. This will be a whole proper Operating System in itself. Now friends those who have read till now, if this isn't mind blowing I do not know what else will be. I mean of course there's way more mind boggling concepts out there but I can assure it is up there with them hahaha.
Types of Hypervisors
A hypervisor has 2 basic types.
Type 1 Hypervisor: This type of a hypervisor runs directly on your physical hardware. It has it's own distinct and highly useful advantages. But then I usually use and I believe normal users like us use is the type 2 hypervisor. Type 1 hypervisor is often used in cloud computing.
Type 2 Hypervisor: This type of a hypervisor runs on software like VMware, VitualBox and many other. This type specializes in providing true isolation from your main Operating System OS. You can test software, malware and many other system issues on this type of a hypervisor due to its isolation tendencies. But a type 2 hypervisor is usually used for individual purposes.
Virtual Machines
The Operating Systems you run on a type 2 hypervisor like VMware and VirtualBox by Oracle are called Virtual Machines (VMs). These Virtual Machines could be of any Operating System as long as you have their license or they are open source. You can either download prebuilt machines or download their Virtual Images through which you can make their Virtual Machines. Suppose you want to run the Linux Operating System but you also want to keep on using your Windows Operating system.
You will simply download the Linux Operating System's virtual image or it's prebuilt virtual machine and download it. You will open it through VMware/VirtualBox and boom. You are running an isolated Linux OS on a Windows OS which required nothing at all. It is running on the same hardware your Windows runs on. And the best part is you can choose how much of the storage and hardware you want to dedicate to your Linux OS.
Conclusion
I am aware that I did touch the Cloud Computing topic but we are not quite their yet. For the next article I will write it on the topic of containers and a bit of cloud computing or maybe all of it. But this was it for today I am Abdullah Zahid and will be back with another helpful article!

