Elasticity in Cloud Computing: A Survey - Semantic Scholar

9 downloads 135934 Views 492KB Size Report
we propose this survey on cloud computing elasticity based on an adaptation ... aspects are important in cloud environments, because providers need to add.
Annals of Telecommunications manuscript No. (will be inserted by the editor)

Elasticity in Cloud Computing: A Survey Emanuel Ferreira Coutinho · Fl´ avio R. C. Sousa · Paulo A. L. Rego · Danielo G. Gomes · Jos´ e N. de Souza

Received: date / Accepted: date

Abstract Cloud computing is now a well-consolidated paradigm for on-demand services provisioning on a pay-as-you-go model. Elasticity, one of the major benefits required for this computing model, is the ability to add and remove resources “on the fly” to handle the load variation. Although many works in literature have surveyed cloud computing and its features, there is a lack of a detailed analysis about elasticity for the cloud. As an attempt to fill this gap, we propose this survey on cloud computing elasticity based on an adaptation of a classic systematic review. We address different aspects of elasticity, such as definitions, metrics and tools for measuring, evaluation of the elasticity, and existing solutions. Finally, we present some open issues and future direcEmanuel Ferreira Coutinho Master and Doctorate in Computer Science (MDCC) Virtual UFC Institute Federal University of Ceara (UFC) - Brazil Tel.: +55-85-8875-1977 E-mail: [email protected] Fl´ avio R. C. Sousa Teleinformatics Engineering Department (DETI) Federal University of Ceara (UFC) - Brazil E-mail: [email protected] Paulo A. L. Rego Master and Doctorate in Computer Science (MDCC) Federal University of Ceara (UFC) - Brazil E-mail: [email protected] Danielo G. Gomes Teleinformatics Engineering Department (DETI) Federal University of Ceara (UFC) - Brazil E-mail: [email protected] Jos´ e N. de Souza Master and Doctorate in Computer Science (MDCC) Federal University of Ceara (UFC) - Brazil E-mail: [email protected]

2

Emanuel Ferreira Coutinho et al.

tions. To the best of our knowledge, this is the first study on cloud computing elasticity using a systematic review approach. Keywords Cloud Computing · Elasticity · Systematic Review · Metrics · Strategies

1 Introduction Cloud computing paradigm proposes the integration of different technological models to provide hardware infrastructure, development platforms, and applications as on-demand services based on a pay-as-you-go model [82]. In this well-consolidated paradigm for resource provisioning, customers waive the infrastructure administration. Furthermore, cloud computing providers offer services as third parties, delegating responsibilities and assuming costs strictly proportional to the used amount of resources. Elasticity is a key point to add Quality of Service (QoS) into cloud services. It allows providers to add or remove features, without interruption and, at runtime, to handle the load variation. According to Mell and Grance [64], these resources can be acquired quickly, in some cases even automatically, to meet the increases and decreases of the workloads. For cloud users, the available resources appear to be unlimited and can be purchased in any amount and at any time. Elasticity is often associated with the scale of the systems, but there are some differences. Scalability is defined as the ability of a system to add more resources to meet a larger workload requirement [43]. Elasticity consists of the growth and reduction of resources according to the workload, while scalability only considers growth. Moreover, scalability is a time-free notion and it does not capture how long it takes for the system to achieve the desired performance level, whereas for elasticity, time is a central aspect, which depends on the speed of response to a certain changed workload. Aspects related to elasticity have been received a lot of attention. These aspects are important in cloud environments, because providers need to add resources according to the workload to avoid Service Level Agreement (SLA) violations, and to remove resources when the workload decreases. Some papers, such as [55] and [56], performed an in-depth study on commercial cloud computing environments, but did not look deeply at elasticity. Although several cloud computing studies explore the theme of elasticity, such as in [18, 84, 87, 29, 43], the analysis process of the state of the art for the selection of related work often lacks a systematic methodology in its realization, which may result in a somewhat incomplete and weak literature review. This paper provides a survey on cloud computing elasticity based on an adaptation of a classic systematic review. To the best of our knowledge, this is the first paper that uses a systematic review approach to show the state of the art of cloud elasticity. To better understand the elasticity concept, this survey addresses different aspects of elasticity, such as definition, metrics, tools,

Elasticity in Cloud Computing: A Survey

3

and existing solutions. In addition, open issues, main challenges and future directions were highlighted. This paper is organized as follows: Section 2 explains our proposal of a systematic review adaptation. Section 3 presents a cloud elasticity overview. Section 4 details the results of the systematic review. Solutions for elasticity in cloud computing are presented in Section 5. Section 6 discusses open issues in elasticity and, finally, Section 7 presents the conclusions. 2 Systematic Review Adaptation A systematic review is a protocol-driven comprehensive review and synthesis of studies focusing on a research topic or on related key questions [81]. By using a controlled and formal process of bibliographic research, it is expected that the results return the most relevant topics, gaps, challenges, processes, tools and techniques. In this survey, we propose a much more simple form of a classic systematic review based on the guidance of Kitchenham [45], with some adaptations. By doing this, we search and select relevant studies that address related works on elasticity in cloud computing environments with focus on performance analysis. Figure 1 shows the systematic review process proposed in this work. 2.1 Activity 1: Plan review This activity describes the actions to plan the review. – Identify Need of the Review Elasticity is commonly cited as one of the advantages of cloud computing, but it is hard to find works with more detailed information. – Develop Review Protocol There are seven sub-activities that describe the elaboration of the review protocol. (i) Define Research Questions The objective of the systematic review is to answer the following questions: – Main Question (QP): What is the state of the art in elasticity in cloud computing environments? – Secondary Question 1 (SQ1): How is performance analysis being done for elasticity in cloud computing environments? – Secondary Question 2 (SQ2): What tools, benchmarks or workloads are used to evaluate elasticity in cloud computing environments? – Secondary Question 3 (SQ3): What metrics are most commonly used to evaluate elasticity in cloud computing environments? – Secondary Question 4 (SQ4): What are the strategies adopted to provide elasticity?

4

Emanuel Ferreira Coutinho et al.

Fig. 1 Flow of protocol review.

(ii) Define Search String All the queries used the following keywords: “cloud computing”, “elasticity”, “performance analysis”, “performance evaluation”, “metric”, “benchmark” and “tool”. After some refinements, the following search string was generated: (“cloud computing”) AND (“elasticity”) AND (“performance analysis” OR “performance evaluation”) AND (“metric” OR “benchmark ” OR “tool ”). The construction of this search string required some care, because results can vary depending on the terms and operators used. However, we performed several tests to define the best string to be applied in this research in order to find representative works. (iii) Define Sources of Research

Elasticity in Cloud Computing: A Survey

5

For this review, the articles were sought in Science Direct1 , ACM Digital Library2 e IEEE Xplore3 . (iv) Define Search Procedure in the Sources The same search string was used in the three search indexers by the advanced search mechanism of each one. (v) Define Criteria for Inclusion and Exclusion Some constraints were used to limit the search. Only journal and conference articles were researched. These articles should have been published between the years 2009 and 2013. The keyword “elasticity” must be in the article. Again, the selected and not selected articles are checked to ensure that no work has been erroneously included or excluded. (vi) Define Selection Procedures Step 1: The search strategy is applied on the sources. Step 2: To select an initial set of studies, the titles and abstracts of all obtained articles were read and confronted against the inclusion and exclusion criteria. Step 3: All the identified articles in step 2 were read in full and again confronted against the inclusion and exclusion criteria. The included articles were documented and forwarded to data extraction. (vii) Define Data Extraction Procedure The extraction of information from the articles was performed based on a form with questions oriented to obtain answers for the research questions of the review. The form consists of a sheet with items to be filled for each article read: title, publication year, publication vehicle, authors, countries, research group, keywords, proposal, observations, kind of analysis, metrics, elasticity metrics, workloads, tools, future works from articles and ideas about the article.

2.2 Activity 2: Conduct Review The conduct of the review consists of four activities: – Identify Primary Studies The collection of information occurred in July 2012 and was updated in May 2013. As a result, we found 42, 67 and 173 articles in Science Direct, ACM Digital Library and IEEE Xplore, respectively, totalling 282 articles. Regarding the number of obtained results, an important factor to be considered are the terms used in the search string. Many search engines have several different configurations, each with its own particularities. A small change in their settings and in the used keywords or operators applied in the search may result in a different amount of works, influencing the data consolidation 1 2 3

ScienceDirect - http://www.sciencedirect.com/ ACM Digital Library - http://dl.acm.org/ IEEE Xplore - http://ieeexplore.ieee.org/

6

Emanuel Ferreira Coutinho et al.

and analysis. However, at the time of review performing, the results were sufficiently representative, due to the test of various search strings, seeking to recover the maximum amount of work with quality. – Select Primary Studies The reading of all 282 abstracts was used as criterion for refinement, leaving 82 papers, divided into 19 from Science Direct, 21 from the ACM Digital Library and 42 from IEEE Xplore. – Evaluate Quality of the Studies The quality evaluation of the primary articles was performed in a simplified way, only checking the presence or not of some kind of application of the elasticity in cloud computing, or metrics and tools for elasticity. – Extract Data Once the set of selected articles for full reading was defined, the process for data extraction was performed accordingly the plan. A sheet was filled in for each article with specified information. This activity required about four months to be completed. 2.3 Activity 3: Result Review This activity presents general results of the review and the results for each planned question. – Present an Overview of the Studies Present an overview of the results obtained by the review adaptation. These results showed some general information not directly related to elasticity, but they served to contextualize the time of the review. – Present the Results of the Questions Present the results of the research questions. 3 Overview In this section, we present an overview of review’s results. This information allows a general vision about elasticity works in cloud computing. There are many works that try to define cloud computing elasticity. For example, Herbst et al. [41] presented the following definition for elasticity: “Elasticity is the degree to which a system is able to adapt to workload changes by provisioning and deprovisioning resources in an autonomic manner, such that at each point in time the available resources match the current demand as closely as possible”. In our systematic review, we found the definitions presented in Table 1.

Elasticity in Cloud Computing: A Survey

7

Table 1 Definitions of elasticity identified in the research Work Mell and Grance [64]

Cooper et al. [16]

Aisopos et al. [3]

Espadas et al. [24] Li et al. [52] Perez-Sorrosal et al. [78]

Garg et al. [32] Han et al. [37] Pandey et al. [74]

Elasticity Definition Capabilities can be elastically provisioned and released, in some cases automatically, to scale rapidly outward and inward commensurate with demand. System can add more capacity to a running system by deploying new instances of each component, and shifting load to them. Provider can dynamically assign the amount of memory, CPU and disk space to a specific job and therefore their performance and capabilities can vary based on the set up. Ability to create a variable number of virtual machine instances depending on the application demands. How quickly a system can adapt to workload changes that may happen in a short amount of time. Capacity at runtime by adding and removing resources without service interruption in order to handle the workload variation. How much a cloud service can be scaled during peak times. Ability to adaptively scale resources up and down in order to meet varying application demand. Ability of a system to expand and retract without problems.

