Provides Isolated and Customizable Environments

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 41

Virtualization in Cloud Computing

Provides isolated and customizable environments, running multiple operating systems on a single machine but sharing all the
hardware resources
Virtualization in Cloud Computing
Virtualization confers on cloud computing the necessary degree of customization, control, and flexibility for building
production and enterprise systems.

Virtualization is the process of creating a virtual instance of a device, such as a virtual server or virtual operating system.

Virtualization is essentially a technology that allows creation of different computing environments. "creation of a virtual
version of resources such as a server, a desktop, a storage device, an operating system or network resources".

These environments are called virtual because they simulate the interface that is expected by a guest.

Virtualization allows to share a single physical instance of a resource or an application among multiple customers and
organizations. It does by assigning a logical name to a physical storage and providing a pointer to that physical resource
when demanded.

Virtualization technologies are also used to replicate run time environments for programs.
The concept behind the Virtualization

Creation of a virtual machine over existing operating system and hardware is known as Hardware
Virtualization.

Plays a fundamental role in cloud computing. A Virtual machine provides an environment that is
logically separated from the underlying hardware.

The machine on which the virtual machine is going to create is known as Host Machine and that
virtual machine is referred as a Guest Machine

Cloud Computing in collaboration with Virtualization ensures that the modern-day enterprise gets a
more cost-efficient way to run multiple operating systems using one dedicated resource
Features of Virtualization

• Partitioning: Multiple virtual servers can run on a physical server at the same time.

• Encapsulation of data: All data on the virtual server, including boot disks, is encapsulated in a
file format.

• Isolation: The Virtual server running on the physical server is safely separated and don't affect
each other.

• Hardware Independence: When the virtual server runs, it can migrate to a different hardware
platform.
Types of Virtualization

1. Hardware Virtualization

2. Operating system Virtualization

3. Server Virtualization

4. Storage Virtualization
Hardware Virtualization

Virtualization means creating a virtual platform of something, which will include virtual computer hardware, virtual
storage devices, and virtual computer network. In hardware virtualization, software called hypervisor is used

Hardware virtualization, sometimes called platform or server virtualization, is executed on a particular hardware
platform by host software.

Essentially, it hides the physical hardware. The host software that is actually a control program is called a hypervisor

Allows simulating the hardware interface expected by an operating system

The virtual machine software or virtual machine manager (VMM) is directly installed on the hardware system

Install different operating system and run different applications on OS after virtualization of hardware system
Division of the physical server into multiple virtual servers for efficient utilization of server
resources.

Virtualization of the servers hides or masks server resources such as processor, operating
system, memory and presents users as a private virtual server.

This kind of virtualization technique is used in

• Web servers mainly so as to reduce the cost of web hosting services.


• Development and testing environments.
• Simulation of private cloud.
• Hosting applications that have a clustered architecture.

Example – Xen Hypervisor by AWS, VMware vSphere suite by VMware, Hyper-V by Microsoft -
Hypervisors for server virtualization.
Amazon EC2 relies on Xen Virtualization for launching all of its
instances. Every physical machine has a hypervisor running on it. A Xen
hypervisor allows multiple instances to share a single hardware platform

AWS has created a new hypervisor based on KVM, the Nitro


Hypervisor with a new EC2 instance type called "C5" powered by Intel
Skylake Xeons
Hardware Virtualization …

Mainly done for the server platforms, controlling virtual machines is much easier than controlling a
physical server

A virtualization program is called a hypervisor, which can virtualize desktops, applications, network
components, and storage. Hypervisors can either be installed directly on the hardware, or work as a
layer installed on the operating system between the hardware and the virtual machine.

The main job of hypervisor is to control and monitoring the processor, memory and other hardware
resources

This is the base technology that enables cloud computing solutions to deliver virtual servers on
demand, such as Amazon EC2, RightScale , Vmware vCloud etc..
Operating System Virtualization

The virtual machine software or virtual machine manager (VMM) is installed on the
Host operating system instead of directly on the hardware system is known as
operating system virtualization.

Operating System Virtualization is mainly used for testing the applications on


different platforms of OS.
Kernel
A Kernel is the central component of an Operating System. The Kernel is also said to be the heart
of the Operating System. Manages operations of computer and hardware.

It is the core that provides basic services for all other parts of the OS. It is the main layer between
the OS and hardware, and it helps with process and memory management, file systems, device
control and networking

It is responsible for managing all the processes, memory, files, etc. The Kernel functions at the
lowest level of the Operating System

The kernel connects the system hardware to the application software. Every operating system has
a kernel. Ex: Linux kernel is used numerous operating systems including Linux, FreeBSD,
Android and others
Operating System virtualization

Division of OS: The core of the Operating System, the kernel resources get shared
and allow isolated instances of namespaces to exist with dedicated resources to run
different applications. These instances are called containers.

Different flavours of Operating Systems, which share the kernel resources of the
host, can be run on that host machine with applications running inside them as a
container, and this is called an Operating System Virtualization.
Operating System virtualization

