Auto-Scaling Web Applications in Clouds: A Taxonomy and Survey <s> Multiple Clouds <s> The network planning problem of placing replicated servers with QoS constraints is considered. Each server site may consist of multiple server types with varying capacities and each site can be placed in any location among those belonging to a given set. Each client can be served by more than one location as long as the round-trip delay of data requests satisfies predetermined upper bounds. Our main focus is to minimize the cost of using the servers and utilizing the link bandwidth, while serving requests according to their delay constraint. This is an NP-hard problem. A pseudopolynomial and a polynomial algorithm that provide guaranteed approximation factors with respect to the optimal for the problem at hand are presented <s> BIB001 </s> Auto-Scaling Web Applications in Clouds: A Taxonomy and Survey <s> Multiple Clouds <s> The Cloud phenomenon brings along the cost-saving benefit of dynamic scaling. As a result, the question of efficient resource scaling arises. Prediction is necessary as the virtual resources that Cloud computing uses have a setup time that is not negligible. We propose an approach to the problem of workload prediction based on identifying similar past occurrences of the current short-term workload history. We present in detail the Cloud client resource auto-scaling algorithm that uses the above approach to help when scaling decisions are made, as well as experimental results by using real-world Cloud client application traces. We also present an overall evaluation of this approach, its potential and usefulness for enabling efficient auto-scaling of Cloud user resources. <s> BIB002 </s> Auto-Scaling Web Applications in Clouds: A Taxonomy and Survey <s> Multiple Clouds <s> Dynamic and appropriate resource dimensioning isa crucial issue in cloud computing. As applications go more andmore 24/7, online policies must be sought to balance performancewith the cost of allocated virtual machines. Most industrialapproaches to date use ad hoc manual policies, such as thresholdbasedones. Providing good thresholds proved to be tricky andhard to automatize to fit every application requirement. Researchis being done to apply automatic decision-making approaches,such as reinforcement learning. Yet, they face a lot of problemsto go to the field: having good policies in the early phasesof learning, time for the learning to converge to an optimalpolicy and coping with changes in the application performancebehavior over time. In this paper, we propose to deal with theseproblems using appropriate initialization for the early stages aswell as convergence speedups applied throughout the learningphases and we present our first experimental results for these.We also introduce a performance model change detection onwhich we are currently working to complete the learning processmanagement. Even though some of these proposals were knownin the reinforcement learning field, the key contribution of thispaper is to integrate them in a real cloud controller and toprogram them as an automated workflow. <s> BIB003 </s> Auto-Scaling Web Applications in Clouds: A Taxonomy and Survey <s> Multiple Clouds <s> In this paper, we propose and implement a control mechanism that interfaces with Infrastructure as a Service (IaaS) or cloud providers to provision resources and manage instances of web applications in response to volatile and complex request patterns. We use reinforcement learning to orchestrate control actions such as provisioning servers and application placement to meet performance requirements and minimize ongoing costs. The mechanism is incorporated in a distributed, elastic hosting architecture that is evaluated using actual web applications running on resources from Amazon EC2. <s> BIB004 </s> Auto-Scaling Web Applications in Clouds: A Taxonomy and Survey <s> Multiple Clouds <s> The dynamic provisioning of virtualized resources offered by cloud computing infrastructures allows applications deployed in a cloud environment to automatically increase and decrease the amount of used resources. This capability is called auto-scaling and its main purpose is to automatically adjust the scale of the system that is running the application to satisfy the varying workload with minimum resource utilization. The need for auto-scaling is particularly important during workload peaks, in which applications may need to scale up to extremely large-scale systems. Both the research community and the main cloud providers have already developed auto-scaling solutions. However, most research solutions are centralized and not suitable for managing large-scale systems, moreover cloud providers' solutions are bound to the limitations of a specific provider in terms of resource prices, availability, reliability, and connectivity. In this paper we propose DEPAS, a decentralized probabilistic auto-scaling algorithm integrated into a P2P architecture that is cloud provider independent, thus allowing the auto-scaling of services over multiple cloud infrastructures at the same time. Our simulations, which are based on real service traces, show that our approach is capable of: (i) keeping the overall utilization of all the instantiated cloud resources in a target range, (ii) maintaining service response times close to the ones obtained using optimal centralized auto-scaling approaches. <s> BIB005 </s> Auto-Scaling Web Applications in Clouds: A Taxonomy and Survey <s> Multiple Clouds <s> Large-scale online service providers have been increasingly relying on geographically distributed cloud infrastructures for service hosting and delivery. In this context, a key challenge faced by service providers is to determine the locations where service applications should be placed such that the hosting cost is minimized while key performance requirements (e.g., response time) are ensured. Furthermore, the dynamic nature of both demand pattern and infrastructure cost favors a dynamic solution to this problem. Currently most of the existing solutions for service placement have either ignored dynamics, or provided solutions inadequate to achieve this objective. In this paper, we present a framework for dynamic service placement problems based on control- and game-theoretic models. In particular, we present a solution that optimizes the hosting cost dynamically over time according to both demand and resource price fluctuations. We further consider the case where multiple service providers compete for resources in a dynamic manner. This paper extends our previous work [1] by analyzing the outcome of the competition in terms of both price of stability and price of anarchy. Our analysis suggests that in an uncoordinated scenario where service providers behave in a selfish manner, the resulting Nash equilibrium can be arbitrarily worse than the optimal centralized solution in terms of social welfare. Based on this observation, we present a coordination mechanism that can be employed by the infrastructure provider to maximize the social welfare of the system. Finally, we demonstrate the effectiveness of our solutions using realistic simulations. <s> BIB006 </s> Auto-Scaling Web Applications in Clouds: A Taxonomy and Survey <s> Multiple Clouds <s> Although Cloud computing itself has many open problems, researchers in the field have already made the leap to envision Inter-Cloud computing. Their goal is to achieve better overall Quality of Service QoS, reliability and cost efficiency by utilizing multiple clouds. Inter-Cloud research is still in its infancy, and the body of knowledge in the area has not been well defined yet. In this work, we propose and motivate taxonomies for Inter-Cloud architectures and application brokering mechanisms. We present a detailed survey of the state of the art in terms of both academic and industry developments 20 projects, and we fit each project onto the discussed taxonomies. We discuss how the current Inter-Cloud environments facilitate brokering of distributed applications across clouds considering their nonfunctional requirements. Finally, we analyse the existing works and identify open challenges and trends in the area of Inter-Cloud application brokering. Copyright © 2012 John Wiley & Sons, Ltd. <s> BIB007 </s> Auto-Scaling Web Applications in Clouds: A Taxonomy and Survey <s> Multiple Clouds <s> A cloud computing infrastructure management is proposed in this paper, which consists of two approaches that facilitate the provisioning of computing resources in a self-adaptive virtualized environment. Resource allocation is employed to predict the future of workload management and to employ a self-adaptive approach by using computational agents to monitor the Virtual Machines (VMs). The paper also includes the Return on Investment (ROI) formula that deals with the relationship between the prices for the Infrastructure-as-a-Service (IaaS) contracted by the customer and the effective use of this service. The experimental results show a significant improvement when self-configuration is used with agent-based computational modeling in contrast with the self-configuration based on prediction for future workload. <s> BIB008 </s> Auto-Scaling Web Applications in Clouds: A Taxonomy and Survey <s> Multiple Clouds <s> We address the problem of resource placement in general networking applications, in particular cloud computing. We consider a large-scale service faced by regionally distributed demands for various resources. The service aims at placing the resources across regions to maximize profit, accounting for demand granting revenues minus resource placement costs. Cloud computing and online services, utilizing regional datacenters and facing the problem of where and how much to place various servers, naturally fall under this paradigm. The main challenge posed by this setting is the need to deal with arbitrary multi-dimensional stochastic demands. We show that, despite the challenging stochastic combinatorial complexity, one can optimize the system operation using fairly efficient algorithms. <s> BIB009 </s> Auto-Scaling Web Applications in Clouds: A Taxonomy and Survey <s> Multiple Clouds <s> With the advent of connected services ecosystems, new generations of services and systems are being conceived, responding to the ever growing demands of the market place. In parallel, the effective adoption of the Cloud computing paradigm is becoming an essential enabler for business enterprises. With such importance placed on the services ecosystem, the design and management of services becomes a key issue both for the providers and the users. One of the main challenges for service providers lies in the complexity of the services, comprising of a multiplicity of technologies and competing and cooperating providers, which is difficult to address through current technology-centric service design approaches, in particular for the deployment infrastructure. The work described in this paper lays a foundation for business driven service design by proposing a business goals driven model of resource allocation in the Cloud. We define a goal/loss/processing cost function for resource allocation that we optimize, while taking into account the dynamic and varying nature of requests load. <s> BIB010 </s> Auto-Scaling Web Applications in Clouds: A Taxonomy and Survey <s> Multiple Clouds <s> Federation of geo-distributed cloud services is a trend in cloud computing which, by spanning multiple data centers at different geographical locations, can provide a cloud platform with much larger capacities. Such a geo-distributed cloud is ideal for supporting large-scale social media streaming applications (e.g., YouTube-like sites) with dynamic contents and demands, owing to its abundant on-demand storage/bandwidth capacities and geographical proximity to different groups of users. Although promising, its realization presents challenges on how to efficiently store and migrate contents among different cloud sites (i.e. data centers), and to distribute user requests to the appropriate sites for timely responses at modest costs. These challenges escalate when we consider the persistently increasing contents and volatile user behaviors in a social media application. By exploiting social influences among users, this paper proposes efficient proactive algorithms for dynamic, optimal scaling of a social media application in a geo-distributed cloud. Our key contribution is an online content migration and request distribution algorithm with the following features: (1) future demand prediction by novelly characterizing social influences among the users in a simple but effective epidemic model; (2) oneshot optimal content migration and request distribution based on efficient optimization algorithms to address the predicted demand, and (3) a Δ(t)-step look-ahead mechanism to adjust the one-shot optimization results towards the offline optimum. We verify the effectiveness of our algorithm using solid theoretical analysis, as well as large-scale experiments under dynamic realistic settings on a home-built cloud platform. <s> BIB011 </s> Auto-Scaling Web Applications in Clouds: A Taxonomy and Survey <s> Multiple Clouds <s> Cloud technology is rapidly substituting classic computing solutions, and challenges the community with new problems. In this paper we focus on controllers for cloud application elasticity, and propose a novel solution for self-adaptive cloud controllers based on Kriging models. Cloud controllers are application specific schedulers that allocate resources to applications running in the cloud, aiming to meet the quality of service requirements while optimizing the execution costs. General-purpose cloud resource schedulers provide sub-optimal solutions to the problem with respect to application-specific solutions that we call cloud controllers. In this paper we discuss a general way to design self-adaptive cloud controllers based on Kriging models. We present Kriging models, and show how they can be used for building efficient controllers thanks to their unique characteristics. We report experimental data that confirm the suitability of Kriging models to support efficient cloud control and open the way to the development of a new generation of cloud controllers. <s> BIB012 </s> Auto-Scaling Web Applications in Clouds: A Taxonomy and Survey <s> Multiple Clouds <s> Distributed cloud platforms are well suited for serving a geographically diverse user base. However traditional cloud provisioning mechanisms that make local scaling decisions are not well suited for temporal and spatial workload fluctuations seen by modern web applications. In this paper, we argue the need of geo-elasticity and present GeoScale, a system to provide geo-elasticity in distributed clouds. We describe GeoScale's model-driven proactive provisioning approach and conduct an initial evaluation of GeoScale on Amazon's distributed EC2 cloud. Our results show up to 31% improvement in the 95th percentile response time when compared to traditional elasticity techniques. <s> BIB013 </s> Auto-Scaling Web Applications in Clouds: A Taxonomy and Survey <s> Multiple Clouds <s> The emergence of large-scale Cloud computing environments characterized by dynamic resource pricing schemes enables valuable cost saving opportunities for service providers that could dynamically decide to change the placement of their IT service components in order to reduce their bills. However, that requires new management solutions to dynamically reconfigure IT service components placement, in order to respond to pricing changes and to control and guarantee the high-level business objectives defined by service providers. This paper proposes a novel approach based on Genetic Algorithm (GA) optimization techniques for adaptive business-driven IT service component reconfiguration. Our proposal allows to evaluate the performance of complex IT services deployments over large-scale Cloud systems in a wide range of alternative configurations, by granting prompt transitions to more convenient placements as business values and costs change dynamically. We deeply assessed our framework in a realistic scenario that consists of 2-tier service architectures with real-world pricing schemes. Collected results show the effectiveness and quantify the overhead of our solution. The results also demonstrate the suitability of business-driven IT management techniques for service components placement and reconfiguration in highly dynamic and distributed Cloud systems. <s> BIB014
Modern applications are often deployed in multiple-cloud data centers for various purposes BIB007 : (1) multicloud deployment helps reducing response latency if users can be served by the nearest data center, (2) it improves availability and reliability of the application against data center outages by replicating the application stack in multiple regions, (3) it enables the service provider to exploit cost differences among different vendors, and (4) it prevents vendor lock-in. Auto-scalers should be able to support this type of deployment as well. When expanded to multiple clouds, auto-scaling remains the same problem if applications in different cloud data centers are managed completely standalone, which is the common practice of the industry. In this case, usually the service provider first selects a set of cloud data centers to host the application. Each data center is intended only to serve requests coming from nearby users and is separately managed by a dedicated local auto-scaler without global coordination of request routing and resource provisioning. Though easy to manage, such strategy is not optimal in an environment where both workload and resource price are highly dynamic. As time passes, it is better to move resources to cheaper data centers to save cost, or to data centers that are closer to certain groups of users to improve Dutreilh et al. BIB003 single-tier Li et al. BIB004 single-tier Caron et al. BIB002 single-tier Dias et al. BIB008 single-tier Gambi et al. BIB012 single-tier their QoS. Auto-scaling becomes more complicated in these scenarios as it needs to make decisions on not only resource provisioning but also location selection and request routing. Some works explored holistic solutions for resource management of web applications in multiple clouds. They can be further divided into two types. The first type always deploys the whole application stack in the chosen data centers. The other type allows separate deployment of application components in different data centers. Zhang et al. BIB006 and Rodolakis et al. BIB001 targeted the first type of problems. Zhang et al. BIB006 assumed that each potential data center is capped, which is in contrast to the common illusion that cloud data centers have an "infinite" amount of resources, and applications are deployed in one VM. Their objective is to minimize the total cost of resources used by applications through dynamically acquiring and releasing servers from geographically dispersed data centers under the constraint of demand, capacity, and SLA. They employed the MPC framework and a quadratic optimization model to adjust resource allocation in each data center and request routing from each location. Differently, Rodolakis et al. BIB001 considered a scenario without data center capacity constraints and dynamic pricing. They dissected the problem into three parts and proposed approximation algorithms for each of them to form an integrated solution. Calcavecchia et al. BIB005 devised a decentralized auto-scaler for multiple clouds. It can autonomously start VMs at regions suffering from insufficient capacity through a voting mechanism. Guo et al. BIB013 proposed a geo-aware auto-scaler that predicts not only the amount of workload in the future but also the distribution of workload. By doing this, it is able to start and shut down VMs in data centers that are close to the places of workload changes. Regarding the second problem type, Tortonesi et al. BIB014 proposed a genetic-based algorithm to search the deployment of a two-tier application across multiple clouds with minimum resource and SLA violation cost. Rochman et al. BIB009 modeled the problem as a min-cost flow problem and solved it with the Bipartite Graph Algorithm. Grabarnik et al. BIB010 added more complexity to the problem by also optimizing the chosen VM types for each tier in a multitier application. They devised a two-phase metaheuristic algorithm with the outer phase responsible for assigning components to data centers also using a genetic-based algorithm, and the inner phase using a random search algorithm to map the components to specific types of VMs. None of these solutions bears reliability in mind, which is necessary for this kind of deployment. If poorly planned, instead of improving the reliability and availability of the application, dispersing replicas into multiple data centers can create multiple points of failure and substantially reduce uptime. It is important for auto-scalers to ensure that every component is properly replicated in multiple data centers all the time. The cost of data replication is another reason that it is beneficial to provide a holistic solution for auto-scaling in multiple clouds for some applications, such as video streaming applications. For these applications, QoS cannot be met without enough bandwidth between the video storage site and the end customer. The simplest solution to the bandwidth provisioning solution is to replicate all the videos in every data center and serve each customer from the one with sufficient bandwidth available. However, it is unrealistic and extremely wasteful. The service provider needs to decide for each video how many replicas it should keep and where they should be placed to save cost. Along with the data, serving applications should be colocated as well, and user requests need to be properly diverted to particular serving replicas because of the bandwidth limit of serving VMs. To realize the above targets, Wu et al. BIB011 proposed and implemented a prototype using Model Predictive Control and subgradient algorithm. The mentioned holistic approaches require solving complex optimization problems, which takes considerable time, making them only applicable to perform auto-scaling in coarse-grained time intervals and limiting their ability to react to drastic workload changes. Therefore, for applications with highly variable workloads, the choice of using holistic approaches is doubtful. In these cases, the local auto-scalers can be deployed in each data center to handle the fine-grained scaling needs.