Table 2 presents the number of articles per year in both journals and conferences from 2009 to 2013. Upon obtaining the articles and during the systematic review process, some works were still in the in press situation. Maybe they have been published.

Table 2 Quantity of works by publication year Year 2009 2010 2011 2012 2013 in press

Quantity 2 5 23 37 11 4

We can see there was an increase in publications in 2011, reaching the maximum in 2012 with 37 publications. Perhaps this increase was due to the fact that many working groups finalized their research in cloud computing in that time frame, showing early results. In 2013, there were only 11 published works, but this number is expected to increase because of the publication of papers which were in development, and, considering that the articles were selected in May 2013, probably there will be more works in the rest of the year.

8

Emanuel Ferreira Coutinho et al.

Table 3 Quantity of publications by publishing item Journals and Conferences Future Generation Computer Systems IEEE International Conference on Cloud Computing IEEE International Parallel & Distributed Processing Symposium Computer Networks Eurosys IEEE International Conference on Utility and Cloud Computing IEEE International Symposium on Service Oriented System Engineering (SOSE 2011) IEEE Transactions on Parallel and Distributed Systems IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing International Conference on Cloud Networking (CLOUDNET) International Conference on Parallel Processing NetEcon 2012 Workshop SC Companion: High Performance Computing, Networking Storage and Analysis

Quantity 13 3 3 2 2 2 2 2 2 2 2 2 2

Most studies were originated from Future Generation Computer Systems 4 journal, with 13 publications. These publications are recent, considering that most of its works are of 2012 (4) and 2013 (6), of which, at the time of articles selection, 7 of them were with the “in press” state. Many conferences published works about cloud computing in the last few years. The emergence of new specific conferences about cloud seems to be a trend. The publishing items returned by the search were well diversified. Except for the Future Generation Computer Systems, the other items had one, two or three publications. Table 3 displays only items with at least two publications. The counting of countries was performed as follows: for each country of each research group in a publication, the number of publications in the country would be increased. Therefore, some articles were counted with more than one country. Figure 2 presents publications by country. The countries that highlighted in publications related to the elasticity on cloud computing were: Spain (9), China (10), Australia (15) and United States (16). Despite the United States having more publications, these were from different research groups and associated companies. Altogether 108 research groups were identified distributed among 24 countries. The groups that had more publications in cloud computing were Cloud Computing and Distributed Systems (CLOUDS) Laboratory and Dept. Arquitectura de Computadores y Automatica, that have many publications due the fact they are working in various areas of research in cloud computing. Another highlight was Chinese research groups, who also possessed several publications. Coincidentally the authors with the highest number of publications are from consolidated research groups on cloud computing. These authors are 4 Future Generation Computer Systems - http://www.journals.elsevier.com/futuregeneration-computer-systems/

Elasticity in Cloud Computing: A Survey

9

Fig. 2 Publications on cloud elasticity from 2009 to 2013: number of papers per country.

from groups in Australia and Spain. Their works are not restricted only to elasticity, and they act in different research areas in cloud computing. In all studies, the terms elasticity and performance analysis occurred. Some studies performed experiments specifically for elasticity (measurement and approaches). Most of works used environments features to provide elasticity services. In general, most of works on cloud computing related to elasticity encompassed the following topics: – – – – – –

Architectures for cloud computing; Strategies for resource allocation; Tools for general purpose; Definition of service pricing in the cloud; High performance and web applications; Diversified environments (mostly Amazon). More specifically, some research categories could be identified in the work:

– Elasticity: This review found some metrics for measuring elasticity [52, 13, 43]. For evaluating elasticity, the performed experiments used variable workloads [88]. – Resource Allocation: Strategies and policies for resource allocation have been proposed, ranging from mathematical models, analysis of available resources, multi-tenant models and geographic location, among others [11, 12, 24, 75,53, 73]. Generally, metrics were associated to policies, such as resource analysis and decision making for the allocation. – SLA: Some works used elasticity to ensure QoS. We identified some frameworks for SLA evaluation: YCSB [16], OPTIMIS [26] and SMICloud [31, 32]. Variations in different workloads to analyze the effects on the maintenance of the SLA were also identified.

10

Emanuel Ferreira Coutinho et al.

– Pricing: Research on cloud services pricing still appears varied. Usually, pricing proposals are based on the use of resources [37]. A point to be considered is the minimization of costs among service models of cloud providers [38, 42]. – High Performance Computing (HPC): HPC emerged in several studies, such as the viewpoint of simply running HPC applications in the cloud and the development of methodologies [63, 59, 97]. A cloud framework performed experiments in an elastic application using Message Passing Interface [80]. To solve Many-Task Computing (MTC) applications, a ubiquitous access to cloud resources was used to deploy a cluster [68]. – Autonomic Computing: Many works indirectly used features or principles of autonomic computing, trying to reduce human intervention [25, 34, 74, 72]. The use of agents for collecting information was a strategy often used to promote elasticity, especially associating metrics to some computational resources of the environment for subsequent decision-making based on rules. – Mobile Computing: The cloud can be used to improve the performance of some applications in mobile devices by processing and storing in an elastic manner in the cloud [71]. Internet of Things (IoT) must increase interaction between the cloud and various mobile devices [28, 75]. – Performance Analysis: Performance evaluations using workloads in private and public clouds were targets of some research [30, 91]. – Architecture: Some works used integration between environments, such as GRID and cloud. This review found some proposed approaches for security in cloud [51] and virtual machines management [67]. Dawoud et al. [21] proposed an architecture for elastic virtual machine scheduling. Etchevers et al. [25] used an application architectural model and a self configuration protocol to automate the deployment of legacy applications. Lucas-Simarro et al. [60] proposed an architecture with different scheduling strategies through many clouds based on an optimization criteria, users and environment constraints. Tordsson et al. [90] proposed some frameworks and architectures to manage the resource allocation using load balancers and brokers. According to Raj Jain [44] definitions of experiments types, we classify the identified articles in the following categories: experimentation, analytical modelling and simulation. These works could occur in a combined manner. Table 4 describes the quantity of experiments by type per search indexer. From a total of 82 read articles, 6 were of type “survey” and did not present any experiment, only discussions. These works are not included in Table 4. Most of the works performed some kind of experimentation, simple or combined with other techniques. It is common to use the services of Amazon EC2 to perform experiments in elasticity. Many articles did their experiments combining kinds of experiments. This implies a higher quality of the works, because they become more complete and it is possible to make the comparison between works, but with different views. Some works used CloudSim [14] or computational traces of applications to perform their simulations.

Elasticity in Cloud Computing: A Survey

11

Table 4 Types of experiments identified in publications Types of experiment Experimentation Analytical Modelling Simulation Experimentation and Analytical Modeling Simulation and Analytical Modeling Experimentation and Simulation Total by Index

SD 7 0 0 8 2 0 17

ACM 11 2 0 2 3 1 19

IEEE 15 3 7 9 5 1 40

Total 33 5 7 19 10 2 76

Despite experiments were very diversified, there were deficiencies in the design of experiments. The goals, services and results of the experiments were well described. However, the project design was not detailed in many publications. In some works, the justification of the selected metrics, parameters and tools used to setup the experiments were not detailed. Regarding the results, in some works, these were not only described in tables or graphics, but the comments and the discussions are superficial. The workload design used in the experiments were directly associated to the benchmark or workload used in the experiments. This means if they did not have any mechanism of workload’s configuration, the experiment was very tied to the tools. In general, many experiments used SPECweb2005 [93, 11, 78] or TPC-W [47, 37, 43], which allowed the workload configuration. The way which the experiments were conducted requires a more detailed design, because it is directly associated to the effort and cost of the experiment. The analysis and data interpretation in many works were very complete, but in some cases were merely descriptive and general, which can leave open conclusions. All these factors harm the reproduction of the experiments and subsequent comparison between works. On the other hand, the number of 31 studies with combined evaluation techniques provides a higher quality of the work. This combination of evaluation techniques allows a theoretical view, often the mathematical point of view, and practical experiments.

4 Results This work found many results of different types, based on research questions. Among the various results, we highlighted metrics and tools. We identified cloud computing environments, tools, such benchmarks and workloads, usually used in performance analysis. Moreover, we described general and specific metrics for elasticity.

12

Emanuel Ferreira Coutinho et al.

4.1 Tools To facilitate the analysis of the tools, they were divided into the following groups: infrastructure, benchmarks, workloads, applications, computational traces, simulation, solvers, web servers, database, and programming languages. To configure a cloud computing environment it is necessary to use many tools. Some tools provide services, and other support the build of a cloud environment. Commonly, these tools are available in cloud environments and they provide infrastructure services. We identified some of these tools and environments, such as: Amazon EC2, OpenNebula, Azure, Eucalyptus, Aneka, ElasticHosts, Google App Engine and Rightscale. Each of these tools has been identified at least twice in the search. The availability of instances is very common in cloud computing providers. However, specifically some providers have products that have been widely used in this work. There are other instances servers such as ElasticHosts, IBM, RightScale, and FlexiScale. Amazon EC2 was the most used environment, and it has several services for various areas: instances (EC2), scaling (autoscaling), monitoring (CloudWatch), database (S3, MySQL, EBS, RDS, SimpleDB), and load balancer (Elastic Load Balancing), among others. RackSpace also came up with services and data instances. Microsoft Azure also appears as a provider option, with some studies using instances, database and monitoring. Amazon CloudWatch5 provides monitoring of cloud resources. Both developers and system administrators can use it to collect and monitor metrics that can be used to immediately react to situations and keep services operating in accordance with the SLA. So it is possible to obtain an overall visibility of resource utilization, services and applications performance. Auto Scaling6 is a service that allows the instance capacity scaling almost automatically. Average CPU utilization, network and disk usage are examples of metrics used to scale a service. Thus, the number of used instances easily increases during demand spikes to maintain performance and decreases automatically during demand reduction to minimize costs. Auto Scaling is particularly useful for applications that experiment with variability of usage per hour, day or week and it is enabled by Amazon CloudWatch. Elastic Load Balancing7 automatically distributes incoming application traffic across multiple instances of Amazon EC2. It allows the system to reach higher fault tolerance services, providing an ability to balance the workload and a response to incoming application traffic. It detects instances with integrity problems within a set and automatically reroutes traffic to intact instances until the problems are restored. In addition, it is possible to use the Elastic Load Balancing between different availability zones, improving availability. 5 6 7

Amazon CloudWatch - http://aws.amazon.com/cloudwatch/ Auto Scaling - http://aws.amazon.com/autoscaling/ Elastic Load Balancing - http://aws.amazon.com/elasticloadbalancing/

Elasticity in Cloud Computing: A Survey

13

Table 5 Main identified tools for provision of services in the cloud Description Amazon EC2 Amazon S3 OpenNebula Amazon RDS Azure ElasticHosts Amazon AutoScaling Amazon CloudWatch Aneka Eucalyptus GoGrid

# 27 7 6 4 4 4 3 3 3 3 3

