0% found this document useful (0 votes)
6 views

Virtualization

The document discusses virtualization technologies in cloud computing, explaining how virtualization efficiently manages resources by mapping virtual resources to physical ones. It covers various types of virtualization, load balancing mechanisms, hypervisors, and the role of VMware vSphere in creating cloud infrastructures. Additionally, it outlines capacity planning and metrics essential for optimizing cloud services and ensuring performance and security.

Uploaded by

Tanya Verma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Virtualization

The document discusses virtualization technologies in cloud computing, explaining how virtualization efficiently manages resources by mapping virtual resources to physical ones. It covers various types of virtualization, load balancing mechanisms, hypervisors, and the role of VMware vSphere in creating cloud infrastructures. Additionally, it outlines capacity planning and metrics essential for optimizing cloud services and ensuring performance and security.

Uploaded by

Tanya Verma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 28

Virtualization

By dr. Anchal
Using Virtualization Technologies
When you use cloud computing, you are accessing pooled resources using a technique called
virtualization. Virtualization assigns a logical name for a physical resource and then provides a
pointer to that physical resource when a request is made. Virtualization provides a means to
manage resources efficiently because the mapping of virtual resources to physical resources can
be both dynamic and facile. Virtualization is dynamic in that the mapping can be assigned based
on rapidly changing conditions, and it is facile because changes to a mapping assignment can be
nearly
instantaneous.
These are among the different types of virtualization that are characteristic of cloud computing:
l Access: A client can request access to a cloud service from any location.
l Application: A cloud has multiple application instances and directs requests to an
instance based on conditions.
l CPU: Computers can be partitioned into a set of virtual machines with each machine
being assigned a workload. Alternatively, systems can be virtualized through load-balancing
technologies.
l Storage: Data is stored across storage devices and often replicated for redundancy.
P2V: Physical to Virtual
V2V: Virtual to Virtual
V2P: Virtual to Physical
P2P: Physical to Physical
D2C: Datacenter to Cloud
C2C: Cloud to Cloud
C2D: Cloud to Datacenter
D2D: Datacenter to Datacenter
virtualization is a key enabler of the
first four of five key attributes of cloud computing:
l Service-based: A service-based architecture is where clients are abstracted
from service
providers through service interfaces.
l Scalable and elastic: Services can be altered to affect capacity and
performance on
demand.
l Shared services: Resources are pooled in order to create greater efficiencies.
l Metered usage: Services are billed on a usage basis.
l Internet delivery: The services provided by cloud computing are based on
Internet protocols
and formats.
• An ADC is considered to be an advanced version of a load balancer as it not only can provide
the features described in the previous paragraph, but it conditions content in order to lower the
workload of the Web servers. Services provided by an ADC include data compression, content
caching, server health monitoring, security, SSL offload and advanced routing based on current
conditions.
• An ADC is considered to be an application accelerator, and the current products in this area are
usually focused on two areas of technology: network optimization, and an application or
framework optimization. For example, you may find ADC’s that are tuned to accelerate
ASP.NET or AJAX applications.
• An architectural layer containing ADCs is described as an Application Delivery Network (ADN),
and is considered to provide WAN optimization services. Often an ADN is comprised of a pair of
redundant ADCs. The purpose of an ADN is to distribute content to resources based on
application specific criteria. ADN provide a caching mechanism to reduce traffic, traffic
prioritization and optimization, and other techniques. ADN began to be deployed on Content
Delivery Networks (CDN) in the late 1990s, where it added the ability to optimize applications
(application fluency) to those networks. Most of the ADC vendors offer commercial ADN
solutions.
Load Balancing and Virtualization
One characteristic of cloud computing is virtualized network access to a service. No matter where
you access the service, you are directed to the available resources. The technology used to
distribute service requests to resources is referred to as load balancing. Load balancing can be
implemented in hardware, as is the case with F5’s BigIP servers, or in software, such as the Apache
mod_proxy_balancer extension, the Pound load balancer and reverse proxy software, and the Squid
proxy and cache daemon. Load balancing is an optimization technique; it can be used to increase
utilization and throughput, lower latency, reduce response time, and avoid system overload.
The following network resources can be load balanced:
l Network interfaces and services such as DNS, FTP, and HTTP
l Connections through intelligent switches
l Processing through computer system assignment
l Storage resources
l Access to application instances
Typical scheduling algorithms in use today are round robin and weighted round robin, fastest
response time, least connections and weighted least connections, and custom assignments based
on other factors.
Load Balancing Mechanism
• A session ticket is created by the load balancer so that subsequent related traffic from the
client that is part of that session can be properly routed to the same resource.
• Persistence can be enforced using session data stored in a database and replicated across
multiple load balancers.
• Other methods can use the client’s browser to store a client-side cookie or through the use
of a rewrite engine that modifies the URL.
• The algorithm can be based on a simple round robin system where the next system in a list
of systems gets the request.
• Round robin DNS is a common application, where IP addresses are assigned out of a pool of
available IP addresses. Google uses round robin DNS.
Advanced load balancing
The more sophisticated load balancers are workload managers. They determine the current
utilization of the resources in their pool, the response time, the work queue length, connection
latency and capacity, and other factors in order to assign tasks to each resource.
Features of Load balancer
• polling resources for their health,
• the ability to bring standby servers online (priority activation),
• workload weighting based on a resource’s capacity (asymmetric loading),
• HTTP traffic compression,
• TCP offload and buffering,
• security and authentication, and
• Packet shaping using content filtering and priority queuing.
An Application Delivery Controller (ADC) is a combination load balancer and application
server that is a server placed between a firewall or router and a server farm providing Web
services. An Application Delivery Controller is assigned a virtual IP address (VIP) that it maps
to a pool of servers based on application specific criteria. An ADC is a combination network
and application layer device. You also may come across ADCs referred to as a content switch,
multilayer switch, or Web switch.
Understanding Hypervisors
A hypervisor is a software that you can use to run multiple
virtual machines on a single physical machine. Every
virtual machine has its own operating system and
applications. The hypervisor allocates the underlying
physical computing resources such as CPU and memory to
individual virtual machines as required. Thus, it supports
the optimal use of physical IT infrastructure.
Why is a hypervisor important?
Hypervisors are the underlying technology behind
virtualization or the decoupling of hardware from software.
IT administrators can create multiple virtual machines on a
single host machine. Each virtual machine has its own
operating system and hardware resources such as a CPU, a
graphics accelerator, and storage. You can install software
applications on a virtual machine, just like you do on a
physical computer.