1. These are quicker than the server virtualization

2. These are autonomous platforms as they share the host operating system’s
storage and have their software and libraries of dependence within them.

3. The migration of this container is very easy.

Example – Docker is the most widely used container engine.


containers

• Containers are packages of software that contain all of the necessary


elements to run in any environment.
• Containers virtualize the operating system and run anywhere, from a
private data center to the public cloud or even on a developer’s personal
laptop.
• From Gmail to YouTube to Search, everything at Google runs in
containers.
• Containerization allows development teams to move fast, deploy
software efficiently, and operate at an unprecedented scale
Containers defined

Containers are a form of operating system virtualization. A single container might


be used to run anything from a small microservice or software process to a larger
application. A container contains all the necessary executables, binary code,
libraries, and configuration files

Containers make it easy to share CPU, memory, storage, and network resources at
the operating systems level and offer a logical packaging mechanism in which
applications can be abstracted from the environment in which they actually run.
Containers vs. VMs
VMs: a guest operating system such as Linux or Windows runs on top of a host operating system with access to
the underlying hardware.

Like virtual machines, containers allow you to package your application together with libraries and other
dependencies, providing isolated environments for running your software services.

Containers offer a far more lightweight unit for developers and IT Ops teams to work with, carrying a myriad of
benefits.

Containers are much more lightweight than VMs

Containers virtualize at the OS level while VMs virtualize at the hardware level

Containers share the OS kernel and use a fraction of the memory VMs require
What are containers used for?

Containers offer a logical packaging mechanism in which applications can be


abstracted from the environment in which they actually run.

Decoupling allows container-based applications to be deployed easily and


consistently, regardless of whether the target environment is a private data center,
the public cloud, or even a developer’s personal laptop.

https://aws.amazon.com/docker/
What are containers used for?

Agile development
Containers allow developers to move code much more quickly by avoiding concerns about
dependencies and environments.

Efficient operations
Containers are lightweight and allow you to use just the computing resources you need. This lets
you run your applications efficiently.

Run anywhere
Containers are able to run virtually anywhere. Wherever you want to run your software, you can
use containers.
https://aws.amazon.com/containers/

Amazon EC2 Container Service is a highly scalable, high performance container


management service that supports Docker containers and allows you to easily run
distributed applications on a managed cluster of Amazon EC2 instances

Ex: Amazon ECS, Amazon EKS, and AWS Fargate.


What is Docker?
Docker is an OS-level virtualization software platform that enables to create, deploy and run
applications in a Docker Container with all their dependencies.
Docker is an operating system for containers
Multiple software can be encapsulated in a single container and can be easily deployed to different
platforms
Takes less boot-up time (milliseconds)
Docker
https://docs.aws.amazon.com/AmazonECS/latest/userguide/docker-basics.html

https://aws.amazon.com/docker/

• Docker is a software platform used to build, test, and deploy applications quickly.
• Docker packages software into standardized units called containers that have everything the
software needs to run including libraries, system tools, code, and runtime.
• Using Docker, we can quickly deploy and scale applications into any environment and run code.
• Running Docker on AWS provides developers and admins a highly reliable, low-cost way to build,
ship, and run distributed applications at any scale.
• Help developers speed delivery of modern apps to the cloud
• Docker lets you ship code faster, standardize application operations, seamlessly move code, and
save money by improving resource utilization
Docker …

Docker works by providing a standard way to run your code.

Docker is an operating system for containers.

Virtualize the operating system of a server.

Docker isn't a virtual machine - it is a configuration management tool.

Docker is installed on each server and provides simple commands you can use to build, start, or stop containers.

AWS services such as AWS Fargate, Amazon ECS(Amazon Elastic Container Service), Amazon EKS, and AWS
Batch make it easy to run and manage Docker containers at scale.
When to use Docker
Docker containers can be used as a core building block creating modern applications and
platforms.

Using Docker, you can quickly deploy and scale applications into any environment and know
your code will run. Docker packages software into standardized units called containers that have
everything the software needs to run including libraries, system tools, code, and runtime.

Docker makes it easy to build and run distributed microservices architecures, deploy user’s code
with standardized continuous integration and delivery pipelines, build highly-scalable data
processing systems, and create fully-managed platforms for your developers.

The recent collaboration between AWS and Docker makes it easier for you to deploy Docker
Compose artifacts to Amazon ECS and AWS Fargate.
What is the difference between Docker and a virtual machine?

Virtual machines (VMs) virtualize (or remove the need to directly manage) server hardware while
containers virtualize the operating system of a server.

Docker is an operating system (or runtime) for containers.

The Docker Engine is installed on each server to run containers and provides a simple set of
commands to build, start, or stop containers.
SERVER VIRTUALIZATION
Server Virtualization

When the virtual machine software or virtual machine manager (VMM) is directly installed
on the Server system is known as server virtualization.