Description Google APP ENGINE Amazon EBS Amazon Elastic Load Balancer Amazon SIMPLE DB FlexiScale Ganglia IBM Cloud Nimbus Rackspace Rightscale Scicloud

# 3 2 2 2 2 2 2 2 2 2 2

Free middleware software applications also were identified, such as OpenNebula, Eucalyptus and OpenStack. Some authors used OpenNebula to create private and public clouds for experimentation [69, 67, 63, 90]. Table 5 displays the tools that stood out in the survey. Proxy applications and load balancers were also used: HAProxy (3), Amazon Elastic Load Balancer (2), Nginx (2), and Squid and Amoeba with only one occurrence each. Most of them were used to provide some autonomic solution, where some load balancing strategy was used. Several works related to performance analysis used benchmarks and workloads for experiments. The revision identified many benchmarks and workloads. Table 6 shows only the tools with two or more occurrences. Among these, we highlight TPC-W [47, 37, 43] and SPECweb2005 [27, 93, 11, 78]. YCSB is a framework with the goal of facilitating performance comparisons of the new generation of cloud data serving systems [16]. Blast is one of the most widely used bioinformatics algorithms in life science applications [59]. CloudStone is a project aimed at providing a benchmark for performance assessment in computational clouds, and it implements a realistic usage model of a web application to be deployed on an IaaS [2]. Embarrassingly Distributed (ED) and NAS Grid Benchmarks (NGB) were among the most used benchmarks in this research [69, 67, 68, 90]. NAS Parallel Benchmarks (NPB) are a small set of programs designed to help and evaluate the performance of parallel supercomputers. Particularly, Embarrassingly Distributed (ED) and BT-IO are part of NPB, but they were so used specifically to justify their separation. Message Passing Interface (MPI) is highlighted by Zhai et al. [97]. It is a standard for data communication in parallel computing and its application has been increasing while working with cloud computing, not only related to elasticity, but to the use of MPI in cloud environments. Some benchmarks for MPI were identified in the research, such as the Intel MPI Benchmark and MPI-Blast, both in [97]. Some of these tools generate workloads for load testing in applications. They were efficient for experiments with workloads in cloud computing environments: Httperf [27, 11, 60], JMeter [24, 43] and Tsung [28].

14

Emanuel Ferreira Coutinho et al.

Table 6 Main benchmarks and workloads identified in the research Tool TPC-W SPECweb2005 YCSB Blast, Cloudstone, Embarrassingly Distributed (ED), NAS Grid Benchmarks (NGB), NAS Parallel Benchmarks (NPB) BT-IO, Httperf, Intel MPI Bench, IOR, JMeter, TPC-C ALS, Badabing, Bonnie, Bonnie++, Hdparm Tool, HPCC, Iperf, Linpack, LMBench, Lublin99, PostMark, SPECjvm 2008, TPC-E, TPC-H, UBENCH, Whetstone, WSTest

Quantity 9 8 6 4 3 2

Microbenchmarks are alternatives for workloads and benchmarks. They are simplified benchmarks that are usually programs written and executed to generate a given workload and can collect some metrics. Li et al. [56] summarized three types of benchmarks used for evaluating commercial cloud services: application, synthetic and microbenchmark. Application benchmark refers to the real-world software systems that are deployed to the cloud and used as potentially true measures of commercial cloud services. Synthetic benchmark is not a real application, but a well designed program using representative operations and workload to simulate a typical set of applications. Microbenchmark is a relatively simple program that attempts to measure a specific component or a basic feature of cloud services. The benchmarks were very varied in terms of subject. We identified works with synthetic benchmarks [91], microbenchmarks [97], bubble sort [60], rendering [3], load testing [71], Bag-of-Tasks (BoT) and GRID applications [12], simulated workload [51] and synthetic workloads [70]. One way to analyze the behavior of an environment is through running applications. Such applications were from different fields: computer graphics [23], social networks [73], web applications [60] and mathematical functions [30]. Most applications appeared only once in the study. The applications that had more than one occurrence were: A-Brain [80, 91], GASOLINE [49, 56], NAMD [55, 94], WCD [55, 56] and Zookeeper [19, 20]. Computational traces are data collected from applications or systems. Using computational traces in cloud computing environments allow that different aspects of this environment could be analyzed, such as services and environment availability, resource utilization, study of patterns and scalability of applications. Regarding the use of computational traces, they were used in various experiments. Many times they were data system extractions, such as application logs. Some applications used computational traces for experiments which simulated the reality of some system aspect. Most reported computational traces appear only once in the study. The traces that had more than one occurrence were Grid Workloads Archive (AuverGrid), Wikipedia, Fifa 98 and Google. Table 7 describes the identified computational traces, which were identified in several areas: cloud computing providers, multimedia, education, infrastructure, sites and social networks.

Elasticity in Cloud Computing: A Survey

15

Table 7 Identified traces Description Amazon EC2 [31] Carbon Price (iPath Global Carbon) [22] Clarknet [42] Fifa 98 [34, 4] Google [95, 4] Grid Workloads Archive [70, 66] Intrepid cluster at Argonne National Laboratory (ANL) [95] Lastfm [88] NASA [42] Rackspace [31]

Description Requests Tax of a HP Service (VDR) [22] RIKEN Integrated Cluster of Clusters (RICC) in Japan [95] Twitter [73] UC Berkeley [42] Urdue University’s College of Engineering website [42] Virus Simulation [94] Vod UUSee [72] Wikimedia web traces [42] Wikipedia [26, 15, 12] Windows Azure [31]

Considering tools for simulation in cloud computing environments, the following were highlighted: CloudSim [14] and D-Cloud [8]. Other identified tools were Alea and GridSim. Some studies have made use of analytical modelling and they used solvers for solving mathematical problems. The most common tool was AMPL [53, 60, 90], with 3 occurrences, followed by CPLEX [90], Gurobi [53], LP Solver [22], Matlab [48], MINOS [60], MKL Library [63], Octave [48], Optimj [75] and SSJ [49], all with only one occurrence. Some studies have made use of web servers. Apache Web Server and Apache Tomcat were the most used. They count 15 occurrences, while the sum of the other occurrences totalled only 4. In order of occurrence, the web servers were: Apache Web Server (8), Apache Tomcat (7), Jonas (2) Glassfish (1) and JBOSS (1). Typical databases are used for data storage services. Some benchmarks and workload generators require a database to data populate or log of operations. Also in web applications there was usually access to data. The elasticity in some cases was evaluated by the processing capacity of queries in the database, usually submitted by benchmarks and workloads. In this category there were included database servers and tools for data manipulation. The tools more used were: MySql (9), Hadoop (4), Cassandra (2) and HBase (2). Others tools that had only one occurrence: JDBC, JoSQL, NoSQL and PostgreSQL. Tools related to programming languages was another identified category, such as APIs, components and libraries. Most often these languages were used to build microbenchmarks, scripts to support tasks such as information gathering and communication, not necessarily directly related to the elasticity, but for systems functionalities and support. An example is Java programming language, that was the most commonly used, with 8 occurrences. Several identified items are also related to Java, but they were accounted in a separate way. Python got 3 hits. Android applications, servlets, and shell script were identified too. We found other programming languages, but with only one occurrence: C, C++ and PHP.

16

Emanuel Ferreira Coutinho et al.

4.2 Metrics Metrics are always used to evaluate elasticity. There are many kinds of categories of metrics, and many of them are used to evaluate elasticity. Some metrics are of general purpose, and others are specific to elasticity. 4.2.1 General Metrics Many metrics were identified in the research. Some of them are directly related to elasticity, and others are of a general use. These metrics are found in many areas related to computer networks and distributed systems, and they are not limited only to the ones described in this work. The general metrics were grouped by themes. Raj Jain defined some categories of metrics: response time, utilization, throughput, availability, scalability, acquisition and reliability [44]. According to his classification, the most cited metrics were, by category: response time (latency, allocation/deallocation, access, idleness, response), throughput (requisitions/second, Megabytes/second), utilization (resource utilization, percentage of CPU utilization), reliability (number of violations), availability (downtime and uptime), acquisition (cost, cost/performance) and scalability. Scalability is included in the classification of Menasce et al. [65]. In this category the metrics most often cited were: demand, SLA, overhead, total capacity of infrastructure, cost and energy. The main metrics were oriented toward resources, such as CPU and memory. The percentage of CPU allocation was the most common metric, but memory usage, disk errors and QoS violations metrics were also identified. Performance metrics were also identified, for example, throughput, expressed in requisitions per second or Megabytes per second. Some metrics are shared between different groups depending on the context of use, e.g., time for allocation/deallocation of resources may be related to the response time and scalability metric. Some statistical techniques are widely used in exhibition and interpretation of the experiments results. The most frequent were mean, standard deviation, variance and error. The cost and pricing are aspects that are often associated with public clouds due to their resource acquisition nature. The definition of a way to price the use of resources in the cloud is not yet standardized, and each service provider has usually its own strategy. Total costs, infrastructure costs, and costs per hour are examples identified in this review. The provider services pricing is often associated with the use of resources such as CPU, memory and storage. Energy consumption is one of major themes in cloud computing environments. In the analysed studies, we identified the following metrics to measure energy efficiency: Data Center Infrastructure Efficiency (DCiE), Power Usage Efficiency (PUE) and Data Center Performance per Energy (DPPE) [32, 91]. DCiE is defined as the percentage of the total power of IT equipment (computers, storage devices and network). PUE is inversely proportional to DCiE.

Elasticity in Cloud Computing: A Survey

17

DPPE correlates performance of the datacenter with carbon emissions. The overhead of energy was analysed in a work as a way to compare experiments with the measurement of power and energy, conducted through a physical device [51]. The latency was seen as the difference between the beginning of an event and the real beginning of the event, where its effects become noticeable, and many events in the cloud use this metric as a way to measure this time. This research identified the latencies related to virtual machine migration. QoS aspects were identified, quantified, and related to an SLA to be maintained by the application or environment. QoS is usually associated with monitoring rules. Finally, metrics associated to the overhead and reliability were also identified. 4.2.2 Specific Metrics for Elasticity Regarding specific metrics for elasticity, this research returned many metrics, listed in Table 8. Many of these metrics are system resources associated to elasticity. Some of them are specific metrics for elasticity, such as over-utilization and under-utilization. Bai et al. [7] proposed the Performance Resource Ratio (PRR) metric, that reflects the relationships between used resources. It is based on wait time, execution time, along with allocation of resources like CPU, bandwidth, and memory. Gao et al. [30] described a set of metrics (CRAM, CRUM, SPM, SLM, SCM, SEC, ESS e ESR) to analyse the scalability and elasticity in SaaS environments. These metrics are associated to resource allocation, resource utilization, system performance, system workload, effective capacity of the system, effective scalability of the system, and effective range of scalability. Garg et al. [32] described a metric for elasticity as how a cloud service can be scaled during peak intervals, which can be defined by two attributes: mean time to expand and contract the service capacity, and maximum capacity of the service (maximum number of computational units which can be provided in peak periods). Islam et al. [43] defined elasticity metrics based on penalties for overutilization and under-utilization of the resources. Shawky et al. [85] proposed an approach for measuring the elasticity of a cloud, based on the definitions of elasticity in Physics (stress and strain). The cloud stress concept is defined as the ratio between required computing resources and the amount of allocated resources, and the cloud strain concept is defined as the change in some resource before and after scaling operations. To define a metric for elasticity is not an easy task. In general, many common metrics are used, such as response time, or some resource of the environment, combined together to evaluate some aspect of the environment related to the infrastructure. Garg et al. [32] proposed the following way to measure elasticity: “Elasticity is defined in terms of how much a cloud service can be scaled during peak times. This is defined by two attributes: mean time

