Post on 18-Jul-2015
MAJOR PROJECT
Dynamic Scaling of web applications in virtualized Cloud Computing Environment
Submitted by:Mallika Malhotra(10103535)Sanya Kapoor(10103630)
Submitted to: Mr. Prakash Kumar
INTRODUCTION
Cloud computing has emerged as a new powerful computing paradigm to provide the on-demand services to user as needed.
Virtualization is critical to cloud computing because it simplifies the delivery of services by providing a
platform for optimizing complex IT resources in a scalable manner, which is what makes cloud computing
so cost effective. a user demand on resources can be various in different time, maintaining sufficient
resources to meet peak resource requirements can be costly.
Therefore, dynamic scalability is a critical key point to the success of Cloud Computing environment.
Auto-scaling or Dynamic scalability is a cloud computing service feature that automatically adds or
removes compute resources depending upon actual usage.
When a virtual machine is under-provisioning or over-provisioning, dynamic resizing can utilized to
overcome this problem.
PROBLEM STATEMENT
An intrinsic problem of the overwhelming information on the Internet in Virtual machines is that
there may be some events when due to a sudden surge in load, due to a large no. Of incoming requests
to a server, the server may not be able to take in the entire load all by itself and may crash, leaving the
customer user in a fix by showing no response. Or sometimes, the given server might not have all the
hardware resources it needs to respond to the requests and in some cases, the contrary might happen, that
if the incoming requests are very low in number, then the servers allocated for this work might be sitting
in idle and consuming resources that costs the organisation/firm.
Hence, in all the above cases it becomes extremely important to have an Auto-Scaling System that is
able to scale the Virtual Machines as per the incoming load on the servers, and hence utilising the
resources efficiently and reducing costs.
HARDWARE/TECHNOLOGY
● XEN Hypervisor
● Virtual MachineManager
● JAVA
● Apache
● Python (as programming language)
● Tomcat
● Modjk connector
● Jmeter
OVERALL ARCHITECTURE
In our architecture, Front-end load balancer is utilized to balancing the web application load.
● Apache HTTP Load-Balancer is utilized as Front-end load balancer to allow incoming HTTP request
to be routed into web servers that perform the web application. This enables the virtual cluster to scale
and thus provide better response time for incoming HTTP requests.
● The XCM (Xen cluster monitor) displays and manages all the details of the virtual machine cluster,
namely the state of the Virtual machines in the cluster, their CPU utilization, memory utilization, etc
and is the basis for all the decisions made to scale the virtual machines in a particular cluster.
● The Auto provisioning system is basically the algorithm generated by us keeping in mind various
factors and resource constraints to allow the dynamic scaling of the Virtual machines.
ALGORITHM
After sending HTTP requests for the web application, physical computing resources such as the usages
of CPU and memory, being the most important factors will determine when to and when not to scale the
virtual machines in the cluster so as to optimize performance and balance the load.
If the uses of resources of all VMs are above the given upper threshold, a new VM will be created,
provisioned, started, and then perform the same computing tasks in the virtual cluster.
If the uses of resources of some VMs are below a given lower threshold and with at least one VM that
has no computing job, the idle VM will be terminated from the virtual cluster.
ALGORITHM
Our algorithm initially calculates the no. of running and suspended virtual machines on a server and then
takes into account the following cases to decide whether to suspend or resume a VM.
Case 1: No. of Running Virtual machine = 1
If CPU util. of running VM > Maxcpu or RAM util. of running VM > Maxram
Then, Resume a suspended VM.
Case 2: No. of Running Virtual machine = 2
If CPU util. of both running VM > Maxcpu or RAM util. of both running VM > Maxram
Then, Resume a suspended VM.
If CPU util. of both running VMs < Mincpu or RAM util. of both running VM s < Minram
Then, Suspend a running VM.
ALGORITHM
Case 3: No. of Running Virtual machine = 3
If CPU util. of all three or any two running VMs < Mincpu or RAM util. of all three running VM s
< Minram
Then, Suspend a running VM.
Also, apart from ‘horizontally’ scaling the virtual machines according to the above algorithm, the system
is also capable of ‘vertically’ scaling the virtual machines by increasing the size of a particular virtual
machine to accommodate the workload that is in the form of web requests.