Virtualization uses software to create an abstraction layer over computer hardware that
allows the hardware elements of a single computer—processors, memory, storage and more
—to be divided into multiple virtual computers, commonly called virtual machines (VMs)

A single physical server can be divided into multiple servers on the demand basis and for
balancing the load.
Server Virtualization

Server virtualization is the process of dividing a physical server into multiple unique and isolated virtual servers by
means of a software application. Each virtual server can run its own operating systems independently.

• Web servers mainly so as to reduce the cost of web hosting services.


• In development and testing environments.
• Simulation of private cloud.
• In hosting applications that have a clustered architecture.

Example – VMware vSphere suite by VMware, Hyper-V by Microsoft are some Hypervisors for server
virtualization.
Storage Virtualization

Storage virtualization is the process of grouping the physical storage from multiple
network storage devices so that it looks like a single storage device.

Storage virtualization is also implemented by using software applications.

Storage virtualization is mainly done for back-up and recovery purposes.


Storage Virtualization

Storage virtualization pools all the storage devices as a single storage device and presents it to the host. The
storage administrator will be able to create or design logical storage units in a better way so as to have backup,
recovery, archive and application data type of storage by masking the complexity of the SAN (Storage Area
Network).

Advantages of Storage Virtualization are –


• One can create shared storage easily.
• Easy to pool the storage resources masking the SAN.
• With virtual storage, the failure of the host doesn’t compromise the data necessarily.
• It is easy to protect partition and use the storage with storage virtualization.
• Duplication, Re-duplication, replication and disaster recovery can be achieved with storage virtualization.

Examples – VMware vSAN by VMware is widely used as the software for the virtualization of storage devices.
Virtualization software can be defined as a kind of a computer program which helps in achieving IT abstraction, helps
in hiding or masking the physical resources from the end-use
AWS uses Linux KVM hypervisor to offer EC2 instances. KVM stands for Kernel Virtual Machine
as it’s the Linux kernel’s built-in hypervisor

Amazon EC2 relies on Xen Virtualization for launching all of its instances. Every physical machine
has a hypervisor running on it. A Xen hypervisor allows multiple instances to share a single
hardware platform

The newer generation uses the Nitro hypervisor which was developed by AWS, and is based on a
customized version of KVM

The new EC2 instance type called "C5" powered by Intel Skylake Xeons
Virtualization Softwares …
1. SolarWinds Virtualization Manager

This is kind of management software for all the virtual machines, this software helps in tracking the performance and
fixing if there are any performance issues such as memory and storage

It provides complete visibility for all the virtual machines attached to the system

The Tool has the functionality to manually fix all the performance issues and trigger anything if any issues are reported

This tool is also useful in maintaining the cloud platforms and the check on their usage or performance of it.

There are triggers and automatic indications present in the tool which helps the user to monitor everything properly.
2. VMware Fusion

This software is for mac users where one can run Windows, Linux, Unix and any other operating system on there
mac using this software.

VMware Fusion also supports cloud-based platforms for virtualization

The VMware fusion pro version provides the facility of integration of different development tools with it

This software is very simple to use and can support real-time demonstration for different software’s and applications

It also has a rollback point where can save the last proper working versions of the OS and can go back to it
whenever required.

The only con as of now for this is the drag and drop functionality is not proper and needs improvement
Virtualization Softwares…

3. Parallels Desktop

• This software is also for the mac users to use windows and another operating system

• This supports windows 10 and mac OS High Sierra

• They provide lots of different tools which are very useful for daily day to day tasks

• The view for this software is very good and it requires no reboot while installation

• The performance for the application inside the virtual OS is also very fast and easily usable without any lag
4. Virtual Box

From Oracle

This software is used in windows to run different operating systems

At a time, it can host up to 4 operating system

It supports drag and drops feature and the window can be minimized
and resized
5. VMware Workstation

• This is the most popular and widely used virtualization software


• It supports multiple operating systems especially windows and Linux
• Its made for the developers and IT professionals who generally work
on different OS
• This can be integrated with multiple applications
• This software also supports cloud applications
6. QEMU

This software is used for hardware virtualization

This is also an open-source free software

There is no restriction for the host OS that means this software can run
in mac as well as a windows system

But the only con in this is it’s not at all user-friendly


7. Windows Virtual PC

This software comes with the windows operating system

This is only for windows users and it is very much user-friendly

One can use the print option from inside the virtual box and can run multiple virtual
machines simultaneously

The only drawback for this one is that it doesn’t support any other OS apart from
the windows
8. Microsoft Hyper V

This software comes bundled with Microsoft windows server 2008 and later
It provides hardware virtualization

This software supports the running of multiple virtual machines

This supports cloud as well such as Microsoft Azure

This supports multiple versions of the Linux operating system


9. RedHat Virtualization

Comes from the Redhat family.

This software is written in java and as promised by the Redhat software company it
provides very good performance for the application which are running inside the virtual
machine

It’s an open-source system so any user can tweak the code and make it work for his own
use and application.

It’s free software and the installation for this is very easy.

You might also like