18

Emanuel Ferreira Coutinho et al.

Table 8 Specific Metrics for Elasticity Group Allocation Capacity

Cost

QoS Resource Utilization

Scalability Time

Metrics Computing Resource Allocation Meter (CRAM), Resource Allocation Available Supply, Capacity, Capacity Increase, Computation Capacity, Maximum Service Capacity, Service Available, System Capacity Meter (SCM), System Effective Capacity Meter (SEC), System Load Meter (SLM), Total Capacity of Infrastructure Cost/Performance rate, Cost Bandwidth, Effectiveness of time and cost ($ hours/instances), Migration Cost, Total Cost of Deployment, Total Price of Infrastructure % Violations, Infrastructure Reconfiguration Overhead, Performance Gain, SLA, System Performance Meter (SPM) % Utilization, Cloud Stress, Strain of the Cloud, Computing Resource Utilization Meter (CRUM), Demand, Idleness, Increase of the Idleness, Number of Over Provisioned Virtual Machines, Number of Under Provisioned Virtual Machines, Number of Virtual Machines, Over Provisioning Rate, Over Utilization, Overall Usefullness, Performance Resource Ratio (PRR), Possible Use, Server Number Average, Under Utilization Effective Scalable Range (ESR), Effective System Scalability (ESS), Scalability, Scale-up Boot, Creation, Deletion, Mean Time to Contract the Capacity of Service, Mean Time to Expand the Capacity of Service, Provisioning, Resource Allocation, Resource Deallocation, Startup, Suspension, Time to Relocate and Restart the Virtual Machine, Time to Restart the Suspension, Time/Resources on Time, Total Acquisition, Total Release

taken to expand or contract the service capacity, and maximum capacity of service. The capacity is the maximum number of compute units that can be provided at peak times”. Groups of metrics related to elasticity were identified in the research. These groups are: Allocation, Capacity, Cost, QoS, Resource Utilization, Scalability and Time. Table 8 shows the metrics identified in this research directly related to elasticity, separated by groups. Resource allocation is often directly related to the provision of elasticity. Thus, metrics that evaluate resources allocation in a computational cloud support performance analysis of elasticity. Examples of metrics in this category are usually related to the use of environment resources in allocations, such as CPU and memory, usually analyzed during a time interval. The capacity of an environment could be measured by resources and services availability, by how it is modified in time, and by how it could be provided in a given time considering that the workloads are dynamic. There is always a cost related to the utilization of some elasticity mechanism. This cost could be a financial cost or an operational cost. Many types of cost metrics were identified, such as: cost of resource utilization, cost of service execution (e.g. monitoring and load balancing), and cost by unit of time to maintain a given service within predetermined limits. Regarding QoS, we identified metrics that measure violations of some condition/need of the environment. The measurement of SLA itself was used as a means of indirectly measuring the performance of elasticity. Therefore, it is

Elasticity in Cloud Computing: A Survey

19

possible to evaluate whether there was any gain in performance due to elasticity. However, to adjust the environment due to elasticity, it is possible to measure the reconfiguration overhead of the infrastructure. The resource utilization category identified metrics related to the use of some feature of the environment, usually infrastructure resources. Typically, it measures idleness and over and under utilization. It also describes the environment demand and whether the utilization level is low or high. We highlighted the use of virtual machines resources for some mechanism of elasticity, such as the number of virtual machines and their status with respect to over and under provisioning. Scalability was in many times used as a strategy to provide elasticity. We identified a specific metric for scalability, its effective range of use, and the scalability of the system [30]. The time required for some operation was the most used metric. For elasticity, many operations are measured to provide some service. The allocation/deallocation time of resources, and the time to provide/deprive resources are used to measure the elasticity’s performance. During these periods the service can be inactive, which is not desirable, then it is natural that these times are monitored.

5 Solutions for Elasticity in Cloud Computing Management of cloud environments involves building strategies to make it elastic to ensure QoS and to use resources efficiently. Thus, there are different solutions that implement elasticity. These solutions add and remove resources according to workload-based policies, for example, when CPU usage is higher than a defined value or when SLA is violated. In this work, we classified the methods (actions) and models used to implement elasticity, based on the scalability mechanisms presented in Vaquero et al. [92] and the classification for elasticity presented in Galante and Bona [29]. An overview of the classification is shown in Figure 3.

5.1 Methods – Horizontal scaling (Replication): consists of adding/removing instances from a user’s virtual environment. These instances can be applications, containers, or virtual machines (i.e. adding new server replicas and load balancers to distribute load among all available replicas). Replication is currently the most widely used method to provide elasticity. – Vertical scaling: consists of adding/removing resources (e.g. processing, memory and storage) from a virtual instance. We identified two different approaches to perform vertical scaling: - Resizing: consists of changing at runtime the assigned resources to a running instance (e.g. assigning more physical CPUs and memory to a

20

Emanuel Ferreira Coutinho et al.

running virtual machine). This solution is common in Unix-based operating systems, once they support on-the-fly (without rebooting) changes in the available CPUs or memory (i.e. by using memory ballooning). - Replacement: consists of adding more powerful servers to replace less powerful ones (trying to mimic the on-the-fly resizing approach). This approach commonly starts a more powerful replica and stops the less powerful one, and it is common on public cloud providers. – Migration: consists of transferring a virtual machine or application that is running on a physical server to another one. Virtual machines can be migrated from a server to another for consolidation or load-balancing purposes. Applications can also be migrated. The scaling actions differ depending on the type of scaling. For horizontal scaling, the user should define a fixed number of virtual machines to be allocated or deallocated, but for vertical scaling, the same variable refers to the amount of the resource that will be added (e.g. CPU and RAM memory) [58]. Besides classifying the methods, we identified the most common ways that the actions are triggered. According to Sharma et al. [84], any dynamic provisioning algorithm involves two considerations: (i) when to invoke the provisioning algorithm; and (ii) how to provision the needed capacity. The provisioning algorithms can be triggered in a proactive or a reactive manner.

5.2 Models – Reactive: this approach reacts to the current load and uses thresholds of resource utilization or of SLA violations to trigger the need for additional capacity. The system reacts to changes but does not anticipate them. – Proactive (predictive): this approach uses workload forecasting techniques to determine when the future workload will exceed currently provisioned

Fig. 3 Classification of Elasticity Solutions.

Elasticity in Cloud Computing: A Survey

21

capacity and invokes the algorithm to allocate additional servers before this capacity is exceeded. Proactive techniques usually base their decision on the history of the load. It is possible to create a mixed solution by combining reactive and proactive approaches to handle the prediction inaccuracy and also to avoid variations in the provisioned capacity due to oscillations in workload.

5.3 Elastic Solutions Today’s cloud computing platforms support on-demand elastic allocation of resources, while supporting a variety of hardware configurations, at different price levels. Further, as workloads change over time, a number of elastic scaling mechanisms are available to transition the application to a new hardware configuration. There are a lot of elastic solutions. In our study, we found the following numbers in the following categories: model reactive (29) and predictive (11); method replication (34), resizing (4) and migration (16). Reactive and replication were the most used model and method, respectively. Replication has been used to improve availability, performance, and scalability in different environments [86]. In cloud environments, replication is the most used method to implement elasticity. Providers need to add replicas according to the workload to avoid SLA violations. Furthermore, they need to remove replicas when the workload decreases. The reactive model is used to define when actions must be performed (e.g. add a replica). These actions are based on resource monitoring or SLA. Table 9 shows identified works organized and classified according to the defined classification of elasticity. According to our study, none of the works used the proactive resizing strategy or the replacement approach.

Table 9 Methods and Models for Elasticity Models/Methods Reactive Replication Reactive Migration Reactive Resizing Proactive Replication Proactive Migration

Quantity 15 6 3 7 2

Works [27, 59, 11, 30, 34, 78, 13, 23, 37, 76, 83, 91, 15, 19, 98] [39, 48, 54, 60, 63, 67] [3, 21, 24] [12, 88, 72, 26, 42, 46, 73] [79, 10]

5.3.1 Reactive Replication Several works used a reactive approach, which is commonly dependent on a monitoring system. The monitoring services refer to mechanisms that allow

22

Emanuel Ferreira Coutinho et al.

users to monitor and collect system performance metrics (e.g. CPU and memory usage of virtual machines) at a fine level of granularity. Such metrics will be used by an auto scale service to automatically add/remove virtual machines. Fito et al. [27] addressed web servers’ elasticity in a cloud environment. The authors presented an SLA-aware resource management solution that reacts to the dynamic load received by handling web server replicas. They defined a set of economic variables and functions to study the revenue acquired by the provider and how it should act to maximize it. Perez-Sorrosal et al. [78] presented a novel caching and replication infrastructure that facilitates the scalable and elastic deployment of multi-tier architectures. Kaleidoscope [11] is an approach to virtual machines replication associated with an on-demand virtual machine cloning state while coming very close to matching the runtime performance of synchronous replication. Pawluk et al. [77] introduced STRATOS, a broker service to facilitate crosscloud, application topology platform construction and runtime modification in accordance with the deployer’s objectives. STRATOS enables cross-provider instantiation of replica servers by solving a multi-criteria optimization problem. Zhao et al. [98] presented a framework for database tier replication based on SLA performance. This framework continuously monitors the applicationdefined SLA and automatically triggers the execution of necessary corrective actions (scaling in/out the database tier) when required. Although these works have different objectives and they are applied to quite different scenarios, all of them have used reactive solutions to achieve their goals. 5.3.2 Reactive Migration He et al. [40] proposed a resource management solution based on virtual machines migration to improve cloud resource utilization. The authors analysed performance issues of virtual machines migration technologies and proposed a shared storage system infrastructure to tackle the problem. Mauch et al. [63] described virtualization techniques and management methods, such as multi-tenancy, dynamic provisioning, and SLA. The authors also presented a novel approach using high speed cluster interconnects like InfiniBand in a high performance cloud computing environment. This approach allows a fast migration of virtual machines to guarantee network performance and QoS. Virtual machines migration strategies are more concentrated on achieving the load balancing among physical machines without considering the specific characteristics of applications running on the virtual machine. 5.3.3 Reactive Resizing While the most common implementations of scalability in cloud use a virtual machine (coarse-grained) as a scaling unit, some works proposed fine-

