Introduction & Tutorial for Introduction to Hypervisor , Docker & Container . Covering basics of Virtual machines Hypervisor Vs Containers Dockers & How they work in Cloud computing
- What is Hypervisor ?
- What is Container & Docker ?
- Difference between container Vs hypervisor
- Benefits of Container
- Use Cases in Telco Industry
Download PDF / PPT
There are two ways to implement Virtualization , 1st One is traditional Virtual Machine based hypervisors & 2nd one is more advanced where we are use Containers .
- If you’re a techie or work in IT or Telecom or Network domain , This becomes necessary for you to understand this Virtualization technology as Every one from Large Scale Mobile operators to Giants like Google and Amazon are building services to support it . Here , We will cover high level concepts of Hypervisor based Virtual Machines and Container which are easy to remember for life time .
- Container is based on advanced technology and provide effective Alternative for Virtual Machines running on Hypervisors
here we are going to cover another aspect of Virtualization where we go deep in understanding what is Virtual Machine based Hypervisor & New technologies in this field by name of Docker & Container
First thing First …. What are “containers” and “VMs or Virtual Machines”?
VMs or Virtual Machines and Containers are going to do same thing .. i.e. Virtualization , Their Goals are same . They are going to enable Applications to use virtual resources such as Virtual Hardware , Virtual Compute , Virtual Network in much more scalable and flexible way . With Virtualization , There is no need for physical hardware allowing for more efficient use of computing resources, both in terms of power , space , Infra and cost effectiveness . The main difference between containers and VMs is in their architectural approach , Let’s start our journey
What is Hypervisor ?
Our topic is Introduction to VM Hypervisor , Docker & Container . With time, things have changed a lot. Virtualization is one of these innovative technologies that was invented somewhere around 1960s by the IBM. Since its inception, This virtualization technology have helped transform the way people compute . In today’s world this virtualization technology is used to logically separate the physical resources of a server and use them as different isolated machines, called Virtual Machines. The CPU becomes many virtual CPUs, Storage & RAM have become virtual Memory , Network or NIC cards resources have become virtual Network resources
What are Virtual Machines or VMs , How hypervisor works ?
Gone are days when we are running one application on one server and by physical servers I mean hardware just like the one you’re seeing in left hand side . This type of deployment requires new server Everytime we want to have new application or new service
The problem with this traditional deployment on left hand side is :-
- Most of Server are underutilized , Say they are running on 10 % type of utilizations
- Any new requirement takes multiple days & months to be fulfilled , As this requires new server procurement , arrangement , deployment etc.. Business needs this to be fulfilled of yesterday
- There is always issue with flexibility as traditional model is dependent on underlying Hardware specific Variables & Environment to function properly
On Right hand side , You can see Virtual Machine with help of Hypervisor where we are running multiple Applications on top of Core Hardware and Hypervisor layer . A VM or Virtual Machine is essentially an emulation of a real computer that executes programs like a real computer. VMs run on top of a physical machine using a hypervisor
Let’s Understand , What is Virtualization & How it works
Virtualization is the act of migrating physical systems into a virtual environment. You can see that , App1 running on traditional Network on left hand side which gets virtualized . In other words, Virtualization is the creation of a virtual resource by abstracting actual Hardware resources . Here we have virtualized computing resources which allows us to use one server for multiple Apps by creating isolated environments for these individual virtualized Applications . Here resources are abstracted as Virtual Compute , Virtual Storage & Virtual Network ( The abstraction means a software emulation of that hardware ) . The Apps are only interacting with Guest OS which is using these virtual resources instead of physical hardware
With help of Virtualization , We can instantly access nearly limitless computing resources which allow for faster and Flexible rollout of business requirements . With Virtualization , We can improve overall App performance due to better and faster scalability , better utilization and availability of resources
Hypervisor .. Complete Story
Role of Hypervisor
Now , We know what is Virtualization & How Virtual machine works , Let’s understand What is Hypervisor & how it works .. Hypervisor is building block for Hosting Applications and Virtual Machines . The role of hypervisor to take resources from Physical computers . Further these resources are emulated and abstracted as software and provided to various VMs in form of Virtual Compute , Virtual Storage & Virtual Network . One VM can’t consume resources allocated to another VM . Hypervisor isolates and protects these VMs from each other . In case one of VM or Virtual Machines exhausts all its resources , Its not allowed to simply eat up resources for another VM
The Hypervisor runs on Host Machine using Host Operating systems and physical resources . It further hosts multiple VMs also called as Guest Machines . This guest machine or VM contains :-
- Guest Operating system such as MAC , Windows or Linux .. Pls note that this Guest can be different from Host Operating System where Hypervisor is running
- The application and supporting system binaries and libraries
Features and Roles of Hypervisor are :-
- Hypervisor is a Software Component
- Hypervisor works on Host Machine using Host Operating System
- Hypervisor is key to Enable Virtualization
- Hypervisor distributes host hardware’s resources
- Hypervisor Provides isolation between various Guest Machines or VMs
- With protection provided by Hypervisor , One Guest Machine cannot affect Host or other Guest Machine
Concept of Docker / Containers
Before we get into deep understanding of Containers , Let’s understand , Why we call container as Container .You can see physical containers on Screen .There are few great Qualities of these physical Containers which we are going to use in Virtualization world .. Let’s discuss similarities between Physical container and Virtual container
Containers are complete Package .. They contains both application and respective libraries and any other dependencies . These containers are then shipped as one package which ensures it will run without any fault on every other cloud and any other machine
Similarities on Physical container on Ship and Virtual containers
- The 1st Quality of Physical Container on Ship is Standardization : A Physical container is same worldwide , The looks & Physical characteristics of Containers are always same . In Technical world , Containers have evolved as new standard for doing virtualization , They are standard every where
- The 2nd Quality is Physical Container on Ship is portability : The Physical Containers are highly portable & can be shipped and used any where . Similarly , In virtualization , The Containers are highly portable , They will run the same way in production as they are running in Laboratory during Coding
- The 3rd Quality of Physical Container on Ship is Lightweight : Just like physical Container are lightweight and easy to install / remove . The Virtualized Containers are also very very Light . They share the machine’s OS system kernel and therefore do not require an OS per application, This drives lot of efficiency
- The 4th Quality of Physical Container on Ship is Security & Protection : Just like Goods are safe in Physical Container , Applications are safer in containers and Docker provides the strongest default isolation capabilities . The Application running in container is safe , Gets complete dependencies and will not get impacted by Outside world
Let’s take deep dive in this container Journey ..
Hypervisors Vs Container
Container :- Containers does the same work as Virtual Machines , They serve the same purpose but they do it differently . On left hand , There is Virtual Machine using Hypervisor . On right hand side , There is Container . With Virtualization , Both VM & Containers are eliminating the need for physical hardware , improving efficiency of compute and helps in speed and scale
As you can see on Right hand side , Multiple containers are running on same machine and same Host operating system . They don’t need separate Guest OS and share the kernel of Host OS with other containers .. You can see 3 Containers on One Machine … Container 1 , Container 2 , Container 3 . These all 3 Containers are running in isolated processes in user space
Architecture difference between VM (Hypervisor) and Container :-
- Guest Operating System not required : The biggest difference between both is absence of Guest OS on Container . Instead , Container uses these resources for application which does meaningful work rather than wasting same in Guest Operation System . Each container gets its own isolated user space to allow multiple containers to run on a single host machine
- Light Weight : Since , There is no Guest Operating system in Container , The Host Operating system is itself used and shared by all containers . Only few additional Libraries are required by Container to work . This makes containers so much lightweight
- These two points makes containers fairly small in size as compared to Virtual machines . We have tried to show you this with example of Elephant Vs Mouse . Hypervisor based virtual machine represents Elephant whereas mouse represents smaller Container
- Lightening Fast : One of the other key benefits of containers is lightning fast speed . Containers are at least 9x faster than Virtual machines , They are created and destroyed in few seconds as we don’t need to boot up any additional Operating system . This speed is really helpful in situations where we need things to be happening really fast . You can see example of Tortoise and Rabbit where Hypervisor represents slow Tortoise and container represents fast Rabbit
- Virtualization Mode : VM virtualizes the hardware , While containers virtualize the operating system instead of hardware. This makes Containers much more portable and efficient . Since there is no OS based dependency in container , We can have much better integration here . Containers are an abstraction at the app layer that packages code and dependencies together
- Portability : With help of Dockers , The containers are so powerful & so much portable . Anyone from Coders , developers can develop these applications in Lab & Test same . The same code then can be ported to anywhere such as public cloud, private cloud etc.. There is no extra dependency required for running this Application in any environment . The container is world in itself & ensure seamless migration of code to any Platform . We also call containers .. “build once, run anywhere” . I am again iterating .. Containers are complete Package .. They contains both application and respective libraries and any other dependencies as One package . This package will run without any issue on any infrastructure . You can never achieve this portability with Hypervisor due to these dependency .
- Modularity and Scalability : Docker are used to scale in , scale out capacities on modular basis . The entire process is very automated and empowers entire process
What is Docker
Docker is a essential tool designed to manage Container . Docker is directly responsible for create, deploy, and run applications based on containers . It was first released in 2013 and is developed by Docker, Inc.
Docker is used to run software packages called “containers”. Containers are created from “images” that specify their precise contents. Images are often created by combining and modifying standard images downloaded from public repositories. Docker manages them all . There are 3 mains components to entire Docker working .. BUILD , SHIP and RUN which we will discuss in upcoming Cloud Videos
With this , Our Hypervisor / Container / VM Introduction Journey is complete , Hope this will bring more value for you
Please feel free to Mail me ( firstname.lastname@example.org ) . Please Like , Comment , Share & subscribe to my Youtube channel for more Tutorials & Technical Videos
Leave Comment on my Youtube Channel Video Page to Ask your Queries , I will get back to you as soon as possible