Expertus: A Generator Approach to Automate Performance Testing in IaaS Clouds

Cloud computing is an emerging technology paradigm that revolutionizes the computing landscape by providing on-demand delivery of software, platform, and infrastructure over the Internet. Yet, architecting, deploying, and configuring enterprise applications to run well on modern clouds remains a challenge due to associated complexities and non-trivial implications. The natural and presumably unbiased approach to these questions is thorough testing before moving applications to production settings. However, thorough testing of enterprise applications on modern clouds is cumbersome and error-prone due to a large number of relevant scenarios and difficulties in testing process. We address some of these challenges through Expertus---a flexible code generation framework for automated performance testing of distributed applications in Infrastructure as a Service (IaaS) clouds. Expertus uses a multi-pass compiler approach and leverages template-driven code generation to modularly incorporate different software applications on IaaS clouds. Expertus automatically handles complex configuration dependencies of software applications and significantly reduces human errors associated with manual approaches for software configuration and testing. To date, Expertus has been used to study three distributed applications on five IaaS clouds with over 10,000 different hardware, software, and virtualization configurations. The flexibility and extensibility of Expertus and our own experience on using it shows that new clouds, applications, and software packages can easily be incorporated.

[1]  Radu Prodan,et al.  ZENTURIO: an experiment management system for cluster and Grid computing , 2002, Proceedings. IEEE International Conference on Cluster Computing.

[2]  B.P. Miller,et al.  Experiment Management Support for Performance Tuning , 1997, ACM/IEEE SC 1997 Conference (SC'97).

[3]  George Candea,et al.  Automated Software Testing as a Service (TaaS) , 2010, SOCC 2010.

[4]  George Candea,et al.  Automated software testing as a service , 2010, SoCC '10.

[5]  Herodotos Herodotou,et al.  Automated Experiment-Driven Management of (Database) Systems , 2009, HotOS.

[6]  Willy Zwaenepoel,et al.  C-JDBC: Flexible Database Clustering Middleware , 2004, USENIX Annual Technical Conference, FREENIX Track.

[7]  Calton Pu,et al.  Variations in Performance and Scalability When Migrating n-Tier Applications to Different Clouds , 2011, 2011 IEEE 4th International Conference on Cloud Computing.

[8]  Yanyan Wang,et al.  Automating experimentation on distributed testbeds , 2005, ASE.

[9]  Calton Pu,et al.  The Impact of Soft Resource Allocation on n-Tier Application Scalability , 2011, 2011 IEEE International Parallel & Distributed Processing Symposium.

[10]  Charles Rankin,et al.  The Software Testing Automation Framework , 2002, IBM Syst. J..

[11]  John C. Grundy,et al.  SoftArch/MTE: Generating Distributed System Test-Beds from High-Level Software Architecture Descriptions , 2004, Automated Software Engineering.

[12]  George Candea,et al.  Parallel symbolic execution for automated real-world software testing , 2011, EuroSys '11.

[13]  Adam Silberstein,et al.  Benchmarking cloud serving systems with YCSB , 2010, SoCC '10.

[14]  Miron Livny,et al.  Zoo: a desktop experiment management environment , 1997, SIGMOD '97.

[15]  Calton Pu,et al.  Experimental evaluation of N-tier systems: Observation and analysis of multi-bottlenecks , 2009, 2009 IEEE International Symposium on Workload Characterization (IISWC).

[16]  John C. Grundy,et al.  Experiences integrating and scaling a performance test bed generator with an open source CASE tool , 2004, Proceedings. 19th International Conference on Automated Software Engineering, 2004..

[17]  Radu Prodan,et al.  ZEN: a directive-based language for automatic experiment management of distributed and parallel programs , 2002, Proceedings International Conference on Parallel Processing.

[18]  Yanyan Wang,et al.  Four enhancements to automateddistributed system experimentation methods , 2008, 2008 ACM/IEEE 30th International Conference on Software Engineering.

[19]  A. Fox,et al.  Cloudstone : Multi-Platform , Multi-Language Benchmark and Measurement Tools for Web 2 . 0 , 2008 .

[20]  Calton Pu,et al.  Clearwater: extensible, flexible, modular code generation , 2005, ASE.

[21]  Behzad Bordbar,et al.  A DSL-Based Approach to Software Development and Deployment on Cloud , 2010, 2010 24th IEEE International Conference on Advanced Information Networking and Applications.