Elasticity in Cloud Computing: A Survey

23

grained solutions through the use of vertical scaling techniques to add/remove resources such as VCPUs and megabytes of memory to a virtual machine instance. Dawoud et al. [21] proposed an architecture to perform vertical scaling operations. The authors presented a comparison between their implementation and a multi-instance architecture. The comparison includes both analytical queuing model and characteristics implementation of each architecture. They argued vertical scalability implies less response time and reduces the provisioning overhead, which results in less violation of SLAs.

5.3.4 Proactive Replication Besides the reactive approach, predictive approaches have also been used to provide automatic elasticity solutions. These solutions use heuristics and mathematical/analytical techniques to anticipate the system load behavior and use these predictions to decide how to scale resources [29]. Calheiros et al. [12] proposed a virtual machine provisioning technique to dynamically adapt to workload changes and provide QoS guarantees to end users. Their solution uses queueing system model and workload information to drive replication decisions of an provisioned application. The authors presented several simulation-based experiments using production workload and the results indicated the proposed provisioning technique can detect changes in workload intensity (arrival pattern and resource demands) that occur over time and can instantiate replicas accordingly to achieve application QoS targets. Tirado et al. [88] combined a predictive model with replication for adding and removing replicas with the purpose of improving the use of resources and distributing the workload. Their workload prediction is performed through an autoregressive model, while enhancements are made based on predictive data grouping according to historical information. The authors used a dynamic workload of an online music portal. Ferrer et al. [26] presented OPTIMIS, a toolkit to address a cloud services management problem. The focus of the toolkit is on cloud services and infrastructure optimization throughout the service life cycle: construction, deployment and services operation. It uses different data to predicting future energy impact based on runtime state, historical usage patterns, and estimates of future demands. This strategy is used to add and remove virtual machines from the system. Konstanteli et al. [46] presented a probabilistic approach to the optimal allocation problem of services on virtualized physical resources, when horizontal elasticity is required. The formulated optimization model constitutes a probabilistic admission control test. Based on statistical knowledge, this approach uses prediction models that are able to forecast resource usages based on historical monitoring data.

24

Emanuel Ferreira Coutinho et al.

5.3.5 Proactive Migration Qin et al. [79] presented a load rebalancing framework based on a MonitorAnalyze-Plan-Execute (MAPE) loop model, namely ElastiCat. The framework aims to eliminate load imbalance while minimizing the rebalancing costs. ElastiCat uses two interference-aware prediction models to predict data migration time and performance impact using statistical machine learning (e.g. linear regression approach and PCA-based linear regression), and then to create a cost model to make trade-offs between them. Bruneo [10] presented an analytical model, based on Stochastic Reward Nets (SRNs). This model represents systems composed of thousands of resources and it makes it possible to represent both physical and virtual resources, exploiting cloud specific concepts such as infrastructure elasticity. This model allows to predict the effects of a particular load condition in order to study the ability of the system to react to an overload situation, such as migration. 5.3.6 Other and mixed solutions During the review, it was not possible to identify the use of models or methods in some papers. We found four papers that just used replication [70, 52, 80, 62], one that used migration [61], and one that used resizing [50]. We yet identified two papers that used reactive [22, 35] and two papers that used proactive solutions, but the methods used by them were not identified [71, 75]. Furthermore, other works used a mixed solution [25,53,4, 96, 20], by combining different models and different methods. These solutions allow more complex conditions, rules, and allocation policies. These complex policies may contribute to increasing providers’ revenue [89]. Ali-Eldin et al. [4] built an elasticity controller that changes the number of virtual machines allocated to a service based on reactive actions and predictions of future load. Their solution is based on queueing theory and it was used to build a hybrid reactive-adaptive controller to quickly react to sudden load changes, prevent premature release of resources, take into account the workload heterogeneity, and avoid oscillations. The results shown the proposed hybrid controller reduces resource oscillations (decreasing SLA violations), but, as a trade-off, over-provisions between 20% and 30%. Yu et al. [96] proposed a cost-efficient database placement algorithm that generates a detailed database placement and migration plan according to resource constraints, and user and system preferences. The authors combined a reactive solution with a migration plan to minimize the migration cost, and to maximize the cloud resource utilization. They built a prototype system on top of an IBM Cloud platform as their case study. Das et al. [20] presented ElasTraS, a scalable and multitenant DBMS for transaction processing workloads, and Albatross, a lightweight live database migration technique. ElasTraS leverages Albatross for elastic load balancing by adding more servers during high load and consolidating to fewer servers

Elasticity in Cloud Computing: A Survey

25

during usage reductions. This elastic scaling minimizes the operating cost and ensures good performance even in the presence of unpredictable changes to the workload. 5.4 Elastic Provider Solutions Several cloud providers currently offer auto scaling services of applications for their users, such as Amazon Autoscaling Service [5] and Windows Azure Application Autoscaling Block [6]. Such services usually rely on predefined rules or reactive policies to trigger their resource adjustment operations. Amazon Auto Scaling [5] uses a reactive method and replication to address the elasticity. The behavior of an auto scaling engine follows a set of rules that must be defined. An auto scaling rule has the form of a pair consisting of an antecedent and a consequence. Amazon usually offers rule-based conditions to add and remove resources. This simple approach typically involves creating two rules to determine when to scale. For each rule, the user has to define a condition based on a target variable, for example, if CPU load exceeds 80%. When the condition is met, it triggers a pre-defined scaling-up or scaling-down action. For example, add a new virtual machine. Windows Azure [6] implements primary copy protocol with strong consistency. SQL Azure also implements high availability and fault tolerance. Similar to Amazon Auto Scaling, Windows Azure uses rules to define when to scale. GoGrid [36] allows users to set up an auto scaling web environment. By using GoGrid’s Dynamic Load Balancer and GoGrid’s API, the clients can scale their applications. Cloud providers suffer from the limitations inherent in replication methods: the use of virtual machines as scaling unit, which can cause unnecessary over provisioning; and the additional load balancer virtual machine instance. To face these limitations, public cloud providers make available for clients some kinds of vertical scale methods. Replacement approaches are quite common in Amazon and GoGrid. For example, the users can change the instance type (e.g. from small to large) to scale up/down the virtual machine in Amazon EC2. GoGrid also offers a vertical RAM memory scaling tool, which allows fast and easy memory scaling. 6 Open Issues According to Gartner’s announcement [33], in the next few years, lots of large enterprises will move to a hybrid cloud strategy. Some of the key trends are related to how to handle elasticity, performance, and integration in a hybrid cloud. Besides that, container-based virtualization could be an alternative to reduce the virtualization overhead and therefore improve the resource usage in datacenters. Containers can reduce start-up time of replicas, and once they carry both an application and all of their dependencies, it can be used to automate deployment and scaling of applications, databases and backend services,

26

Emanuel Ferreira Coutinho et al.

which is a great feature for PaaS environments. We believe the competition among providers and the academic efforts will continue to drive innovation and solutions improvement. We identified several elasticity solutions in this review. Cloud providers and academia developed many solutions, but some existing issues have not been fully addressed. In this section, we present some of the challenges related to cloud computing elasticity. During this review, we identified these challenges, some pointed out by us and others identified in reviewed papers.

6.1 Metrics Cloud computing elasticity is a complex problem, since it involves different aspects such as quality and cost [17]. Most solutions address elasticity metrics in an isolated manner, making it difficult to understand. On the other hand, providers and customers want to answer the question: “How do I measure the elasticity of a given system? ”. Then, it is important to define metrics for elasticity that capture its different aspects.

6.2 Tools A benchmark for measuring elasticity should be able to reproduce different scenarios and reflect the features of an elastic environment [41]. Traditional benchmarks tools for cloud systems are not sufficient to analyse some specificities of these systems in the cloud. Therefore, new benchmarks tools are required to properly evaluate the elasticity of cloud environments. These tools should address different aspects, such as workloads with different intensity and duration, and they should represent real life scenarios.

6.3 Resources Elasticity helps to improve the use of resources, essential in a cloud computing environment, since it avoids the waste of resources, reducing costs. Therefore, providers should use resources efficiently and monitor the resources in small units of time. 6.3.1 Resource 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 of time, neglecting the infinite resources premise.

Elasticity in Cloud Computing: A Survey

27

6.3.2 Resource Granularity The most common implementations of scalability in cloud use virtual machines as scaling unit. This reflects the strategy used by most cloud providers of forcing clients to acquire resources as a fixed set of computing, memory, and I/O resources (instance types in Amazon and server sizes in GoGrid and Rackspace). However, renting a fixed combination of cloud resources can not reflect the interests of clients [49]. It would be very interesting to see the development of solutions to allow a fine-grained allocation of resources through the use of vertical scaling techniques (e.g. to add/remove resources such as VCPUs and MB of memory to a virtual machine instance). GoGrid allows users to vertically increase RAM; nonetheless, a reboot of the virtual machine is necessary and the process can take several minutes. The same occurs in Amazon when changing instance type, but the reboot is required.

6.4 Autonomic Elasticity Cloud environments are inherently large, complex, heterogeneous and dynamic. Moreover, providers should address QoS and energy efficiency. The levels of complexity in cloud exceed the capacity of humans, forcing the withdrawal of people from the management process and increasing the autonomy of systems. Furthermore, solutions for managing this context must be elastic and must use information from different resources. Autonomic computing and machine learning techniques are candidates to address the complexity, dynamism and heterogeneity present in cloud computing environments. For example, machine learning techniques can be used to develop autonomic solutions based on monitoring information.

6.5 Elastic Approach Setting suitable thresholds is a very tricky task, and may lead to instability in the system. Besides, static thresholds become invalid if the application behavior changes. Little research has been done in the use of dynamic thresholds, including the proportional thresholding proposed by Lim et al. [57] or the adaptive threshold introduced by Beloglazov and Buyya [9], and it could be interesting to improve this technique. 6.5.1 Evaluation Methodology Elastic techniques lack a formal evaluation methodology, including a scoring metric for comparison and a widely accepted evaluation scenario. Due to the heterogeneity of existing auto scaling methods, it would be interesting to define a scoring metric to objectively determine whether an algorithm performs

28

Emanuel Ferreira Coutinho et al.

better than another. In addition, a methodology that assists in evaluating the performance of cloud elasticity also help greatly in evaluating computational systems. 6.5.2 Start-up Time Reactive techniques do not anticipate unexpected changes in the workload, and therefore, resources can not be provisioned in advance. Furthermore, it is important to take into account that replication approaches need to add new virtual machines in real cloud providers, and this task might take several minutes, and so the effect of a scaling-up action might arrive too late.

6.6 Container-based Virtualization Conventional virtualization comes at the cost of the resource overhead [1]. Container-based virtualization tools, such as Docker and LXC, could be an alternative to reduce overhead and therefore improve usage in datacenters. Docker is an open-source engine that automates the deployment of applications into containers, and LXC is a kernel technology that is able to run a multitude of processes, each in their own isolated environment. Both tools use cgroups to limit the resources consumed by a container, such as memory, disk space and I/O, and also offer metrics about these resources. Elastic solutions could be developed using these concepts, since containers can reduce start-up time of replicas, as well as they have a resource management component for limiting the use of resources and metrics for monitoring, which are features quite used in elastic solution.

