Skip to content

Dynamiclly Scaling Applications in the Cloud

Published: at 12:00 AM

10.1145/1925861

Authors

Luis M. Vaquero, Luis Rodero-Merino, Rajkumar Buyya

Summary

Scalability of a cloud service refers to the capability to dynamically grow or shrink (scale up or scale down) the underlying infrastructure based on some metrics (e.g. the number of requests per second). It strongly affects the Quality of Service (QoS) of an application. Cloud computing features scalability and that “makes it different to so-called ‘advanced outsourcing’ solution”. The real scenario is not that ideal however and what we perceived automated scaling for cloud applications is not that perfect yet and some important pending issues still exist. This paper investigated the most notable initiatives concerning “whole application scalability” in the cloud. The authors provide state of the art efforts to this issue and the underlying trends they follow.

We mentioned “whole application scalability”, it includes different elements when different abstraction levels applied.

For IaaS (Infrastructure as a Service), where cloud service providers offer hardware infrastructures such as virtual machines (VMs) and networks, “whole application scalability” includes:

  1. Sever scalability

  2. Load balancers and load balancing algorithms

  3. Network scalability (application should be able to request bandwidth-provisioned network pipes and other network resources to interconnect them, the so-called NaaS)

To be more clear, we can divide IaaS into horizontal scaling and vertical scaling.

For PaaS (Platform as a Service), where the cloud service providers (CSPs) offer a container-like environment and developers deploy their applications as software components, “whole application scalability” here we examine container replication and database replication (there are other factors as well).