Hello guys, My name is Nikhil Gupta and welcome to learnvern’s video series. Our today’s topic is virtualization tools, so first we need to understand what virtualization is. Virtualization means something which is physical in real life. If I make such software which will emulate real life’s physical thing, it means copying it. That process is known as virtualization, that is also software and it works in a similar manner as our real physical thing works.
For example, we have mobile phone which we use for calling someone and playing games and we can use it as touchscreen, if I make such software which copies mobile means same like mobile you can touch on its screen and it will turn switched off, so we will call it virtual mobile or virtualization, so why are we using virtualization tools in devops? So what does virtualization mean? In devops we will virtualize our whole computer and make a software which will act like that only ,now the first question arises is what is the need for this?
So if I install any software in my computer or I have created a software and installed in it ,now as we know errors are very common, and in devops we have many errors so because of my software my computer stopped working okay, so if put my computer on physical device and it shuts down because of some reason then what will happen? I will lose all my data and we will not be able to detect problems in our software okay,, so during such times how does virtualization help?
If your company is running five different software at the same time, so if 1 out of 5 software crashes then also your pc should not shut down, the remaining four software should work properly. So how will you do that? You can use virtualization, just take a big heavy pc in which RAM will be good, hard disk will also be good and processor power will also be good, so divide it in different virtual machines and run each software in each virtual machine, so if any problem occurs then your virtual machine will stop working so ,what is the benefit of this?
First benefit is, if any one software is causing problem then it will not affect your other software and other machines okay, so this was first benefit, now second benefit is that you get security, for example as we know google, gmail and youtube is handled by same company, so if any person hacks gmail somehow, so can that person hack google drive also? Or youtube? No he will not be able to do this, this is just an example. It does not happen in reality, but still if the same company is handling five software and all are kept on the same device without any virtualization then what will happen?
If your physical device is compromised then it will affect all your devices and all the software will be hampered, but if you have used virtualization then what will happen? If your one software is compromised then also your other software will not be compromised means an isolation is created, isolation means if one software is compromised other software remains unaffected okay and it has many other benefits, for example if you have a website and in that website you are using library, for example php, so my one website is working on php’s 5th version and my other website is working on php’s 7th version ,so sometimes it happens that I am not able to install two different versions in same computer otherwise you need to install locally, so to avoid this situation also you can use virtualization.
In virtualization what happens? Two different PCs are created and the libraries will also be different, and thus, one library will not clash with other libraries and you can use different versions also okay, so we have different uses also of virtualization and because of this reason many companies today use virtualization okay.
Now we understand what virtualization is and why it is used, but we have different parts in virtualization. First we will understand why there are parts. As I told you, in virtualization, a copy of a physical object is created through software, now what am I doing? I am making virtualization of the whole computer, so as my computer works, the software will also work in the same manner. Now what is the disadvantage of this? Computer will have RAM, hard disk, processor ,so whenever you will virtualize these things you will realize that it is using lots of resources, now if you have to visualize 1 GB RAM means your computer’s 1 GB RAM and plus your virtualized pc’s RAM which will be more, that this almost till 2 GB, so what is the biggest problem here, the physical resources which you are using is a lot, let it be processor, RAM, hard disk, so, many companies noticed that till one limit it works when you visualize whole computer then what happens if you have lots of service which normally works on your physical pc but as you have done virtualization ,so your resource requirement has increased.
Then many people worked on it and divided virtualization into different parts, that is full virtualization, now in full virtualization. you will virtualize everything, then comes OS level virtualization, in this you will virtualize only OS, so the benefit of doing this is your whole pc will not be created separately, only OS is created separately and for every OS you can decide specific RAM, now in this you are not virtualizing your whole system means you don’t need to create separate RAM, hard disk and you don’t need to maintain it okay, now it has some disadvantages also, so the disadvantage is if system is crashing for one thing then it can affect other parts also but that is physical problem okay, so in OS level virtualization you are sharing physical resources whereas in full virtualization everything is isolated, both physical system and OS okay.
So after OS level virtualization, we have paravirtualization, now OS virtualization and paravirtualization are almost same, there is not much difference in both, the only difference is in os virtualization your libraries will also get virtualized, means you can restrict it that one OS will have only 2 GB RAM, so it will not be able to use more than GB RAM irrespective of how much RAM is present in my system, even if 12 GB RAM is present it will only use 2GB only in OS level virtualization, but in paravirtualization your whole virtual machine will work on your computer’s physical device, now what happens in paravirtualization is if any problem occurs and it is affecting your physical device then it will also affect your real physical device first thing, and another thing if your software is using 4 GB RAM then that 4GB RAM will also affect your other software.
Whereas in full virtualization even if a software is using 4GB RAM, other software will remain unaffected because we have virtualized both OS and system, but if I talk about OS level virtualization and if my 2 systems are using 4GB RAM then other systems will not be able to use that 4 GB RAM, means in this, physical device is shared between everyone and in the last one also in paravirtualization physical devices are completely shared, so if a person is using 8 GB RAM then also he can use it.
So what are its advantages? If your software works very less and some software are used very often and if you divide it perfectly that half software will use this and another half software will use another, so what happens here is, the software which is used less we have allotted him also same space and resources of physical device, so that will be wasted, whereas in paravirtualization it will not be wasted, but its disadvantage is if someone is using both the service at same time and if one service is using 5 GB RAM then it will be blocked for other service also, so it has both advantages and disadvantages.
After that, one more virtualization was introduced, which is containerization . Now what happens in containerization? In this we do not virtualize whole OS, instead we just try and virtualize the environment, virtualizing environment means, for example if we take a software then with every software some libraries are available and your whole software can never work standalone, working standalone means if I attach software containing pen drive to computer and I have not installed any OS or anything of that sort, I want to start that software directly through BIOS, then will it start directly? No, it will not start, so same thing happens with containers also, here we just try to create a basic, so that it can work on that level, means without any requirement from physical OS, means our parent OS and our containers are known as child containers or child Oss, in this our container does not require anything from our physical system, not even resources, we will only share physical resources so that is known as containers.
In containers we share RAM and it has an advantage also, in this our requirement of dividing RAM, we have to give something from OS that we don’t have to do here, and second advantage is as we discussed earlier, in containers we are just keeping basic software which it needs, now some things are present in computer known as kernels and driver, and containers use kernel and driver of our parent PC or host PC okay.
So we will see examples here, so first we will see which tools of virtualization are available, so the most common tool available is vmware, apart from vmware we have other tools also like virtual box, virtual machine manager, so we will see all these tools in detail. So first we will start with vmware ,so vmware is not free version or free software, you need to purchase it and it looks like this, so here you can see many computers, so all these are virtual machines which you can see on screen, so when you will start it, this option will come in front of you, either create a virtual machine or open it or connect with remote server and view here, and its UI is also very easy and you can make anything in this easily and it supports almost every virtual machine except MAC, if you want to run MAC then you should have MAC book, then only you can run it, but you have many other methods also which you can use, we call it hack in torch type but that is also difficult.
Now after this we have virtual box, so virtual box is not as advanced as vmware but using it is very easy okay, virtual box is open source so it will run on windows also and Ubuntu also and on MAC also, in virtual box also you can do full virtualization ,like this type of screen will be shown, and in vmware and virtual box, everything is almost same here. you can see after installation you have to run in this type of virtual machine, so here at the bottom can you see the status? Here in status you can see which hard disk is connected, which DVD is connected and what type of internet is connected, so here you can see for both virtual machine also and main PC also, so this is whole virtualization.
Now another thing here is this one, now what is this? Here we are running another OS in windows i.e. Ubuntu, so you can run another type of OS. Also, it is not necessary you have to run windows only in windows.
Third is virtual machine manager, now virtual machine manager you can see in CentOS, Ubuntu it works completely on QEMU and this is also very advanced you can use this also for emulation, for making virtual machine, okay, so here this example is given to you and if you look carefully, then you can see this, you can see in our virtual machine means this output which you can see here is from our virtual machine, so if you are running virtual machine then you can see this in virtual machine and the upper part is your host machine or parent machine, so this was about virtualization.
Now let’s understand containerization. We have two tools available for containerization that are kubernetes and docker, okay, so we are going to study these both topics in detail later, so now I won’t go into details of this, we will discuss it later.
If you have any comments or questions regarding this course then click on the discussion button given below this video and post it there, and you will be able to discuss the course with learners.
Thank you.
Share a personalized message with your friends.