2D Scaling in Cloud Computing

Two-Dimensional scaling is increasing the resources of the cloud as per the requirements. In this paper we are discussing about the scaling in both vertical and horizontal as to fulfill the needs of the customers. Vertical scaling is increasing the specifications of existing infrastructure by adding or replacing CPU, HDD or other components, whereas horizontal scaling is adding new resources to the existing pool of resources. Increasing the resources in two-dimensional is known as Diagonal Scaling.


Introduction
Cloud Computing [6] is a huge source of resources where different organizations utilize them for their work.Since all the resources are globally spread through the internet, remotely many services can be accessed.Since the customers are not limited, day by day customers are increasing cloud has to be designed with no issues.But still we have few issues in cloud computing like security, scalability, performance, latency etc.To design a scalable [1] cloud system to improve performance and making all the tasks to reach within deadline time we are proposing a method, where all the tasks are reaching the deadlines.
The above figure shows the architecture of the cloud, how the cloudlets [3] are being processed using cloud sim tool, this architecture provides the environment of cloud.The scheduling policies [4] will be mounted on scheduling policy in the architecture [5].Here in this paper we are designing horizontal and vertical scaling algorithms and compared with each other.We are trying to improve the performance of the system as well as the tasks should reach the deadline.So two parameters we are focusing on.In my next upcoming paper, we will focus on the combination of both vertical and horizontal scaling algorithms.

Design and Implementation
Here we are implementing both horizontal and vertical scaling [12] separately and compared with the previous algorithms and found better results in horizontal scaling [13].Initially we are taking a data set of VMs, task lengths and deadlines as input and given to broker function for accessing all the tasks are arranged in ascending order and VMs in descending order.Allotting tasks to the VMs for processing if any leftover tasks are there we are implementing horizontal scaling [12].
Horizontal Scaling: Arrange all the VMs in descending order, and all tasks in ascending order associated with their deadlines according to the task length [9].Here in this algorithm we are checking overloaded condition and under loaded condition of each VM.We are utilizing 80 percentage of each MV capacity in order to avoid overloaded condition.For example if we consider 720 MIPS capacity VM then we are utilizing 576 MIPS of its capacity.And we are seeing that tasks not reaching the deadline is less at the same time improving the performance of the system.
Since this is horizontal scaling we can add resources to the pool of existing resources [8].In the given data set we have taken ten VMs and arranged them in descending order.Two VMs with high capacity are kept in spare for further use to handle high length tasks.So we are starting from 720 MIPS Virtual Machine, and assigning the tasks until it reaches 80 percentage of VM capacity [3], then task is being hand over to next VM, until all VMs get engaged.Check for the left over tasks, assign the tasks to the VMs which we kept in spare for further use to handle high length tasks.If further any tasks ae still left over then we have to implement horizontal scaling if the percentage of unprocessed tasks [10] are less than 10 percentage then increase VMs with 10 percentage, if else the unprocessed tasks are between 10 to 25 percentage increase the VMs by 25 percentage else calculate Average Resource Utilization Ratio (ARUR).

Problem Formulation Capacity of VM is CVM = p*q+BW{j,k}
Where p is the processing speed and q is he umber cpu and BW is the band width between j and k virtual machines.Now we find out the load at the data center i.e., DC = ∑i=1 m CVMj Load information at the VM can be found by LVM = number of task * ∑ task length/p*q.So, total load at Data Center is TL VM = ∑j=1 m LVM.
Expected Execution Time at Virtual Machine is calculated as EET = Task Length/p*q.
2.Sort the tasks in ascending order.
3. Generate m number of virtual machines and sort them in descending order.4. Consider VMs from m*0.2 to m-1, higher capacity VMs are kept in UVM list in increasing order to handle high length tasks. 5.For loop for T i from 0 to n-1 and for all virtual machines Rj belongs to m-1.Vertical Scaling : In vertical scaling [14] initially we are using the same technique as we did in horizontal scaling to allot the tasks to the VMs.Once the left over tasks are available, then allot them to the VM which are in idle state, but these left over tasks has to wait until previous tasks allotted to the virtual machine is completed and then allot task to the VM so here we have to increase the VM capacity based on the deadline achievement.
Increasing the power of the system is vertical scaling unlike horizontal scaling the system power in terms of cpu, RAM [11] we can increase in vertical scaling, many public clouds can also allow to increase the capacity of the system power (example AWS).But the machine has to stop running we can increase its power and start running with the new power to handle the task to complete within the deadline.
In this scaling technique we are increasing the capacity of the VM based on the deadline, a new VM is generated to reach the task within the deadline and still increase the capacity of the VM by 25 percentage to overcome the overloaded condition and round off the capacity of the VM.

Problem Formulation New_VM=Task[i]/Deadline[i]
To avoid overload condition we are increasing the VM capacity by 25 percentage.Output : All tasks are being processed.
2.Sort the tasks in ascending order.
3. Generate m number of virtual machines and sort them in descending order.4. Consider VMs from m*0.2 to m-1, higher capacity VMs are kept in UVM list in increasing order to handle high length tasks. 5.For loop for T i from 0 to n-1 and for all virtual machines Rj belongs to m-1.

Conclusion
We have discussed about both vertical and horizontal scaling in cloud computing separately, scale out is horizontal scaling on x-axis and scale up vertical scaling on y-axis.In my next coming papers we will combine horizontal and vertical scaling.But according to this paper we concluded that in horizontal scaling we were able to achieve more number of tasks meeting the deadline when compared with vertical scaling.