The fundamentals of virtual machines and other


virtualization technologies have enabled cloud computing
services in enterprise applications. They allow you to scale
computing services efficiently on limited hardware
Types of Hypervisors:
Type 1: A low-level program is required to
provide system resource access to virtual
machines, and this program is referred to as the
hypervisor or Virtual Machine Monitor (VMM).
A hypervisor running on bare metal is a Type 1
VM or native VM. Examples of Type 1 Virtual
Machine Monitors are LynxSecure, RTS
Hypervisor, Oracle VM, Sun xVM Server,
VirtualLogix VLX, VMware ESX and ESXi, and
Wind River VxWorks, among others.
•Type-1 hypervisors run directly on the physical
hardware without the need for a host operating
system.
•They have direct access to the underlying
hardware resources, offering better performance
and efficiency compared to Type-2 hypervisors.
•Type-1 hypervisors are commonly used in
enterprise data centers and cloud environments.
•Examples include VMware vSphere/ESXi,
Microsoft Hyper-V, and KVM (Kernel-based Virtual
Machine).
Type2 hypervisor
•Type-2 hypervisors run on top of a host operating system, which in turn runs on the physical
hardware.
•They rely on the host operating system for managing hardware resources and providing device
drivers.
•Type-2 hypervisors are typically used for desktop or development environments.
•Examples include Oracle VirtualBox, VMware Workstation, and Parallels Desktop.
Emulation, Paravirtualization,
and Full virtualization.
•In full virtualization, the guest operating system is unaware
that it’s running in a virtualized environment.
•The hypervisor presents a virtualized hardware
environment to the guest operating system, mimicking the
underlying physical hardware.
•Full virtualization provides broad compatibility with
unmodified guest operating systems but may incur
performance overhead due to hardware emulation.
•Examples of full virtualization include VMware ESXi with
Intel VT-x/AMD-V hardware-assisted virtualization.
•In para virtualization, the guest operating system is aware
of its virtualized environment and interacts with the
hypervisor through special paravirtualized drivers.
•Paravirtualization eliminates the need for hardware
emulation, resulting in lower overhead and improved
performance compared to full virtualization.
•However, para virtualization requires modifications to the
guest operating system to support paravirtualized drivers.
•Examples of para virtualization include Xen hypervisor with
VMware vSphere
VMware vSphere is a management infrastructure framework that virtualizes system, storage, and
networking hardware to create cloud computing infrastructures. vSphere is the branding for a set
of management tools and a set of products previously labeled VMware Infrastructure. vSphere
provides a set of services that applications can use to access cloud resources, including these:
VMware vCompute: A service that aggregates servers into an assignable pool
VMware vStorage: A service that aggregates storage resources into an assignable pool
VMware vNetwork: A service that creates and manages virtual network interfaces
Application services: Such as HA (High Availability) and Fault Tolerance
vCenter Server: A provisioning, management, and monitoring console for VMware cloud
infrastructures
VMware’s vSphere cloud computing infrastructure model
VMware vSphere is the industry’s first cloud
operating system, transforming IT infrastructures
into a private cloud – a collection of internal
clouds federated on-demand to external clouds –
delivering IT infrastructure as an easily accessible
service.
VMware vSphere leverages the power of
virtualisation to transform datacenters into
dynamically simplified cloud computing
infrastructures and enables IT organisations to
deliver the next generation of flexible and reliable
IT services, using internal and external resources,
securely and with low risk.
Benefits of VMware vSphere include:

