UNIT III - CLOUD VIRTUALIZATION
Features of Today’s Cloud-Layered Cloud Architecture Design
1. Scalability and Elasticity: Scalability and elasticity reduce costs by only using the
resources needed at any given time.
2. High Availability and Reliability: By spreading data and resources across multiple
locations, cloud-layered architectures improve reliability and high availability.
3. Automation and Orchestration: Tasks like provisioning, scaling, monitoring, and
backups happen automatically. Orchestration organizes and manages these tasks to
streamline complex operations.
4. Resource Optimization and Cost Efficiency: Resource optimization ensures efficient
use of resources by scaling them up or down based on real-time demand.
5. Data Security and Compliance: By embedding security into each layer, cloud
architecture helps protect sensitive data and comply with regulations.
6. Flexibility and Interoperability: Flexibility and compatibility across multiple platforms
make it easier for organizations to integrate cloud services with existing systems.
7. Modularity and Reusability: Modularity allows teams to make updates or fix issues in
one part of an application without impacting others.
8. Rapid Deployment and Continuous Integration: With rapid deployment, organizations
can respond quickly to market changes and user feedback.
NIST Cloud Computing Reference Architecture: public, private, hybrid
1. Public Clouds
Public clouds are cloud environments created by commercial providers and accessible over the
Internet to any individual or business willing to pay for the service. Providers manage and
maintain the infrastructure, and users access resources remotely.
Examples: Google App Engine (GAE), Amazon Web Services (AWS), Microsoft Azure, IBM
Blue Cloud, Salesforce’s [Link]
Features:
● Subscription-Based Access: Users can subscribe to a range of services on a pay-per-use
basis, making it a flexible option for businesses that need scalability without long-term
infrastructure investments.
● Remote Management: Users can create and manage virtual machines (VMs) through a
web interface, while the provider handles backend management.
● Flexibility: Public clouds are ideal for businesses that want quick access to a variety of
services and need the flexibility to scale up or down based on demand.
Use Case: A startup might use AWS to host its web applications and databases because it
provides affordable, scalable options without requiring large initial investments in hardware.
2. Private Clouds
A private cloud is hosted within an organization’s own intranet and is exclusively accessible to
the organization and its partners. This model is designed to offer cloud benefits while
maintaining full control over data and infrastructure.
Example: OpenStack
Features:
● Exclusive Access: Only the organization’s users and authorized partners can access the
private cloud, making it a secure option for sensitive data and operations.
● Customization and Control: Private clouds allow for greater customization and control
over resources, which can be tailored to the specific needs of the organization.
● Security and Compliance: Since the infrastructure is hosted within the organization, it
offers enhanced security measures, for industries with stringent data privacy regulations.
Use Case: A financial institution might implement a private cloud to ensure compliance with
data privacy regulations and to maintain control over its data and workloads. The private setup
allows them to implement strict security protocols and keep sensitive financial data in-house.
3. Hybrid Clouds
A hybrid cloud combines elements of both public and private clouds, providing flexibility in
resource usage. It enables organizations to balance on-premises infrastructure with additional
resources from public clouds as needed.
Example: IBM’s Research Compute Cloud (RC2)
Features:
● Resource Sharing: Hybrid clouds enable sharing resources between private
infrastructure and public cloud, which can be helpful for organizations needing additional
computing power during peak times.
● Cost-Effectiveness and Scalability: Businesses can use their own infrastructure for core
workloads and rely on public cloud services for extra capacity, reducing costs while
ensuring scalability.
● Greater Flexibility: Hybrid clouds allow organizations to move workloads between
private and public environments based on their needs.
Use Case: A retail company might run its customer data storage and payment processing on a
private cloud for security reasons, while leveraging public cloud services to handle spikes in
website traffic during sales events.
Service provider interfaces: SaaS, PaaS, IaaS
1. Infrastructure-as-a-Service (IaaS)
Infrastructure-as-a-Service (IaaS) is one of the primary cloud service models that delivers
computing resources to users on a subscription-based, pay-as-you-go model. Each model allows
users to access cloud services over the internet, with providers managing different levels of the
infrastructure stack.
The IaaS model provides virtualized IT resources, such as computing power, storage, and
networking, enabling users to run applications on a chosen operating system environment
without directly managing the physical hardware.
Examples: Amazon EC2, Microsoft Azure, Google Compute Engine
2. Platform-as-a-Service (PaaS)
The PaaS model provides a cloud platform for users to develop, deploy, and manage applications
without managing the underlying infrastructure. It includes operating systems, development
frameworks, and runtime environments.
Examples: Google App Engine, Microsoft Azure, and Salesforce's [Link], Heroku.
3. Software-as-a-Service (SaaS)
SaaS is the highest level of cloud service delivery, where end-users interact directly with
applications hosted by providers, such as web-based productivity tools and CRM systems. This
model abstracts infrastructure and platform management from users, allowing them to access
software through internet-based interfaces with minimal setup and maintenance.
Examples: Microsoft Office365, Amazon DynamoDB, Gmail
Virtualization Technology:
Virtualization is a computer architecture technology by which multiple virtual machines (VMs)
are multiplexed in the same hardware machine.
The primary goal of virtualization is to make resources more efficient by allowing multiple
applications or users to share the same physical infrastructure, which in turn increases flexibility,
scalability, and performance.
A Virtual machine (VM) is an isolated runtime environment (guest OS and applications).
Multiple virtual systems (VMs) can run on a single physical system
Benefits of Virtualization:
● Sharing of resources helps cost reduction
● Isolation: VMs are isolated from each other as if they are physically separated
● Encapsulation: Virtual machines encapsulate a complete computing environment
● Hardware Independence: Virtual machines run independently of underlying hardware
● Portability: Virtual machines can be migrated between different hosts.
Hardware Independence:
Hardware independence in virtualization refers to the ability to run software, including operating
systems, independently of the underlying physical hardware. Virtual machines (VMs) or
containers operate on virtualized hardware environments, so they are not tied to any specific
physical server. This separation allows for easier migration, scaling, and compatibility with
various types of hardware.
Example: Imagine a company running an old application that was originally designed for a
specific type of server, which is now outdated. With virtualization, this application can be
"moved" into a VM on a modern server, allowing the application to continue running without
modifying the original code or purchasing specialized hardware. VMware or Hyper-V, for
instance, can create a virtual environment mimicking the old hardware, allowing the company to
continue using the application on new hardware without compatibility issues.
Server Consolidation
Server consolidation is one of the most significant benefits of virtualization. Traditionally, each
application or service would have its dedicated server, leading to an excess of hardware and
underutilization of resources. Virtualization allows multiple virtual servers (VMs) to run on a
single physical server, each operating as if it were on its dedicated machine. This reduces
hardware costs, physical space requirements, and power consumption, as fewer physical servers
are needed to support the same workloads.
Example: Consider an organization with ten physical servers, each running a different
application. With server consolidation, all ten applications can be moved to a single, more
powerful physical server, each running in its own VM. This would reduce the need for ten
physical machines down to just one, leading to cost savings in hardware, maintenance, and
energy. Hypervisors like VMware ESXi or Microsoft Hyper-V allow this kind of server
consolidation by managing multiple VMs on a single server.
Resource Replication
Resource replication in virtualization refers to the ability to duplicate system resources like
CPUs, memory, storage, and network configurations across different VMs. Each VM can be
configured with specific resources according to its requirements, ensuring optimal use of the
underlying physical hardware without interference between VMs. This also allows for quick
replication of environments for testing, development, and disaster recovery.
Example: A company may use resource replication to create identical virtual environments for
development, testing, and production. For instance, they might replicate a database server
environment on multiple VMs to test software updates or configurations without impacting the
production environment. If an error occurs in the test environment, it will not affect the main
application, as they are isolated. Tools like Docker can also be used to create lightweight,
reproducible containers with the exact same dependencies, which is especially useful for
developers.
Hypervisor:
● Hypervisor acts as a link between the hardware and the virtual environment and
distributes the hardware resources such as CPU usage, memory allotment between the
different virtual environments.
● A hypervisor or virtual machine monitor (VMM) is computer software, firmware or
hardware that creates and runs virtual machines.
● A computer on which a hypervisor runs one or more virtual machines is called a host
machine, and each virtual machine is called a guest machine.
● A hypervisor is a hardware virtualization technique that allows multiple guest operating
systems (OS) to run on a single host system at the same time.
● The guest OS shares the hardware of the host computer, such that each OS appears to
have its own processor, memory and other hardware resources.
● A hypervisor is also known as a virtual machine manager (VMM)
Types of Virtualization
1. Operating System-Based Virtualization (OS-Level Virtualization)
2. Hardware-Based Virtualization (Full and Para-Virtualization)
1. Operating System-Based Virtualization (OS-Level Virtualization)
Operating System-Based Virtualization involves creating isolated containers or environments
(virtual environments) on the same operating system. This means that multiple user spaces, or
instances of an operating system, can run concurrently on a single physical server, sharing the
same OS kernel but functioning as separate instances.
In OS-level virtualization, a single OS kernel is shared across multiple isolated environments,
called containers (e.g., Docker containers), where each environment has its own libraries,
applications, and network resources. Each container behaves like a stand-alone system and is
highly portable across different environments.
Use Case:
● Containerization: One of the most popular examples of OS-based virtualization is
Docker, which allows you to run multiple applications in isolated environments without
the need for a full virtual machine. Each Docker container contains only the application
and its dependencies.
● Example: If a development team wants to run different versions of a software application
on the same server (e.g., a Java application with different libraries), containers can isolate
these instances without causing conflicts between dependencies.
Example:
Imagine a web server running multiple websites. Each website can be deployed in its own
container. These containers are isolated from each other, meaning that if one website's
environment crashes, it won't affect the others. Despite this isolation, all containers run on the
same OS and share its resources efficiently.
Advantages:
● Lightweight (low resource overhead).
● Fast deployment and scalability.
● Easy to migrate between different hosts.
Disadvantages:
● Limited to the same operating system (e.g., Linux containers cannot run on a Windows
host without additional layers like WSL).
● Less isolation compared to full virtualization.
2. Hardware-Based Virtualization (Full Virtualization and Para-Virtualization)
Hardware-Based Virtualization refers to using specialized hardware components (like a
hypervisor) to create virtual machines (VMs) that act as separate computing environments. This
type of virtualization allows multiple operating systems to run concurrently on a single physical
machine.
Types of Hardware-Based Virtualization:
a. Full Virtualization:
In full virtualization, the hypervisor creates an entire hardware environment for each VM,
including its own OS, drivers, memory, CPU, and storage. Each VM functions independently as
if it were running on its own dedicated physical machine.
● Example: VMware ESXi and Oracle VirtualBox are examples of full virtualization
hypervisors.
● Use Case: Running legacy applications that require specific operating systems or
configurations. It also allows for better server consolidation in data centers.
b. Para-Virtualization:
Para-virtualization is an optimized form of virtualization where the guest OS is aware that it is
running in a virtualized environment and interacts more directly with the hypervisor. This
approach allows the OS to optimize its operations (like memory management and scheduling) to
reduce overhead.
● Example: Xen is a well-known para-virtualization technology, where the guest OS is
modified to improve efficiency.
Advantages of Hardware-Based Virtualization:
● Full isolation between VMs (better security and stability).
● Support for running different operating systems on the same hardware.
● High flexibility (e.g., running Linux and Windows VMs on the same host).
Disadvantages:
● High overhead in full virtualization due to the need to emulate hardware.
● Para-virtualization requires modification of the guest OS, making it less flexible.
Example of Full Virtualization:
A company might run a physical server with a hypervisor like VMware or Microsoft Hyper-V.
On this hypervisor, they can run multiple virtual machines with different OSes such as Windows
Server, Ubuntu, and CentOS. Each virtual machine operates independently, and the company can
allocate different amounts of CPU, memory, and disk space to each VM, depending on the
application needs.
Virtualization Management
Virtualization management refers to the tools and techniques used to manage virtualized
environments, including monitoring, configuring, and scaling virtual machines (VMs) and
containers.
Key Components:
● Hypervisors: The software layer that enables virtualization. Hypervisors can be
classified into two types:
○ Type 1 Hypervisors (Bare Metal): Run directly on the physical hardware (e.g.,
VMware ESXi, Microsoft Hyper-V, KVM).
○ Type 2 Hypervisors (Hosted): Run on top of an existing OS (e.g., VirtualBox,
VMware Workstation).
● VM Management Tools: Software platforms that simplify the process of creating,
deploying, and managing VMs.
Example: vSphere (VMware) and Microsoft System Center are widely used for
managing virtualized environments in large-scale data centers.
● Orchestration: In container-based virtualization, tools like Kubernetes provide advanced
orchestration and management of containerized applications, helping with scaling, load
balancing, and failover mechanisms.
Use Case:
● A cloud provider (like Amazon Web Services) might use hypervisors to run thousands of
virtual machines for different customers. The provider will use virtualization
management tools to monitor resource usage, spin up new instances when needed, and
handle failures or scaling demands automatically.
Considerations in Virtualization
When implementing virtualization, there are several important factors to consider to ensure it
meets your specific needs:
1. Performance: Virtualization adds some overhead due to the abstraction of physical
hardware. It is important to ensure that the hardware and software stack can deliver the
necessary performance, especially in resource-intensive applications (e.g., databases or
gaming servers).
2. Security: Virtualization introduces new security concerns, such as VM isolation and
hypervisor vulnerabilities. For example, a malicious VM could attempt to break out of its
isolation and interfere with other VMs.
3. Resource Allocation: Efficiently allocating resources (CPU, memory, disk) across VMs
or containers is critical to avoid bottlenecks and ensure that all applications run smoothly.
4. Backup and Recovery: Virtualized environments need to have robust backup and
disaster recovery plans. VMs can be quickly cloned or snapshotted, but these strategies
should be incorporated into broader IT recovery plans.
5. Cost: While virtualization reduces hardware costs by consolidating servers, the licensing
and management tools can introduce additional costs. Balancing these costs is crucial,
especially in large deployments.
Use Case and Example of Virtualization
Use Case 1: Server Consolidation in a Data Center:
● Problem: A data center has multiple underutilized servers, each running a single
application.
● Solution: Using virtualization (e.g., VMware ESXi or KVM), the data center can
consolidate multiple applications onto fewer physical servers. Each application runs in its
own virtual machine, isolated from the others.
Example: Instead of running 10 physical servers at 10% capacity, the data center could
consolidate those 10 applications into 2 physical servers running multiple VMs, each at
80% capacity. This reduces hardware costs, energy consumption, and maintenance
overhead.
Use Case 2: Development and Testing Environments:
● Problem: A development team needs to test their software across multiple operating
systems (e.g., Windows, macOS, Linux).
● Solution: By using virtual machines or containers, the team can quickly spin up isolated
environments for each OS without needing separate physical hardware.
Example: A developer can use VirtualBox to create VMs for Windows 10, Ubuntu, and
macOS, testing their application on each OS in parallel, all on a single physical machine.