A Survey on Cloud Computing Elasticity Guilherme Galante, Luis Carlos E. de Bona
Summary ●
Introduction
●
Classification for Elasticity Mechanisms
●
Challenges and Open Issues
●
Final Remarks
2
Introduction ●
●
●
●
Elasticity is a key feature in the cloud computing context and perhaps what distinguishes this computing paradigm from the other ones (e.g. Cluster and Grid Computing) NIST (2009) defines elasticity as the ability for customers to quickly request, receive, and later release as many resources as needed The elasticity implies that the actual amount of resources used by a user may be changed over time, without any longterm indication about the future resources demands Ideally, to the consumer, the capabilities available for provisioning often appear to be unlimited and can be purchased in any quantity, in any time 3
4
Introduction ●
●
●
●
●
Although many elasticity mechanisms have been proposed in academy and and in the commercial field, in last years, there are no published works addressing the state-of-the-art of cloud elasticity In this sense, we developed a survey covering some elasticity solutions, with the objective to providing a better understanding of the current research issues in this field Several solutions were analized... –
9 industry
–
18 academic researches
… and created a classification for elasticity mechanisms We also addressed some challenges and open issues related to the cloud elasticity 5
Classification for Elasticity Mechanisms
6
Scope ●
●
Defines where the elasticity actions are controlled: –
Infrastructure management system (IaaS)
–
Application (IaaS App) or Platform (PaaS e SaaS)
IaaS clouds have an elasticity controller, which is responsible for converting the user requirements to actions –
It uses monitoring data from applications and make decisions on whether or not the resources must be scaled
–
This type of control is suitable for client-server applications, that can take advantage of the addition of virtual machines running server replicas to handle a specific workload
–
Example: Amazon Auto-Scaling 7
Scope (2) ●
On the other hand, the elasticity control can be performed by the application itself or by its execution platform –
In this case, the elasticity controller is embedded in the application or within the execution environment
–
This approach is commonly implemented in PaaS clouds, which uses execution environments (containers) to manage automatically the resources used by applications
–
Example: Aneka (Calheiros et al, 2011)
8
Policy ●
●
●
Related to the needed interactions for the execution of elasticity actions (user - cloud) In analysed solutions, we found two common policies: –
Manual
–
Automatic
A manual policy of elasticity means that the user is responsible for monitoring his/her virtual environment and applications and for performing all elasticity actions –
Generally using a interface or API
–
Example: Microsoft Azure 9
Policy (2) ●
In automatic policy, the control and the actions are taken by the cloud system or by the application, in accordance with user-defined rules and settings, or specified in SLA –
●
●
The control system uses monitoring services to collect information (e.g. CPU load, memory and network traffic) to decide when and how scale resources
It is possible to sub-classify the automatic policies in: –
Reactive: Rule-Condition-Action
–
Predictive: Heuristics and mathematical/analytical techniques to anticipate the system load
Examples: –
Reactive: Scalr, Amazon
–
Predictive: Elastic VM (Dawoud et al, 2011), CloudScale (Shen et al, 2011)10
Purposes ●
●
The elasticity has been used mostly to avoid the inadequate provision of resources and consequently the degradation of system performance Furthermore, some studies have described the use of elasticity for other purposes, such as: –
Increasing the local resources capacity ●
–
Cost reduction ●
–
Example: Aneka, Elastic Site (Marshall et al, 2010) Example: Amazon Spot Instances
Energy savings ●
Example: CloudScale
11
Methods ●
●
●
The last characteristic refers to the methods employed in the implementation of elasticity solutions In the analysed works, there are basically three methods: –
Replication
–
Migration
–
Resizing
Replication consists of adding/removing instances from user virtual environment –
These instances can be virtual machines, containers, or even application modules (in SaaS)
–
Replication is currently the most widely used method to provide elasticity 12
Methods (2) ●
In resizing methods, processing, memory and storage resources can be added/removed from a running virtual instance –
●
This method is the standard method for applications, consisting in the addition of data or control structures
Finally, the virtual machine migration is the transference a virtual machine that is running on one physical server to another one –
Generally, migration is used to simulate the behavior obtained with resizing in clouds that do not allow such action 13
Challenges and Open Issues ●
Although many elasticity solutions has been developed by cloud providers and in academic researches, some existing issues have not been fully addressed –
Resources availability
–
Clouds interoperability
–
Resources granularity
–
Startup Time
–
Lack of tools and platforms for elastic applications development
14
Resources Availability ●
The elasticity of a cloud computing provider is limited by its capacity, and consequently, current public cloud providers have to impose strict limits on the amount of resources that a single user can acquire in each instant –
●
Infinite resources premise neglected
Example: –
Amazon allows normal users request simultaneously 20 on-demand instances and 100 spot instances per region
–
Rackspace, all accounts have a preconfigured limit of 65 GB of total memory or approximately 130 individual 512 MB servers per region
15
Clouds interoperability ●
●
The reason for the current poor portability and limited interoperability between clouds is the lack of standardized API’s –
Each cloud provider has its own way on how cloud clients/applications/users interact with the cloud
–
As a consequence the interaction between clouds is a hard (if not impossible) task
There are some initiatives attempting to create cloud standards –
The Cloud Computing Interoperability Forum
–
The IEEE project P2301
16
Resources Granularity ●
●
●
In most IaaS clouds, clients acquire resources as a fixed set of compute, memory, and I/O resources (e.g. instance types in Amazon and server sizes in GoGrid and Rackspace) However, renting a fixed combination of cloud resources cannot and does not reflect the interests of clients The ability to dynamically mix different amounts of compute, memory, and I/O resources would be very valuable for real elasticity –
It could allow users to adjust the resources to their needs in a fine-grained fashion
17
Startup Time ●
In a perfectly elastic cloud, resourcing is instantaneous –
●
However, in real world clouds, the startup time can vary (ranging from 1 to 10 minutes), depending on a number of factors –
●
no time delay between detecting load changes and changing resourcing levels
Thus, the resources provisioning could be slower than expected, affecting the efficiency of actual elasticity mechanisms in handling highly dynamic workloads
Some works present techniques to speed up the virtual provisioning process –
Wu et al. (2011): techniques based on snapshots
–
Tang et al. (2011) : new VM image format
18
Lack of Tools and Platforms ●
●
●
Current tools are very limited: –
Specific to an application model
–
Designed to a single cloud
What is needed, therefore, are elastic application platforms and frameworks that simplify the development and deployment of elastic applications Considering the many applications characteristics: –
Parallelism type (distributed and shared memory)
–
Processing type (interactive and batch)
–
Application types (high-performance, scientific, multimedia, business, etc. 19
Final Remarks ●
●
●
The concept of elasticity is much broader than the services offered by mainstream cloud providers In a near future, this feature can change the way computer environments and applications will be designed and constructed But for this to become reality, some issues must be addressed in next years, in order to eliminate all obstacles that would prohibit the wide use of elasticity feature in cloud computing
20
Questions? A Survey on Cloud Computing Elasticity
[email protected]
21
References ●
●
●
NIST, “The NIST definition of cloud computing,” Nist Special Publication, vol. 145, no. 6, p. 7, 2009. [Online]. Available: http://csrc.nist.gov/publications/drafts/800-145/ Draft-SP-800-145 cloud-definition.pdf Amazon Web Services. [Online]. Available: http://aws.amazon.com/ R. N. Calheiros, C. Vecchiola, D. Karunamoorthy, and R. Buyya, “The Aneka platform and qos-driven resource provisioning for elastic applications on hybrid clouds,” Future Generation Computer Systems, vol. 28, no. 6, pp. 861–870, June 2011.
●
Microsoft Azure. [Online]. Available: http://www.windowsazure.com/
●
Scalr. [Online]. Available: http://scalr.net/
●
●
●
W. Dawoud, I. Takouna, and C. Meinel, “Elastic vm for cloud resources provisioning optimization,” in Advances in Computing and Communications, ser. Communications in Computer and Information Science, A. Abraham, J. Lloret Mauri, J. F. Buford, J. Suzuki, and S. M. Thampi, Eds. Springer Berlin Heidelberg, 2011, vol. 190, pp. 431–445. Z. Shen, S. Subbiah, X. Gu, and J. Wilkes, “Cloudscale: elastic resource scaling for multi-tenant cloud systems,” in Proceedings of the 2nd Symposium on Cloud Computing, ser. SOCC 2011. ACM, 2011, pp. 5:1–5:14. P. Marshall, K. Keahey, and T. Freeman, “Elastic site: Using clouds to elastically extend site resources,” in Proceedings of the 10th Intl. Conference on Cluster, Cloud and Grid Computing, ser. CCGRID 2010. IEEE, 2010, pp. 43–52.
●
Rackspace. [Online]. Available: http://www.rackspace.com/
●
CCIF, “The Cloud Computing Interoperability Forum.” [Online]. Available: http://www.cloudforum.org/
●
IEEE, “Cloud Profiles Working Group.” [Online]. Available: http://standards.ieee.org/develop/project/2301.html
●
GoGrid. [Online]. Available: http://www.gogrid.com/
●
●
X. Wu, Z. Shen, R. Wu, and Y. Lin, “Jump-start cloud: efficient deployment framework for large-scale cloud applications,” in Proceedings of the 7th Intl. conference on Distributed computing and internet technology, ser. ICDCIT’11. Springer-Verlag, 2011, pp. 112–125. C. Tang, “Fvd: a high-performance virtual machine image format for cloud,” in Proceedings of the 2011 USENIX technical conference, ser. USENIX’11. USENIX Association, 2011, pp. 18–18.
22