6.7 New solutions It would be valuable to develop an efficient auto scaling approach, able to cope with the varying conditions of applications derived from unanticipated changes in traffic. To combine reactive and proactive approaches seems to be a good idea. The problem of automatic scaling can be addressed using different approaches, such as threshold-based policies, reinforcement learning, queuing theory, control theory, and time-series analysis.

7 Conclusion Cloud computing provides on-demand services with elasticity and a pay-asyou-go model. In order to handle the workload variation, elasticity enables a cloud system to scale its computing resources up or down without service interruption. For these systems, elasticity plays a key role in managing the infrastructure, ensuring quality and improving the use of resources.

Elasticity in Cloud Computing: A Survey

29

In this paper, we present a survey on cloud computing elasticity based on an adaptation of a classic systematic review. We identify concepts presented in the literature for cloud computing elasticity. Furthermore, we present the most common aspects used in cloud computing environments, such as metrics, tools and strategies for handling it. This article also reveals interesting insights to better understand the elasticity concept and thinking in new solutions. In general, most of the research on cloud computing elasticity has encompassed resource allocation strategies, architectures, tools for general purpose, definition of service cost in the cloud, and use in heterogenous environments (mostly Amazon). Based on the scalability mechanisms, models and methods, we present a tiny taxonomy of current elastic solutions, and discussed some open issues in several aspects such as their metrics, tools, resources, availability, autonomic computing, elastic approaches, and methodologies. Despite the large amount of studies about cloud elasticity, public cloud providers and academia have many challenges to deal with, and much work remains to be done in order to achieve truly elastic solutions. New solutions that take advantage of different models and methods are expected. As well, new tools and APIs are needed to deal with the interoperability within and between multiple cloud providers, especially between the different elasticity solutions. Acknowledgements This research is a partial result of the SLA4Cloud project (STICAmSud program) supported by CAPES (process: 23038.010147/2013-17).

References 1. Virtualization and Containerization of Application Infrastructure: A Comparison, vol. 21. University of Twente (2014) 2. Aceto, G., Botta, A., de Donato, W., Pescap, A.: Cloud monitoring: A survey. Computer Networks (0), – (2013). DOI 10.1016/j.comnet.2013.04.001. URL http://www.sciencedirect.com/science/article/pii/S1389128613001084 3. Aisopos, F., Tserpes, K., Varvarigou, T.: Resource management in software as a service using the knapsack problem model. International Journal of Production Economics (0), – (2011). DOI 10.1016/j.ijpe.2011.12.011. URL http://www.sciencedirect.com/science/article/pii/S0925527311005275 4. Ali-Eldin, A., Kihl, M., Tordsson, J., Elmroth, E.: Efficient provisioning of bursty scientific workloads on the cloud using adaptive elasticity control. In: Proceedings of the 3rd workshop on Scientific Cloud Computing Date, ScienceCloud ’12, pp. 31–40. ACM, New York, NY, USA (2012). DOI 10.1145/2287036.2287044. URL http://doi.acm.org/10.1145/2287036.2287044 5. AmazonWebServices: Auto scaling. http://aws.amazon.com/pt/autoscaling/ (2013). Online; acessado em setembro-2013 6. Azure: Microsoft Azure (2013). Http://www.microsoft.com/azure/ 7. Bai, X., Li, M., Chen, B., Tsai, W.T., Gao, J.: Cloud testing tools. In: Service Oriented System Engineering (SOSE), 2011 IEEE 6th International Symposium on, pp. 1 –12 (2011). DOI 10.1109/SOSE.2011.6139087 8. Banzai, T., Koizumi, H., Kanbayashi, R., Imada, T., Hanawa, T., Sato, M.: Dcloud: Design of a software testing environment for reliable distributed systems using cloud computing technology. In: Cluster, Cloud and Grid Computing (CCGrid),

30

9.

10. 11.

12.

13.

14.

15.

16.

17.

18. 19.

20.

21.

22.

23.

Emanuel Ferreira Coutinho et al. 2010 10th IEEE/ACM International Conference on, pp. 631 –636 (2010). DOI 10.1109/CCGRID.2010.72 Beloglazov, A., Abawajy, J., Buyya, R.: Energy-aware resource allocation heuristics for efficient management of data centers for cloud computing. Future Generation Computer Systems (0), – (2011). DOI 10.1016/j.future.2011.04.017. URL http://www.sciencedirect.com/science/article/pii/S0167739X11000689 Bruneo, D.: A stochastic model to investigate data center performance and qos in iaas cloud computing systems. pp. 1–1 (2013). DOI 10.1109/TPDS.2013.67 Bryant, R., Tumanov, A., Irzak, O., Scannell, A., Joshi, K., Hiltunen, M., LagarCavilla, A., de Lara, E.: Kaleidoscope: cloud micro-elasticity via vm state coloring. In: Proceedings of the sixth conference on Computer systems, EuroSys ’11, pp. 273–286. ACM, New York, NY, USA (2011). DOI 10.1145/1966445.1966471. URL http://doi.acm.org/10.1145/1966445.1966471 Calheiros, R., Ranjan, R., Buyya, R.: Virtual machine provisioning based on analytical performance and qos in cloud computing environments. In: Parallel Processing (ICPP), 2011 International Conference on, pp. 295 –304 (2011). DOI 10.1109/ICPP.2011.17 Calheiros, R.N., Toosi, A.N., Vecchiola, C., Buyya, R.: A coordinator for scaling elastic applications across multiple clouds. Future Generation Computer Systems 28(8), 1350 – 1362 (2012). DOI 10.1016/j.future.2012.03.010. URL http://www.sciencedirect.com/science/article/pii/S0167739X12000635. Including Special sections SS: Trusting Software Behavior and SS: Economics of Computing Services Calheiros, R.N., Vecchiola, C., Karunamoorthy, D., Buyya, R.: The aneka platform and qos-driven resource provisioning for elastic applications on hybrid clouds. Future Generation Computer Systems (0), – (2011). DOI 10.1016/j.future.2011.07.005. URL http://www.sciencedirect.com/science/article/pii/S0167739X11001397 Casalicchio, E., Silvestri, L.: Mechanisms for {SLA} provisioning in cloud-based service providers. Computer Networks 57(3), 795 – 810 (2013). DOI 10.1016/j.comnet.2012.10.020. URL http://www.sciencedirect.com/science/article/pii/S1389128612003763 Cooper, B.F., Silberstein, A., Tam, E., Ramakrishnan, R., Sears, R.: Benchmarking cloud serving systems with ycsb. In: Proceedings of the 1st ACM symposium on Cloud computing, SoCC ’10, pp. 143–154. ACM, New York, NY, USA (2010). DOI 10.1145/1807128.1807152. URL http://doi.acm.org/10.1145/1807128.1807152 Copil, G., Moldovan, D., Truong, H.L., Dustdar, S.: Sybl: An extensible language for controlling elasticity in cloud applications. Cluster Computing and the Grid, IEEE International Symposium on 0, 112–119 (2013). DOI http://doi.ieeecomputersociety.org/10.1109/CCGrid.2013.42 Costa, R., Brasileiro, F., Lemos, G., Mariz, D.: Sobre a amplitude da elasticidade dos provedores atuais de computao na nuvem. In: SBRC 2011 (2011) Cruz, F., Maia, F., Matos, M., Oliveira, R., Paulo, J.a., Pereira, J., Vila¸ca, R.: Met: workload aware elasticity for nosql. In: Proceedings of the 8th ACM European Conference on Computer Systems, EuroSys ’13, pp. 183–196. ACM, New York, NY, USA (2013). DOI 10.1145/2465351.2465370. URL http://doi.acm.org/10.1145/2465351.2465370 Das, S., Agrawal, D., El Abbadi, A.: Elastras: An elastic, scalable, and selfmanaging transactional database for the cloud. ACM Trans. Database Syst. 38(1), 5:1–5:45 (2013). DOI http://dx.doi.org/10.1145/2445583.2445588. URL http://doi.acm.org/http://dx.doi.org/10.1145/2445583.2445588 Dawoud, W., Takouna, I., Meinel, C.: Elastic vm for rapid and optimum virtualized resources’ allocation. In: Systems and Virtualization Management (SVM), 2011 5th International DMTF Academic Alliance Workshop on, pp. 1 –4 (2011). DOI 10.1109/SVM.2011.6096465 Deng, N., Stewart, C., Gmach, D., Arlitt, M., Kelley, J.: Adaptive green hosting. In: Proceedings of the 9th international conference on Autonomic computing, ICAC ’12, pp. 135–144. ACM, New York, NY, USA (2012). DOI 10.1145/2371536.2371561. URL http://doi.acm.org/10.1145/2371536.2371561 Emeakaroha, V.C., Netto, M.A., Calheiros, R.N., Brandic, I., Buyya, R., Rose, C.A.D.: Towards autonomic detection of sla violations in cloud infrastructures. Future Generation Computer Systems 28(7), 1017 – 1029 (2012). DOI 10.1016/j.future.2011.08.018.

Elasticity in Cloud Computing: A Survey

24.

25.

26.

27.

28.

29.

30.

31.

32.

33.

34.

35.

36. 37.

38.

31

