POLITECNICO DI MILANO
Facolt`a di Ingegneria dell’Informazione
Corso di Laurea Specialistica in Ingegneria Informatica
Dipartimento di Elettronica e Informazione
Multi-time Scale Distributed Capacity
Allocation and Load Redirect Algorithms
for Cloud Systems
Advisor: Dr. Danilo ARDAGNA
Co-Advisor: Dr. Barbara PANICUCCI
Thesis by:
Marco CASIERO - 734383
Stefano VETTOR - 734450
Contents
1 Introduction 5
2 State of the art 7
2.1 Cloud Computing . . . 7
2.1.1 Infrastructure-as-a-Service (IaaS) . . . 9
2.1.2 Platform-as-a-Service (Paas) . . . 13
2.1.3 Software-as-a-Service (SaaS) . . . 16
2.2 Centralized and Distributed Solutions for Resource Management 16 2.3 Distributed Techniques . . . 17
2.4 Distributed Techniques for Requests Redirection Mechanisms . 19 2.4.1 Request Routing Mechanisms for Distributed Web Sys-tems . . . 20
2.4.2 Web Server Routing Mechanisms . . . 21
3 Load Balancing Algorithm 25 3.1 Problem Statement . . . 25
3.2 Reference Framework and Design Assumptions . . . 29
3.3 Workload Prediction Models . . . 31
3.4 Optimization Problem Formulation . . . 33
3.4.1 Capacity Allocation problem . . . 33
3.4.2 Load Redirect problem for Scenario 1 . . . 34
3.4.3 On Solving (SU Bi) problem . . . 39
3.4.4 Load redirect for Scenario 2 . . . 42
3.5 Capacity Allocation - Determining Classes Capacity . . . 45
4 Tools 49 4.1 AMPL . . . 49 4.2 SPECweb2005 . . . 50 4.2.1 SPECweb2005 - Banking . . . 54 4.3 Amazon Tools . . . 56 4.4 Amazon’s Scripts . . . 57 v
CONTENTS 4.4.1 Start Script . . . 57 4.4.2 recoverIP.java . . . 59 4.4.3 launchTest Script . . . 60 4.4.4 getLoads Script . . . 66 5 Experimental Results 67 5.1 Solution’s scalability . . . 67
5.1.1 Standard Capacity Allocation . . . 68
5.1.2 VM Configuration based Capacity Allocation . . . 69
5.2 Case Study . . . 69
5.2.1 Solutions under analysis . . . 70
5.2.2 Solutions’s Cost . . . 72
5.2.3 Solutions’s Response Times . . . 81
5.3 Amazon’s Experimental Results . . . 88
5.3.1 Parameters Estimation . . . 88 5.3.2 First Test . . . 90 5.3.3 Second Test . . . 96 6 Conclusions 103 Appendices 107 A Amazon Scripts 107 A.1 Amazon Start Script . . . 107
A.2 Amazon Recover IPs Program . . . 112
A.3 Amazon Launch Test Script . . . 114
A.4 Amazon getLoads Script . . . 123
B SPECweb2005 Test.config 127 C AMPL Models and Scripts 137 C.1 Our Solution: Models and Scripts . . . 137
C.1.1 Capacity Allocation: Models and Scripts . . . 137
C.1.2 Load Redirect: Models and Scripts . . . 144
C.1.3 Distributed Load Redirect: Models and Scripts . . . . 153
C.2 Heuristic 1: Models and Scripts . . . 160
C.3 Heuristic 3: Models and Scripts . . . 167
List of Figures
3.1 Cloud System - Scenario 1 . . . 26
3.2 Large Scale Service Center - Scenario 2 . . . 27
3.3 Cloud System Reference Framework . . . 28
4.1 SPECweb2005 Test Time Intervals . . . 53
4.2 Test’s Sequence Diagram . . . 58
5.1 Our solution, Oracle, Heuristic 1 and 2 - Instantaneous Virtual Machines Cost for low traffic conditions . . . 73
5.2 Heuristic 3 - Instantaneous Virtual Machines Cost for low traf-fic conditions . . . 74
5.3 Our solution, Oracle, Heuristic 1 and 2 - Instantaneous Virtual Machines Cost for high traffic conditions . . . 74
5.4 Heuristic 3 - Instantaneous Virtual Machines Cost for high traffic conditions . . . 75
5.5 Our solution, Oracle, Heuristic 1 and 2 - Instantaneous Virtual Machines Cost for high noisy traffic conditions . . . 75
5.6 Heuristic 3 - Instantaneous Virtual Machines Cost for high noisy traffic conditions . . . 76
5.7 Our solution, Oracle, Heuristic 1 and 2 - Response Time of site 5 for low traffic conditions . . . 82
5.8 Our solution, Oracle, Heuristic 1 and 2 - Response Time of site 8 for low traffic conditions . . . 82
5.9 Heuristic 3 - Response Time of site 5 for low traffic conditions 83 5.10 Heuristic 3 - Response Time of site 8 for low traffic conditions 83 5.11 Our solution, Oracle, Heuristic 1 and 2 - Response Time of site 5 for high traffic conditions . . . 84
5.12 Our solution, Oracle, Heuristic 1 and 2 - Response Time of site 8 for high traffic conditions . . . 84 5.13 Heuristic 3 - Response Time of site 5 for high traffic conditions 85 5.14 Heuristic 3 - Response Time of site 8 for high traffic conditions 85
LIST OF FIGURES
5.15 Our solution, Oracle, Heuristic 1 and 2 - Response Time of
site 5 for high noisy traffic conditions . . . 86
5.16 Our solution, Oracle, Heuristic 1 and 2 - Response Time of site 8 for high noisy traffic conditions . . . 86
5.17 Heuristic 3 - Response Time of site 5 for high noisy traffic conditions . . . 87
5.18 Heuristic 3 - Response Time of site 8 for high noisy traffic conditions . . . 87
5.19 Sites Model . . . 88
5.20 Parameter Estimation . . . 90
5.21 First Test - Site 1 (Virginia) -Λ 1 . . . 92
5.22 First Test - Site 2 (North California) -Λ 2 . . . 92
5.23 First Test - Site 1 (Virginia) - Response time . . . 93
5.24 First Test - Site 2 (North California) - Response time . . . 93
5.25 First Test - Site 1 (Virginia) - Requests . . . 94
5.26 First Test - Site 2 (North California) - Requests . . . 94
5.27 First Test - Response Time . . . 95
5.28 Second Test - Site 1 (Virginia) -Λ 1 . . . 98
5.29 Second Test - Site 2 (North California) -Λ 2 . . . 98
5.30 Second Test - Site 3 (Ireland) -Λ 3 . . . 99
5.31 Second Test - Site 1 (Virginia) - Response time . . . 99
5.32 Second Test - Site 2 (North California) - Response time . . . . 100
5.33 Second Test - Site 3 (Ireland) - Response time . . . 100
5.34 Second Test - Site 1 (Virginia) - Requests . . . 101
5.35 Second Test - Site 2 (North California) - Requests . . . 101
5.36 Second Test - Site 3 (Ireland) - Requests . . . 102
5.37 Second Test - Response Time . . . 102
List of Tables
2.1 Amazon EC2 Instances Types . . . 10
3.1 Capacity Allocation and Load Redirect Problems Parameters and Decision Variables. . . 29
4.1 Region Parameter . . . 59
4.2 Files uploaded to instances . . . 60
5.1 Capacity Allocation Problem Solution Execution Time (sec). . 68
5.2 Algorithm 1 Performance. . . 68
5.3 Capacity Allocation (various VM configurations case) Problem Solution Execution Time (sec). . . 69
5.4 Low Traffic case costs ($) . . . 76
5.5 Low Traffic case costs - Heuristic 3 ($) . . . 77
5.6 High Traffic case costs ($) . . . 77
5.7 High Traffic case costs - Heuristic 3 ($) . . . 77
5.8 High Noisy Traffic case costs ($) . . . 78
5.9 High Noisy Traffic case costs - Heuristic 3 ($) . . . 78
5.10 Cost differences percentage with respect to capacity allocation and load redirect solution in low traffic conditions . . . 78
5.11 Cost differences percentage with different thresholds with re-spect to capacity allocation and load redirect solution in low traffic conditions . . . 79
5.12 Cost differences percentage with respect to capacity allocation and load redirect solution in high traffic conditions . . . 79
5.13 Cost differences percentage with different thresholds with re-spect to capacity allocation and load redirect solution in high traffic conditions . . . 79
5.14 Cost differences percentage with respect to capacity allocation and load redirect solution in high noisy traffic conditions . . . 80
LIST OF TABLES
5.15 Cost differences percentage with different thresholds with re-spect to capacity allocation and load redirect solution in high
noisy traffic conditions . . . 80
5.16 Parameter Estimation Test Data . . . 89
5.17 Parameter Estimation Delay and Service Time . . . 89
5.18 Delays between Sites in [s] . . . 90
5.19 Second Test - VMs Number per Site/Hour . . . 96
5.20 Second Test Redirection . . . 97
Abstract
In recent years the evolution and the widespread adoption of virtualiza-tion, service-oriented architectures, autonomic and utility computing have converged letting a new paradigm to emerge: The Cloud Computing. Cloud Computing aims at streamlining the on-demand provisioning of software, hardware, and data as services, providing end-user with flexible and scalable services accessible through the Internet.
Due to the large scale nature of the Cloud and the service centers, resource provisioning is one of the most important challenges. Indeed modern cloud infrastructures and service centers are characterized by continuous changes in the environment and in the requirements they have to meet. Therefore, in order to provide infrastructure or software as a service, advanced solutions have to be developed to be able to dynamically adapt the Cloud infrastruc-ture, while providing continuous service and performance guarantees.
This thesis aims to develop capacity allocation techniques able to co-ordinate multiple distributed resource controllers working in geographically distributed cloud sites. Furthermore, capacity allocation solutions are inte-grated with a load redirection mechanism which forwards incoming requests among different domains in order to allow a better Quality of Service (QoS) during traffic fluctuations. The overall goal is to minimize the cost of the allocated cloud resources while guaranteeing quality of service constraints. In our work, the capacity allocation and load redirect of multiple class of requests are modeled as non-linear programming problem and solved with decomposition techniques. We performed also evaluations of our solution with multiple heuristics provided in the literature and the effectiveness has been evaluated on a real prototype environment deployed on Amazon EC2.
Results have shown that our solution is always cheaper than other state of the art techniques (up to 35% ), especially under noisy workloads, without introducing significant QoS violations. Furthermore, our solutions are very close to the ones found by an oracle with perfect knowledge of the future.
Estratto
Negli ultimi anni l’evoluzione e la diffusa adozione di virtualizzazione, di architetture orientate ai servizi, autonomic and utility computing sono con-fluiti in un nuovo paradigma emergente: il Cloud Computing. Il Cloud Com-puting mira a semplificare la fornitura on-demand di software, hardware e dati erogati come servizi, proponendo cos`ı all’utente finale sevizi flessibili scal-abili accessibili tramite internet. Oggigiorno l’offerta Cloud sta diventando sempre pi`u ampia in quanto tutte le principali aziende IT ed i fornitori di servizi, come Microsoft, HP, Google, Amazon, Terremark e VMWare hanno iniziato a fornire soluzioni che sfruttano questo nuovo paradigma tecnologico. Negli ultimi anni si `e vista una diffusione a livello mondiale di conglomerati di server chiamati Large Scale Service Center; come nello scenario Cloud anche in questo la gestione delle risorse `e un problema critico.
A causa delle dimensioni su larga scala del Cloud e dei Service Center al-cune delle maggiori sfide `e la fornitura delle risorse. Infatti le infrastrutture delle Cloud moderne e dei Service Center operano in un mondo caratterizzato da cambiamenti continui nell’ambiente e nei requisiti da soddisfare. Continui cambiamenti avvengono in modo autonomo e imprevedibile ed inoltre sono al di fuori del controllo del fornitore dei servizi Cloud. Pertanto, al fine di fornire infrastrutture o software come servizio, soluzioni avanzate devono es-sere sviluppate in grado di adattarsi dinamicamente alle infrastrutture Cloud, fornendo un servizio continuo e garantendo le performance. Dal momento che la violazione della qualit`a del servizio definita nel Service Level Agreement pu`o portare ad una perdita di profitti i fornitori di servizi investono nu-merose risorse nella ricerca di soluzioni che minimizzino i costi rispettando nel contempo la qualit`a del servizio.
Questa tesi si propone di sviluppare tecniche di allocazione delle risorse in grado di coordinare svariati controllori di risorse distribuiti operanti in siti Cloud distribuiti geograficamente. Inoltre, le soluzioni di assegnazione delle risorse sono integrate con un meccanismo di reindirizzamento di carico che inoltra le richieste in arrivo tra domini diversi, al fine di consentire una migliore qualit`a del servizio durante le fluttuazioni del traffico. L’obiettivo
`e quello di minimizzare il costo totale delle risorse assegnate garantendo co-munque il rispetto dei vincoli sulla qualit`a del servizio. Nel nostro lavoro, l’assegnazione delle risorse ed il reindirizzamento di svariate classi di richieste vengono modellate come problemi di programmazione non lineare e risolti attraverso tecniche di decomposizione. Abbiamo effettuato inoltre un’ampia valutazione della nostra soluzione confrontandola con diverse euristiche pre-senti in letteratura. Infine abbiamo valutato l’efficacia dei nostri algoritmi di gestione delle risorse su un vero ambiente di prova il cui prototipo `e stato implementato su Amazon EC2.
I risultati hanno dimostrato che la nostra soluzione `e sempre pi`u conve-niente rispetto alle altre di riferimento (fino ad un 35%), in particolar modo in condizioni di traffico rumoroso senza comportare violazioni significative della qualit`a del servizio. Inoltre le nostre soluzioni risultano essere molto simili a quelle trovate da un oracolo con perfetta conoscenza del futuro.
Chapter 1
Introduction
In recent years the evolution and the widespread adoption of virtualiza-tion, service-oriented architectures, autonomic and utility computing have converged letting a new paradigm to emerge: The Cloud Computing. Cloud Computing aims at streamlining the on-demand provisioning of software, hardware, and data as services, providing end-user with flexible and scalable services accessible through the Internet. Nowadays, the Cloud offer is becom-ing day by day wider since all the major IT Companies and Service providers, like Microsoft, HP, Google, Amazon, Terremark and VMWare have started providing solutions involving this new technological paradigm.
Resource provisioning is one of the most important challenges for Clouds. Indeed modern Cloud infrastructures live in an open world, characterized by continuous changes in the environment and in the requirements they have to meet. Continuous changes occur autonomously and unpredictably, and they are out of control of the Cloud provider. Therefore, in order to pro-vide infrastructure or software as a service, advanced solutions have to be developed to be able to dynamically adapt the cloud infrastructure, while providing continuous service and performance guarantees.
This thesis aims to develop capacity allocation techniques able to co-ordinate multiple distributed resource controllers working in geographically distributed Cloud sites. Furthermore, capacity allocation solutions are inte-grated with a load redirection mechanism which forwards incoming requests among different domains. The overall goal is to minimize the cost of the allocated Cloud resources, while guaranteeing quality of service constraints. In our work, the capacity allocation and load redirect of multiple class of requests are modeled as non-linear programming problems and solved with decomposition techniques. We performed also an extensive evaluation of our solution with multiple heuristics provided in the literature. Finally, the ef-fectiveness of our resource management algorithms has been evaluated on a
real prototype environment deployed on Amazon EC2. The thesis is organized as follows:
• In Chapter 2, we will introduce the Cloud Computing and its three paradigms: Infrastructure-as-a-Service (IaaS), Platform-as-a-Service (PaaS) and Software-as-a-Service (SaaS); for each of them some of the offerings available on the market will be presented. Then we will review the current state of the art of Centralized and Distributed Solutions for Resource Management and Distributed Techniques for Requests Redirection Mechanisms.
• In Chapter 3 both the Capacity Allocation an Load Redirection prob-lems will be faced. We will start by stating the problem, then we will introduce the various assumptions and present the reference framework and the workload prediction model used in our work.
• In Chapter 4 we will describe all the tools used in our thesis work: At first we will present AMPL, the modeling language used to define the capacity allocation and load redirect optimization problems (in order to be able to solve them using the SNOPT solver) and to implement the heuristics used in our solution. Then we will introduce SPECweb2005, the benchmark software used to test our solution in a real cloud sce-nario. We will then proceed presenting the tools provided by Amazon to monitor and control the virtual machines running on its cloud; fi-nally the shell scripts we developed to launch and manage the virtual machines on Amazon EC2 and to control SPECweb2005 tests will be described.
• Chapter 5 is dedicated to assess the quality of our solution through simulations and experiments. We will start presenting the results of the scalability analysis (in terms of number of request’s classes and sites/clusters) of both the capacity allocation and load redirect models presented in Chapter 3. Then we compare the simulation’s results of our solution (both in terms of costs and response time) with the results of the current state of the art techniques. In the last part of the Chapter we present the performance results of our solution in a real cloud scenario based on Amazon EC2 realized through SPECweb2005. • In Chapter 6 are presented the work’s conclusion, underling the achieved
results and presenting future research directions.
Chapter 6
Conclusions
In this thesis we proposed capacity allocation techniques able to coordi-nate multiple distributed resource controllers working in geographically dis-tributed Cloud sites and large scale service centers. Since the Cloud paradigm is getting day by day more popular and that large scale service center are spawning all around the world the optimization of costs and resources is a central topic from both customer’s and provider’s perspective. Indeed, in any time instant resources have to be allocated to handle effectively work-load fluctuations, while providing QoS guarantees to the end users. The overall goal we addressed in our thesis is the minimization of the costs asso-ciated with the allocated virtual machine instances, while guaranteeing QoS constraints expressed as a threshold on the average response time.
In our work we proposed a formulation of an hourly basis capacity allo-cation problem suitable for both a distributed cloud system and a large scale service center. Furthermore, we integrated our capacity allocation technique with a load redirect mechanism able to manage workload fluctuations at finer grained time scales (5-10 minutes); like the capacity allocation solution also this one is suitable, in the general approach, for both our scenarios.
We performed an extensive analysis of our proposed solutions consider-ing multiple workloads and system configurations. We simulated the per-formance of our solution, exploiting the AMPL language and the SNOPT non-linear solver, comparing the achieved results with the ones which can be obtained by the major techniques available in the literature or currently used by service providers. From these comparisons emerged that our solu-tion is always cheaper (up to 35%), especially in very noisy traffic condisolu-tions, without introducing significant QoS violations. Furthermore, our solutions are very close to the ones found by an oracle with perfect knowledge of the future. In the final phase of this thesis’s work we tested the effectiveness of our approach by performing experiments in a real prototype environment
running in Amazon EC2 and the results achieved by simulation have been confirmed also in this case.
Future work will be devoted to a deeper investigation of the time scales which can be adopted to govern the behavior of Cloud systems.
Bibliography
[1] B. Abraham and J. Ledolter. Statistical Methods for Forecasting. John Wiley and Sons, 1983.
[2] Akamai. http://www.akamai.com.
[3] J. Almeida, V. Almeida, D. Ardagna, I. Cunha, C. Francalanci, and M. Trubian. Joint admission control and resource allocation in virtual-ized servers. Journal of Parallel and Distributed Computing, 70(4):344– 362, 2010.
[4] Amazon Inc. AWS Elastic Beanstalk. http://aws.amazon.com/elasticbeanstalk/.
[5] AMPL. Ampl modeling language for mathematical programming. http://www.ampl.com/.
[6] M. Andreolini, S. Casolari, and M. Colajanni. Autonomic request man-agement algorithms for geographically distributed internet-based sys-tems. In SASO, 2008.
[7] M. Andreolini, S. Casolari, and M. Colajanni. Models and framework for supporting run-time decisions in web-based systems. ACM Trans. on the Web, 2(3), 2008.
[8] D. Andresen, T. Yanh, and O. H. Ibarra. Towards a scalable distributed www server on networked workstations. In Journal of Parallel and Dis-tributed Computing, volume 42, pages 91–100, 1997.
[9] D. Ardagna, S. Casolari, and B. Panicucci. Flexible dis-tributed capacity allocation and load redirect algorithms for cloud systems. Politecnico di Milano, Tech. Report 2011.3. http://home.dei.polimi.it/ardagna/CloudCALR2011.pdf, 2011.
BIBLIOGRAPHY
[10] D. Ardagna, B. Panicucci, M. Trubian, and L. Zhang. Energy-aware au-tonomic resource allocation in multi-tier virtualized environments. IEEE Trans. on Service Computing, to appear.
[11] Danilo Ardagna, Carlo Ghezzi, Barbara Panicucci, and Marco Trubian. Service provisioning on the cloud: Distributed algorithms for joint ca-pacity allocation and admission control. In ServiceWave, 2010.
[12] M. Armbrust, A. Fox, R. Griffith, A. D. Joseph, R. Katz, A. Konwinski, G. Lee, D. Patterson, A. Rabkin, I. Stoica, and M. Zaharia. A view of cloud computing. Communications of the ACM, 53(4):50–58, April 2010.
[13] L. Aversa and A. Bestavros. Load balancing a cluster of web servers using distributed packet rewriting. In Proc. of IEEE Int’l Performance, Computing, and Communication Conf., pages 24–29, February 2000. [14] M. Bennani and D. Menasc´e. Resource allocation for autonomic data
center using analytic performance models. In IEEE Int’l Conf. Auto-nomic Computing Proc., 2005.
[15] T. Berners-Lee, R. Fielding, and H. Frystyk. Hypertext transfer protocol http/1.0. RFC 1945, May 1996.
[16] D. Bertsekas. Nonlinear Programming. Athena Scientific, 1999.
[17] Bitcurrent. Cloud computing performance. Technical report, http://www.bitcurrent.com/new-report-on-cloud-performance/, 2010. [18] G. Bolch, S. Greiner, H. de Meer, and K. Trivedi. Queueing Networks
and Markov Chains. Wiley-Interscience, 1998.
[19] T. Brisco. Dns support for load balancing. RFC 1794, April 1995. [20] V. Cardellini, M. Colajanni, and P. S. Yu. Redirection algorithms for
load sharing in distributed web-server systems. In Proc. of IEEE 19th Intl’ Conf. on Distributed Computing Systems, pages 528–535, 1999. [21] V. Cardellini, M. Colajanni, and P. S. Yu. Geographic load balancing for
scalable distributed web systems. In MASCOTS 2000, Proceedings of the 8th International Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems, pages 20–27, 2000. 174
BIBLIOGRAPHY
[22] L. Cherkasova and P. Phaal. Session-based Admission Control: a Mech-anism for Peak Load Management of Commercial Web Sites. 51(6):669– 685, June 2002.
[23] Rackspace Cloud. Cloud servers - vir-tual server hosting dedicated server hosting. http://www.rackspacecloud.com/cloud hosting products/servers. [24] E. Cohen and H. Kaplan. Proactive caching of dns records: Addressing
a performance bottleneck. In Proc. of Symp. on Applications and the Internet, pages 85–94, January 2001.
[25] M. Colajanni, P. S. Yu, and V. Cardellini. Dynamic load balancing in geographically distributed heterogeneous web servers. In ICDCS, pages 295–302, 1998.
[26] M. Colajanni, P. S. Yu, and D. M. Dias. Analysis of the task assignment policies in scalable distributed web-server systems. IEEE Trans. on Parallel and Distributed Systems, 9(6):585–600, June 1998.
[27] J.D Dennis. A performance test of a run-based adaptive exponential smoothing. Production and Inventory Management, 19, 1978.
[28] D. M. Dias, W. Kish, R. Mukherjee, and R. Tewari. A scalable and highly available web server. In Proc. of 41st IEEE Computer Society Int’l Conf., pages 85–92, February 1996.
[29] M. D. Dikaiakos, D. Katsaros, P. Mehra, G. Pallis, and A. Vakali. Cloud computing: Distributed internet computing for it and scientific research. IEEE Internet Computing, 13(5):10–13, 2009.
[30] H. Erdogmus. Cloud computing: Does nirvana hide behind the nebula? IEEE Softw., 26(2):4–6, 2009.
[31] S. Everette and Jr. Gardner. Exponential smoothing: State of the art. Journal of Forecasting, 4, 1985.
[32] P. Felber, T. Kaldewey, and S. Weiss. Proactive hot spot avoidance for web server dependability. Reliable Distributed Systems, IEEE Sympo-sium on, pages 309–318, 2004.
[33] H. Feng, Z. Liu, C. H. Xia, and L. Zhang. Load shedding and distributed resource control of stream processing networks. Perform. Eval., 64(9-12):1102–1120, 2007.
BIBLIOGRAPHY
[34] R. T. Fielding, J. Gettys, J. C. Mogul, H. F. Frystyk, L. Masinter, P. J. Leach, and T. Berners-Lee. Hypertext transfer protocol http/1.1. RFC 2616, June 1999.
[35] FreshBooks. Freshbooks - online invoicing, time tracking billing software - http://www.freshbooks.com/.
[36] P. E. Gill, W. Murray, and M. A. Saunders. SNOPT: An SQP algorithm for large-scale constrained optimization. SIAM Journal of Optimization, 12:979–1006, 2002.
[37] Google. Google app engine - google code. http://code.google.com/intl/en-en/appengine/.
[38] Google. Google apps for business — official website. http://www.google.com/apps/intl/en/business/index.html.
[39] Amazon Inc. Amazon cloudwatch api tools : Developer tools : Amazon web services - http://aws.amazon.com/developertools/2534.
[40] Amazon Inc. Amazon ec2 ami tools : Developer tools : Amazon web services - http://aws.amazon.com/developertools/368.
[41] Amazon Inc. Amazon ec2 api tools : Developer tools : Amazon web service - http://aws.amazon.com/developertools/351.
[42] Amazon Inc. Amazon elastic compute cloud (amazon ec2). http://aws.amazon.com/ec2/.
[43] Amazon Inc. Amazon simple storage service (amazon s3). http://aws.amazon.com/s3/.
[44] NetSuite Inc. Business software, erp software, business ac-counting software, crm and erp business software-netsuite -http://www.netsuite.com/portal/home.shtml.
[45] Standford Business Software Inc. Snopt 6.0 http://www.sbsi-sol-optimize.com/asp/sol product snopt.htm.
[46] Terremark Worldwide Inc. Terremark cloud computing. http://www.terremark.com/services/cloudcomputing.aspx.
[47] D. Kumar, L. Zhang, and A. Tantawi. Enhanced inferencing: Estimation of a workload dependent performance model. VALUETOOLS ’09 Pro-ceedings of the Fourth International ICST Conference on Performance Evaluation Methodologies and Tools, 2009.
BIBLIOGRAPHY
[48] D. Kusic and N. Kandasamy. Risk-aware limited lookahead control for dynamic resource provisioning in enterprise computing systems. In ICAC 2006 Proc., 2006.
[49] D. Kusic, J. O. Kephart, N. Kandasamy, and G. Jiang. Power and per-formance management of virtualized computing environments via looka-head control. In ICAC 2008 Proc., 2008.
[50] T. T. Kwan, R. E. McGrath, and D. A. Reed. Ncsa’s world wide web server: Design and performance. IEEE Computer, 28(11):68–74, 1995. [51] E.D. Lazowska, J. Zahorjan, G.S. Graham, and K. Sevcik. Quantitative
System Performance. Prentice Hall, 1984.
[52] Q. Li and B. Moon. Distributed cooperative aspache web server. In Proc. of 10th Int’l World Wide Web Conf., May 2001.
[53] Z. Liu, M. Squillante, and J. L. Wolf. On maximizing service-level-agreement profits. In Proc. of ACM Electronic Commerce Conference, October 2001.
[54] Microsoft. Hotmail - http://www.hotmail.com/.
[55] Microsoft. Windows azure platform. http://www.microsoft.com/windowsazure/.
[56] E. D. Nitto, D. J. Dubois, R. Mirandola, F. Saffre, and R. Tateson. Self-aggregation techniques for load balancing in distributed systems. In SASO, 2008.
[57] Daniel P. Palomar and Mung Chiang. A tutorial on decomposition methods for network utility maximization. IEEE J. Sel. Areas Commun, 24:1439–1451, 2006.
[58] Salesforce. saleforce.com - http://www.salesforce.com/.
[59] M. Shackleton and P. Marrow. Editorial, special issue on nature-inspired computation.
[60] A. Shaikh, R. Tewari, and M. Agrawal. On the effectiveness of dns-based server selection. In Proc. of IEEE Infocom 2001, April 2001.
[61] SPEC. Specweb2005 - http://www.spec.org/web2005/.
[62] SPEC. Specweb2005 banking workload design document -http://www.spec.org/web2005/docs/bankingdesign.html.
BIBLIOGRAPHY
[63] D.W Trigg and A.G. Leach. Exponential smoothing with an adaptive response rate. Operational Research Quarterly, 18, 1967.
[64] B. Urgaonkar, G. Pacifici, P. J. Shenoy, M. Spreitzer, and A. N. Tantawi. Analytic modeling of multitier internet applications. ACM Transaction on Web, 1(1), 2007.
[65] B. Urgaonkar and P. Shenoy. Sharc: Managing cpu and network band-width in shared cluster. IEEE Transactions on Parallel and Distributed Systems, 15(1):2–17, 2004.
[66] D.C. Whybark. Comparison of adaptive forecasting techniques. Logistics Transportation Review, 8.
[67] J. L. Wolf, N. Bansal, K. Hildrum, S. Parekh, D. Rajan, R. Wagle, K.-L. Wu, and K.-L. Fleischer. Soda: An optimizing scheduler for large-scale stream-based distributed computer systems. In Middleware, 2008. [68] A. Wolke and G. Meixner. Twospot: A cloud platform for scaling out
web applications dynamically. In ServiceWave, 2010.
[69] X. Zhu, D. Young, B. Watson, Z. Wang, J. Rolia, S. Singhal, B. McKee, C. Hyser, D.Gmach, R. Gardner, T. Christian, and L. Cherkasova:. 1000 islands: An integrated approach to resource management for virtualized data centers. Journal of Cluster Computing, 12(1):45–57, 2009.