•Reduced costs and maximum IT efficiency

•Increased IT control through service level


automation

•Empowered IT departments with choice


Capacity Planning
• A capacity planner seeks to meet the future demands on a system by providing the additional capacity to fulfill those
demands. Many people equate capacity planning with system optimization (or performance tuning, if you like), but they
are not the same. System optimization aims to get more production from the system components you have.
• Capacity planning measures the maximum amount of work that can be done using the current technology and then adds
resources to do more work as needed. If system optimization occurs during capacity planning, that is all to the good; but
capacity planning efforts focus on meeting demand. If that means the capacity planner must accept the inherent
inefficiencies in any system, so be it.

Capacity planning is an iterative process with the following steps:


1. Determine the characteristics of the present system.
2. Measure the workload for the different resources in the system: CPU, RAM, disk, network,
and so forth.
3. Load the system until it is overloaded, determine when it breaks, and specify what is
required to maintain acceptable performance.
Knowing when systems fail under load and what factor(s) is responsible for the failure is
the critical step in capacity planning.
4. Predict the future based on historical trends and other factors.
5. Deploy or tear down resources to meet your predictions.
6. Iterate Steps 1 through 5 repeatedly.
Defining Baseline and Metrics
The first item of business is to determine the current system capacity or workload as a
measurable quantity over time. Because many developers create cloud-based applications and
Web sites based on a LAMP solution stack.
LAMP stands for:
• Linux, the operating system
• Apache HTTP Server (http://httpd.apache.org/), the Web server based on the
• work of the Apache Software Foundation
• MySQL (http://www.mysql.com), the database server developed by the Swedish
• company MySQL AB, owned by Oracle Corporation through its acquisition of Sun
• Microsystems
• PHP (http://www.php.net/), the Hypertext Preprocessor scripting language developed
• by The PHP Group
These four technologies are open source products, although the distributions used may vary from
cloud to cloud and from machine instance to machine instance. On Amazon Web Services,
machine instances are offered for both Red Hat Linux and for Ubuntu. LAMP stacks based on Red
Hat Linux are more common than the other distributions, but SUSE Linux and Debian GNU/Linux
are also common. Variants of LAMP are available that use other operating systems such as the
Macintosh, OpenBSD (OpAMP), Solaris (SAMP), and Windows (WAMP).
Baseline measurements
Let’s assume that a capacity
planner is working with a system
that has a Web site based on
APACHE, and let’s assume the
site is processing database
transactions using MySQL.
There are two important overall
workload metrics in this LAMP
system:
l Page views or hits on the Web

site, as measured in hits per


second
l Transactions completed on the

database server, as measured by


transactions per second or
perhaps by queries per second
A number of important characteristics are determined by these baseline studies:
• WT, the total workload for the system per unit time
• To obtain WT, you need to integrate the area under the curve for the time period of interest.
• WAVG, the average workload over multiple units of time
• To obtain WAVG, you need to sum various WTs and divide by the number of unit times
• involved. You may also want to draw a curve that represents the mean work done.
• WMAX, the highest amount of work recorded by the system
• This is the highest recorded system utilization. In the middle graph of Figure 6.1, it would
be the maximum number recorded on Tuesday morning.
• WTOT, the total amount of work done by the system, which is determined by the sum of
WT (ΣWT)
The goal of a capacity planning exercise is to accommodate spikes in demand as well as the overall
growth of demand over time. Of these two factors, the growth in demand over time is the most
important consideration because it represents the ability of a business to grow. A spike in demand
may or may not be important enough to an activity to attempt to capture the full demand that the
spike represents.
System metrics
Notice that in the previous section, you determined what amounts to application-level statistics
for your site. These measurements are an aggregate of one or more Web servers in your
infrastructure. Capacity planning must measure system-level statistics, determining what each
system is capable of, and how resources of a system affect system-level performance. A machine
instance (physical or virtual) is primarily defined by four essential resources:
• CPU
• Memory (RAM)
• Disk
• Network connectivity
Each of these resources can be measured by tools that are operating-system-specific, but for
which tools that are their counterparts exist for all operating systems. Indeed, many of these tools
were written specifically to build the operating systems themselves, but that’s another story. In
Linux/ UNIX, you might use the .sar command to display the level of CPU activity. sar is installed
in Linux as part of the sys stat package. In Windows, a similar measurement may be made using
the Task Manager, the data from which can be dumped to a performance log and/or graphed.
In cloud computing, system metrics can be categorized into three main areas:
• performance metrics (assessing infrastructure speed and efficiency),
• operational metrics (tracking resource utilization and system operations), and
• security metrics (gauging the effectiveness of protective measures and data integrity).

Performance Metrics:
•CPU utilization: Percentage of processing power used by applications and services in the cloud.
•Memory utilization: Amount of RAM currently used by the system.
•Disk I/O operations per second (IOPS): Rate at which data is read or written to the virtual
disk.
•Network bandwidth: Amount of data transferred over the network per unit time.
•Latency: Time taken for a request to be processed and a response to be received.
•Response time: Time taken for a cloud service to respond to a request.
Operational Metrics:
•Server uptime: Percentage of time a server is operational.
•Instance availability: Whether virtual machines are running and accessible.
•Resource allocation: Distribution of resources across different applications and services.
•Cost per hour: Cost of running a cloud service per hour.
•Error rate: Frequency of application errors.
•Log events: System events recorded in logs.

Security Metrics:
•Access attempts: Number of login attempts and their success rate.
•Security incidents: Number of detected security breaches or vulnerabilities.
•Data encryption status: Whether sensitive data is properly encrypted.
•Firewall activity: Number of blocked network connections.
•Compliance checks: Whether system configuration adheres to security standards.
Load testing
Cloud-based Load Testing simulates real-
world user traffic and uses cloud computing
platforms to evaluate the scalability and
performance of online applications. Utilizing
the scalability and flexibility of cloud
infrastructure provides advantages over
conventional methods and helps organizations
locate performance bottlenecks and
effectively optimize application performance.
Cloud-based load testing allows for the quick
iteration and ongoing improvement of
software systems, enabling the delivery of
dependable and high-performing applications
in today's digital ecosystem. It does this by
distributing virtual users across multiple
locations and providing real-time information.
•Cloud Infrastructure: It refers to the fundamental cloud computing resources that cloud
service providers like AWS, Azure, or Google Cloud Platform offer, such as virtual machines,
storage, and networking.

•Load Testing Tools: Tools for creating, managing, and carrying out load tests are known as
load testing tools. They are specialized software programs. JMeter, LoadRunner, Gatling, and
BlazeMeter are a few examples, they are frequently cloud-compatible or designed with cloud
environments in mind.

•Management of Virtual Users: To replicate a variety of user scenarios, cloud-based load


testing platforms offer tools for generating, administering, and allocating virtual users over
various geographic regions.

•Monitoring and Reporting: During load tests, comprehensive monitoring tools keep track of
a variety of performance measures, including error rates, throughput, and response times. To
locate performance bottlenecks and enhance system performance, these technologies produce
comprehensive data and analytics.

•Scalability and Elasticity: To mimic high user loads, cloud-based load testing makes use of
the scalability and elasticity of cloud infrastructure. The technology enables the dynamic
allocation of resources in response to demand, guaranteeing precise testing outcomes without
being restricted by stationary on-premises hardware.
Benefits of Cloud-based Load Testing:
•Global Reach: Conducting tests from several places yields valuable insights into the
performance of applications under varying network conditions, thereby guaranteeing a
uniform user experience across various geographies.

•Real-time Insights: Cloud-based load testing with advanced monitoring and analytics
tools provides real-time performance information, allowing for prompt bottleneck detection
and proactive application performance optimization.

•Scalability: Cloud-based load testing provides infinite scalability, enabling businesses to


replicate high user loads without worrying about hardware limitations and guaranteeing
thorough testing scenarios.

•Cost-effectiveness: Cloud-based load testing optimizes testing expenses and resource


utilization by eliminating upfront hardware investments through the use of pay-as-you-go
pricing structures.

•Cooperation and Interaction: Cloud-based testing environments provide smooth


interaction with CI/CD pipelines and team cooperation, guaranteeing effective integration of
load testing into the software development lifecycle.
Best Practices for Conducting Cloud-based Load Testing
•Establish Specific Goals: Clearly state the process's aims and objectives, including performance
standards, anticipated results, and success criteria.

•Design Realistic Scenarios: Construct realistic load testing scenarios that faithfully capture the
expected traffic conditions, user behavior, and application or service usage patterns.

•Monitor Performance Metrics: Throughout load tests, keep an eye on important performance
measures including response times, throughput, error rates, and resource usage to spot any
bottlenecks and pinpoint areas that could use improvement.

•Test Across Geographic Regions: To ensure global scalability and dependability, conduct load
testing from a variety of geographic regions to evaluate application performance under various
network conditions and user demographics.

•Simulate Peak Loads: To figure out system capacity limits, spot scalability problems, and make
sure the application can manage maximum user loads without experiencing performance
degradation or downtime, simulate peak loads and stress situations.

•Isolate Testing Environments: To avoid interfering with live systems and reduce the possibility
of unintentional effects on production services during load tests, isolate testing environments from
production settings.
•Automate Testing Procedures: To expedite testing workflows and guarantee
repeatability, automate load testing procedures, encompassing test preparation,
execution, monitoring, and analysis, through the use of scripting languages, automation
frameworks, and interaction with CI/CD pipelines.

•Iterate and Optimize: To address issues, improve scalability, and improve user
experience over time, iterate continuously on load testing scenarios, analyze test results,
and optimize application performance based on findings.
Challenges in Cloud-based Load Testing
•Resource Allocation: As cloud settings can be complicated, it can be difficult to allocate
resources for load testing in a way that is both efficient and economical.

•Data Privacy and Security: Strong methods for data encryption, access control, and
compliance with data protection laws are necessary to ensure the privacy and security of
sensitive data utilized in load testing, particularly in multi-tenant cloud systems.

•Network Unpredictability and Latency: Testing in scattered cloud systems involves


network unpredictability and latency, which can complicate the simulation of real-world user
experiences and compromise the reliability of load testing results.

•Tool Compatibility and Integration: It might be difficult to integrate load testing tools
with current development and testing workflows, cloud platforms, and existing systems.

•Environment Consistency: It can be difficult to ensure that testing environments are


consistent and repeatable across various cloud instances, regions, and configurations. This
can cause differences in test results and make it more difficult to identify performance
problems.
Case Studies
•Netflix: To guarantee platform scalability and performance for millions of concurrent users
worldwide, it makes use of cloud-based load testing. This allows for the early detection and
removal of performance bottlenecks.

•Salesforce: This company supports millions of users globally by optimizing infrastructure to


successfully meet expanding demands. It does this by leveraging cloud-based load testing to
assess application performance and scalability.

•Slack: Makes sure a platform is responsive to massive user interactions by using cloud-based
load testing to verify the scalability and performance of messaging and collaboration
functionalities.

•Airbnb: To provide a flawless user experience, the company simulates enormous levels of
user traffic from various areas and uses cloud-based load testing to preserve website and app
reliability during peak booking periods.
Load testing tools
• HP LodeRunner (https://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?
zn=bto&cp=1-11-126-17^8_4000_100__)
• IBM Rational Performance Tester (
http://www-01.ibm.com/software/awdtools/tester/performance/)
• JMeter (http://jakarta.apache.org/jmeter)
• OpenSTA (http://opensta.org/)
• Micro Focus (Borland) SilkPerfomer (
http://www.borland.com/us/products/silk/silkperformer/index.html)
You will find load testing useful in testing the performance of not only Web servers, but also
application servers, database servers, network throughput, load balancing servers, and
applications that rely on client-side processing.

You might also like