URL http://www.sciencedirect.com/science/article/pii/S0167739X11002184. Special section: Quality of Service in Grid and Cloud Computing Espadas, J., Molina, A., Jimnez, G., Molina, M., Ramrez, R., Concha, D.: A tenant-based resource allocation model for scaling software-as-a-service applications over cloud computing infrastructures. Future Generation Computer Systems (0), – (2011). DOI 10.1016/j.future.2011.10.013. URL http://www.sciencedirect.com/science/article/pii/S0167739X1100210X Etchevers, X., Coupaye, T., Boyer, F., de Palma, N., Salaun, G.: Automated configuration of legacy applications in the cloud. In: Utility and Cloud Computing (UCC), 2011 Fourth IEEE International Conference on, pp. 170 –177 (2011). DOI 10.1109/UCC.2011.32 Ferrer, A.J., Hernndez, F., Tordsson, J., Elmroth, E., Ali-Eldin, A., Zsigri, C., Sirvent, R., Guitart, J., Badia, R.M., Djemame, K., Ziegler, W., Dimitrakos, T., Nair, S.K., Kousiouris, G., Konstanteli, K., Varvarigou, T., Hudzia, B., Kipp, A., Wesner, S., Corrales, M., Forg, N., Sharif, T., Sheridan, C.: Optimis: A holistic approach to cloud service provisioning. Future Generation Computer Systems 28(1), 66 – 77 (2012). DOI 10.1016/j.future.2011.05.022. URL http://www.sciencedirect.com/science/article/pii/S0167739X1100104X Fito, J., Goiri, I., Guitart, J.: Sla-driven elastic cloud hosting provider. In: Parallel, Distributed and Network-Based Processing (PDP), 2010 18th Euromicro International Conference on, pp. 111 –118 (2010). DOI 10.1109/PDP.2010.16 Flores, H., Srirama, S.N., Paniagua, C.: A generic middleware framework for handling process intensive hybrid cloud services from mobiles. In: Proceedings of the 9th International Conference on Advances in Mobile Computing and Multimedia, MoMM ’11, pp. 87–94. ACM, New York, NY, USA (2011). DOI 10.1145/2095697.2095715. URL http://doi.acm.org/10.1145/2095697.2095715 Galante, G., de Bona, L.C.E.: A survey on cloud computing elasticity. In: Proceedings of the 5th IEEE/ACM International Conference on Utility and Cloud Computing (UCC ’12) (2012) Gao, J., Pattabhiraman, P., Bai, X., Tsai, W.T.: Saas performance and scalability evaluation in clouds. In: Service Oriented System Engineering (SOSE), 2011 IEEE 6th International Symposium on, pp. 61 –71 (2011). DOI 10.1109/SOSE.2011.6139093 Garg, S., Versteeg, S., Buyya, R.: Smicloud: A framework for comparing and ranking cloud services. In: Utility and Cloud Computing (UCC), 2011 Fourth IEEE International Conference on, pp. 210 –218 (2011). DOI 10.1109/UCC.2011.36 Garg, S.K., Versteeg, S., Buyya, R.: A framework for ranking of cloud computing services. Future Generation Computer Systems (0), – (2012). DOI 10.1016/j.future.2012.06.006. URL http://www.sciencedirect.com/science/article/pii/S0167739X12001422?v=s5 Gartner, I.: Gartner says nearly half of large enterprises will have hybrid cloud deployments by the end of 2017. http://www.gartner.com/newsroom/id/2599315 (2013). Online; acessado em outubro-2013 Ghanbari, H., Simmons, B., Litoiu, M., Iszlai, G.: Exploring alternative approaches to implement an elasticity policy. In: Cloud Computing (CLOUD), 2011 IEEE International Conference on, pp. 716 –723 (2011). DOI 10.1109/CLOUD.2011.101 Ghoshal, D., Ramakrishnan, L.: Frieda: Flexible robust intelligent elastic data management in cloud environments. In: High Performance Computing, Networking, Storage and Analysis (SCC), 2012 SC Companion:, pp. 1096–1105 (2012). DOI 10.1109/SC.Companion.2012.132 GoGrid: Cloud hosting, cloud servers, hybrid hosting, cloud infrastructure from gogrid. http://www.gogrid.com/ (2012). Online; acessado em janeiro-2012 Han, R., Ghanem, M.M., Guo, L., Guo, Y., Osmond, M.: Enabling costaware and adaptive elasticity of multi-tier cloud applications. Future Generation Computer Systems (0), – (2012). DOI 10.1016/j.future.2012.05.018. URL http://www.sciencedirect.com/science/article/pii/S0167739X12001148?v=s5 He, Q., Zhou, S., Kobler, B., Duffy, D., McGlynn, T.: Case study for running hpc applications in public clouds. In: Proceedings of the 19th ACM International Symposium on High Performance Distributed Computing, HPDC ’10, pp. 395–401. ACM,

32

39.

40.

41.

42.

43.

44.

45. 46.

47.

48.

49.

50.

51.

52.

53.

Emanuel Ferreira Coutinho et al. New York, NY, USA (2010). DOI http://doi.acm.org/10.1145/1851476.1851535. URL http://doi.acm.org/10.1145/1851476.1851535 He, S., Guo, L., Guo, Y.: Real time elastic cloud management for limited resources. In: Cloud Computing (CLOUD), 2011 IEEE International Conference on, pp. 622 –629 (2011). DOI 10.1109/CLOUD.2011.47 He, S., Guo, L., Guo, Y.: Real time elastic cloud management for limited resources. In: Cloud Computing (CLOUD), 2011 IEEE International Conference on, pp. 622–629 (2011). DOI 10.1109/CLOUD.2011.47 Herbst, N.R., Kounev, S., Reussner, R.: Elasticity in Cloud Computing: What it is, and What it is Not. In: Proceedings of the 10th International Conference on Autonomic Computing (ICAC 2013), San Jose, CA, pp. 23–27. USENIX (2013) Hong, Y.J., Xue, J., Thottethodi, M.: Selective commitment and selective margin: Techniques to minimize cost in an iaas cloud. In: Performance Analysis of Systems and Software (ISPASS), 2012 IEEE International Symposium on, pp. 99 –109 (2012). DOI 10.1109/ISPASS.2012.6189210 Islam, S., Lee, K., Fekete, A., Liu, A.: How a consumer can measure elasticity for cloud platforms. In: Proceedings of the third joint WOSP/SIPEW international conference on Performance Engineering, ICPE ’12, pp. 85–96. ACM, New York, NY, USA (2012). DOI 10.1145/2188286.2188301. URL http://doi.acm.org/10.1145/2188286.2188301 Jain, R.: The Art of Computer Systems Performance Analysis: Techniques for Experimental Design, Measurement, Simulation, and Modeling, 1st edn. John Wiley and Sons, INC (1991) Kitchenham, B.: Procedures for performing systematic reviews. Tech. rep., Keele University and NICTA (2004) Konstanteli, K., Cucinotta, T., Psychas, K., Varvarigou, T.: Admission control for elastic cloud services. In: Cloud Computing (CLOUD), 2012 IEEE 5th International Conference on, pp. 41–48 (2012). DOI 10.1109/CLOUD.2012.63 Kossmann, D., Kraska, T., Loesing, S.: An evaluation of alternative architectures for transaction processing in the cloud. In: Proceedings of the 2010 ACM SIGMOD International Conference on Management of data, SIGMOD ’10, pp. 579– 590. ACM, New York, NY, USA (2010). DOI 10.1145/1807167.1807231. URL http://doi.acm.org/10.1145/1807167.1807231 Kousiouris, G., Menychtas, A., Kyriazis, D., Gogouvitis, S., Varvarigou, T.: Dynamic, behavioral-based estimation of resource provisioning based on high-level application terms in cloud platforms. Future Generation Computer Systems (0), – (2012). DOI 10.1016/j.future.2012.05.009. URL http://www.sciencedirect.com/science/article/pii/S0167739X12001057 Krebs, R., Momm, C., Kounev, S.: Metrics and techniques for quantifying performance isolation in cloud environments. In: Proceedings of the 8th international ACM SIGSOFT conference on Quality of Software Architectures, QoSA ’12, pp. 91–100. ACM, New York, NY, USA (2012). DOI 10.1145/2304696.2304713. URL http://doi.acm.org/10.1145/2304696.2304713 Kumar, D., Shae, Z.Y., Jamjoom, H.: Scheduling batch and heterogeneous jobs with runtime elasticity in a parallel processing environment. In: Parallel and Distributed Processing Symposium Workshops PhD Forum (IPDPSW), 2012 IEEE 26th International, pp. 65–78 (2012). DOI 10.1109/IPDPSW.2012.10 Li, J., Li, B., Wo, T., Hu, C., Huai, J., Liu, L., Lam, K.: Cyberguarder: A virtualization security assurance architecture for green cloud computing. Future Generation Computer Systems 28(2), 379 – 390 (2012). DOI 10.1016/j.future.2011.04.012. URL http://www.sciencedirect.com/science/article/pii/S0167739X1100063X Li, M., Ye, F., Kim, M., Chen, H., Lei, H.: A scalable and elastic publish/subscribe service. In: Parallel Distributed Processing Symposium (IPDPS), 2011 IEEE International, pp. 1254 –1265 (2011). DOI 10.1109/IPDPS.2011.119 Li, W., Tordsson, J., Elmroth, E.: Modeling for dynamic cloud scheduling via migration of virtual machines. In: Cloud Computing Technology and Science (CloudCom), 2011 IEEE Third International Conference on, pp. 163 –171 (2011). DOI 10.1109/CloudCom.2011.31

Elasticity in Cloud Computing: A Survey

33

54. Li, X., Qian, Z., Chi, R., Zhang, B., Lu, S.: Balancing resource utilization for continuous virtual machine requests in clouds. In: Innovative Mobile and Internet Services in Ubiquitous Computing (IMIS), 2012 Sixth International Conference on, pp. 266–273 (2012). DOI 10.1109/IMIS.2012.72 55. Li, Z., O’Brien, L., Zhang, H., Cai, R.: On a catalogue of metrics for evaluating commercial cloud services. In: Proceedings of the 2012 ACM/IEEE 13th International Conference on Grid Computing, GRID ’12, pp. 164–173. IEEE Computer Society, Washington, DC, USA (2012). DOI 10.1109/Grid.2012.15. URL http://dx.doi.org/10.1109/Grid.2012.15 56. Li, Z., Zhang, H., OBrien, L., Cai, R., Flint, S.: On evaluating commercial cloud services: A systematic review. Journal of Systems and Software (0), – (2013). DOI 10.1016/j.jss.2013.04.021. URL http://www.sciencedirect.com/science/article/pii/S0164121213000915 57. Lim, H.C., Babu, S., Chase, J.S., Parekh, S.S.: Automated control in cloud computing: Challenges and opportunities. In: Proceedings of the 1st Workshop on Automated Control for Datacenters and Clouds, ACDC ’09, pp. 13– 18. ACM, New York, NY, USA (2009). DOI 10.1145/1555271.1555275. URL http://doi.acm.org/10.1145/1555271.1555275 58. Lorido-Botr´ an, T., Miguel-Alonso, J., Lozano, J.A.: Auto-scaling Techniques for Elastic Applications in Cloud Environments. Research EHU-KAT-IK, Department of Computer Architecture and Technology, UPV/EHU (2012) 59. Lu, W., Jackson, J., Barga, R.: Azureblast: a case study of developing science applications on the cloud. In: Proceedings of the 19th ACM International Symposium on High Performance Distributed Computing, HPDC ’10, pp. 413– 420. ACM, New York, NY, USA (2010). DOI 10.1145/1851476.1851537. URL http://doi.acm.org/10.1145/1851476.1851537 60. Lucas-Simarro, J.L., Moreno-Vozmediano, R., Montero, R.S., Llorente, I.M.: Scheduling strategies for optimal service deployment across multiple clouds. Future Generation Computer Systems (0), – (2012). DOI 10.1016/j.future.2012.01.007. URL http://www.sciencedirect.com/science/article/pii/S0167739X12000192 61. Ma, R., Lam, K.T., Wang, C.L., Zhang, C.: A stack-on-demand execution model for elastic computing. In: Parallel Processing (ICPP), 2010 39th International Conference on, pp. 208 –217 (2010). DOI 10.1109/ICPP.2010.79 62. Malik, S., Huet, F., Caromel, D.: Racs: A framework for resource aware cloud computing. In: Internet Technology And Secured Transactions, 2012 International Conferece For, pp. 680–687 (2012) 63. Mauch, V., Kunze, M., Hillenbrand, M.: High performance cloud computing. Future Generation Computer Systems (0), – (2012). DOI 10.1016/j.future.2012.03.011. URL http://www.sciencedirect.com/science/article/pii/S0167739X12000647 64. Mell, P., Grance, T.: The nist definition of cloud computing. National Institute of Standards and Technology 53(6), 50 (2009). URL http://csrc.nist.gov/groups/SNS/cloudcomputing/cloud-def-v15.doc 65. Menasce, D.A., Dowdy, L.W., Almeida, V.A.F.: Performance by Design: Computer Capacity Planning By Example. Prentice Hall PTR, Upper Saddle River, NJ, USA (2004) 66. Michon, E., Gossa, J., Genaud, S.: Free elasticity and free cpu power for scientific workloads on iaas clouds. In: Parallel and Distributed Systems (ICPADS), 2012 IEEE 18th International Conference on, pp. 85–92 (2012). DOI 10.1109/ICPADS.2012.22 67. Montero, R.S., Moreno-Vozmediano, R., Llorente, I.M.: An elasticity model for high throughput computing clusters. Journal of Parallel and Distributed Computing 71(6), 750 – 757 (2011). DOI 10.1016/j.jpdc.2010.05.005. URL http://www.sciencedirect.com/science/article/pii/S0743731510000985. Special Issue on Cloud Computing 68. Moreno-Vozmediano, R., Montero, R., Llorente, I.: Multicloud deployment of computing clusters for loosely coupled mtc applications. Parallel and Distributed Systems, IEEE Transactions on 22(6), 924 –930 (2011). DOI 10.1109/TPDS.2010.186 69. Moreno-Vozmediano, R., Montero, R.S., Llorente, I.M.: Elastic management of clusterbased services in the cloud. In: Proceedings of the 1st workshop on Automated control for datacenters and clouds, ACDC ’09, pp. 19–24. ACM, New York, NY, USA (2009). DOI 10.1145/1555271.1555277. URL http://doi.acm.org/10.1145/1555271.1555277

34

Emanuel Ferreira Coutinho et al.

70. Nie, L., Xu, Z.: An adaptive scheduling mechanism for elastic grid computing. In: Semantics, Knowledge and Grid, 2009. SKG 2009. Fifth International Conference on, pp. 184 –191 (2009). DOI 10.1109/SKG.2009.53 71. Niehorster, O., Krieger, A., Simon, J., Brinkmann, A.: Autonomic resource management with support vector machines. In: Proceedings of the 2011 IEEE/ACM 12th International Conference on Grid Computing, GRID ’11, pp. 157–164. IEEE Computer Society, Washington, DC, USA (2011). DOI 10.1109/Grid.2011.28. URL http://dx.doi.org/10.1109/Grid.2011.28 72. Niu, D., Xu, H., Li, B., Zhao, S.: Quality-assured cloud bandwidth auto-scaling for video-on-demand applications. In: INFOCOM, 2012 Proceedings IEEE, pp. 460 –468 (2012). DOI 10.1109/INFCOM.2012.6195785 73. Otto, J., Stanojevic, R., Laoutaris, N.: Temporal rate limiting: Cloud elasticity at a flat fee. In: Computer Communications Workshops (INFOCOM WKSHPS), 2012 IEEE Conference on, pp. 151 –156 (2012). DOI 10.1109/INFCOMW.2012.6193478 74. Pandey, S., Voorsluys, W., Niu, S., Khandoker, A., Buyya, R.: An autonomic cloud environment for hosting ecg data analysis services. Future Generation Computer Systems 28(1), 147 – 154 (2012). DOI 10.1016/j.future.2011.04.022. URL http://www.sciencedirect.com/science/article/pii/S0167739X11000732 75. Paniagua, C., Srirama, S.N., Flores, H.: Bakabs: managing load of cloud-based web applications from mobiles. In: Proceedings of the 13th International Conference on Information Integration and Web-based Applications and Services, iiWAS ’11, pp. 485–490. ACM, New York, NY, USA (2011). DOI 10.1145/2095536.2095636. URL http://doi.acm.org/10.1145/2095536.2095636 76. Pawluk, P., Simmons, B., Smit, M., Litoiu, M., Mankovski, S.: Introducing stratos: A cloud broker service. In: Cloud Computing (CLOUD), 2012 IEEE 5th International Conference on, pp. 891–898 (2012). DOI 10.1109/CLOUD.2012.24 77. Pawluk, P., Simmons, B., Smit, M., Litoiu, M., Mankovski, S.: Introducing stratos: A cloud broker service. In: Cloud Computing (CLOUD), 2012 IEEE 5th International Conference on, pp. 891–898 (2012). DOI 10.1109/CLOUD.2012.24 78. Perez-Sorrosal, F., Pati˜ no Martinez, M., Jimenez-Peris, R., Kemme, B.: Elastic si-cache: consistent and scalable caching in multi-tier architectures. The VLDB Journal 20(6), 841–865 (2011). DOI 10.1007/s00778-011-0228-8. URL http://dx.doi.org/10.1007/s00778-011-0228-8 79. Qin, X., Wang, W., Zhang, W., Wei, J., Zhao, X., Huang, T.: Elasticat: A load rebalancing framework for cloud-based key-value stores. In: High Performance Computing (HiPC), 2012 19th International Conference on, pp. 1–10 (2012). DOI 10.1109/HiPC.2012.6507481 80. Raveendran, A., Bicer, T., Agrawal, G.: A framework for elastic execution of existing mpi programs. In: Parallel and Distributed Processing Workshops and Phd Forum (IPDPSW), 2011 IEEE International Symposium on, pp. 940 –947 (2011). DOI 10.1109/IPDPS.2011.240 81. Russell, R., Chung, M., Balk, E.: Issues and challenges in conducting systematic reviews to support development of nutrient reference values. Tech. rep., Rockville (MD): Agency for Healthcare Research and Quality (US) (2009) 82. S, T.T., Soares, J.M., Gomes, D.G.: Cloudreports: Uma ferramenta grfica para a simulao de ambientes computacionais em nuvem baseada no framework cloudsim. In: IX Workshop em Clouds e Aplicaes - WCGA (2011) 83. Salah, K., Boutaba, R.: Estimating service response time for elastic cloud applications. In: Cloud Networking (CLOUDNET), 2012 IEEE 1st International Conference on, pp. 12–16 (2012). DOI 10.1109/CloudNet.2012.6483647 84. Sharma, U., Shenoy, P.J., Sahu, S., Shaikh, A.: A cost-aware elasticity provisioning system for the cloud. In: International Conference on Distributed Computing Systems (ICDCS), pp. 559–570 (2011) 85. Shawky, D.M., Ali, A.F.: Defining a measure of cloud computing elasticity. In: Systems and Computer Science (ICSCS), 2012 1st International Conference on, pp. 1–5 (2012). DOI 10.1109/IConSCS.2012.6502449 86. Sousa, F.R.C., Machado, J.C.: Towards elastic multi-tenant database replication with quality of service. In: Proceedings of the 5th IEEE/ACM International Conference on Utility and Cloud Computing (UCC ’12), pp. 168–175 (2012)

Elasticity in Cloud Computing: A Survey

35

87. Suleiman, B., Sakr, S., Jeffery, D.R., Liu, A.: On understanding the economics and elasticity challenges of deploying business applications on public cloud infrastructure. J. Internet Services and Applications (JISA) 3(2), 173–193 (2012) 88. Tirado, J., Higuero, D., Isaila, F., Carretero, J.: Predictive data grouping and placement for cloud-based elastic server infrastructures. In: Cluster, Cloud and Grid Computing (CCGrid), 2011 11th IEEE/ACM International Symposium on, pp. 285 –294 (2011). DOI 10.1109/CCGrid.2011.49 89. Toosi, A., Calheiros, R., Thulasiram, R., Buyya, R.: Resource provisioning policies to increase iaas provider’s profit in a federated cloud environment. In: High Performance Computing and Communications (HPCC), 2011 IEEE 13th International Conference on, pp. 279–287 (2011). DOI 10.1109/HPCC.2011.44 90. Tordsson, J., Montero, R.S., Moreno-Vozmediano, R., Llorente, I.M.: Cloud brokering mechanisms for optimized placement of virtual machines across multiple providers. Future Generation Computer Systems 28(2), 358 – 367 (2012). DOI 10.1016/j.future.2011.07.003. URL http://www.sciencedirect.com/science/article/pii/S0167739X11001373 91. Tudoran, R., Costan, A., Antoniu, G., Boug´ e, L.: A performance evaluation of azure and nimbus clouds for scientific applications. In: Proceedings of the 2nd International Workshop on Cloud Computing Platforms, CloudCP ’12, pp. 4:1– 4:6. ACM, New York, NY, USA (2012). DOI 10.1145/2168697.2168701. URL http://doi.acm.org/10.1145/2168697.2168701 92. Vaquero, L.M., Rodero-Merino, L., Buyya, R.: Dynamically scaling applications in the cloud. SIGCOMM Comput. Commun. Rev. 41(1), 45–52 (2011). DOI 10.1145/1925861.1925869. URL http://doi.acm.org/10.1145/1925861.1925869 93. Wee, S., Liu, H.: Client-side load balancer using cloud. In: Proceedings of the 2010 ACM Symposium on Applied Computing, SAC ’10, pp. 399–405. ACM, New York, NY, USA (2010). DOI 10.1145/1774088.1774173. URL http://doi.acm.org/10.1145/1774088.1774173 94. Wong, A.K., Goscinski, A.M.: A vmd plugin for namd simulations on amazon ec2. Procedia Computer Science 9(0), 136 – 145 (2012). DOI 10.1016/j.procs.2012.04.015. URL http://www.sciencedirect.com/science/article/pii/S1877050912001366. Proceedings of the International Conference on Computational Science, ICCS 2012 95. Xu, H., Li, B.: A study of pricing for cloud resources. SIGMETRICS Perform. Eval. Rev. 40(4), 3–12 (2013). DOI 10.1145/2479942.2479944. URL http://doi.acm.org/10.1145/2479942.2479944 96. Yu, T., Qiu, J., Reinwald, B., Zhi, L., Wang, Q., Wang, N.: Intelligent database placement in cloud environment. In: Web Services (ICWS), 2012 IEEE 19th International Conference on, pp. 544–551 (2012). DOI 10.1109/ICWS.2012.74 97. Zhai, Y., Liu, M., Zhai, J., Ma, X., Chen, W.: Cloud versus in-house cluster: evaluating amazon cluster compute instances for running mpi applications. In: State of the Practice Reports, SC ’11, pp. 11:1–11:10. ACM, New York, NY, USA (2011). DOI 10.1145/2063348.2063363. URL http://doi.acm.org/10.1145/2063348.2063363 98. Zhao, L., Sakr, S., Liu, A.: A framework for consumer-centric sla management of cloudhosted databases. IEEE Transactions on Services Computing 99(PrePrints), 1 (2013). DOI http://doi.ieeecomputersociety.org/10.1109/TSC.2013.5