TeaStore: A Micro-Service Reference Application for Benchmarking, Modeling and Resource Management Research

Modern distributed applications offer complex performance behavior and many degrees of freedom regarding deployment and configuration. Researchers employ various methods of analysis, modeling, and management that leverage these degrees of freedom to predict or improve non-functional properties of the software under consideration. In order to demonstrate and evaluate their applicability in the real world, methods resulting from such research areas require test and reference applications that offer a range of different behaviors, as well as the necessary degrees of freedom. Existing production software is often inaccessible for researchers or closed off to instrumentation. Existing testing and benchmarking frameworks, on the other hand, are either designed for specific testing scenarios, or they do not offer the necessary degrees of freedom. Further, most test applications are difficult to deploy and run, or are outdated. In this paper, we introduce the TeaStore, a state-of-the-art micro-service-based test and reference application. TeaStore offers services with different performance characteristics and many degrees of freedom regarding deployment and configuration to be used as a benchmarking framework for researchers. The TeaStore allows evaluating performance modeling and resource management techniques; it also offers instrumented variants to enable extensive run-time analysis. We demonstrate TeaStore's use in three contexts: performance modeling, cloud resource management, and energy efficiency analysis. Our experiments show that TeaStore can be used for evaluating novel approaches in these contexts and also motivates further research in the areas of performance modeling and resource management.

[1]  Peter H. N. de With,et al.  Modelling of input-parameter dependency for performance predictions of component-based embedded systems , 2005, 31st EUROMICRO Conference on Software Engineering and Advanced Applications.

[2]  Rajkumar Buyya,et al.  Energy-aware resource allocation heuristics for efficient management of data centers for Cloud computing , 2012, Future Gener. Comput. Syst..

[3]  Bran Selic,et al.  The UML – MARTE Standardized Profile , 2008 .

[4]  Raffaela Mirandola,et al.  The Common Component Modeling Example: Comparing Software Component Models [result from the Dagstuhl research seminar for CoCoME, August 1-3, 2007] , 2007, CoCoME.

[5]  Steffen Becker,et al.  The Palladio component model for model-driven performance prediction , 2009, J. Syst. Softw..

[6]  Wilhelm Hasselbring,et al.  Kieker: a framework for application performance monitoring and dynamic software analysis , 2012, ICPE '12.

[7]  Raffaela Mirandola,et al.  Hybrid multi-attribute QoS optimization in component based software systems , 2013, J. Syst. Softw..

[8]  Samuel Kounev,et al.  Evaluating approaches to resource demand estimation , 2015, Perform. Evaluation.

[9]  Johan Tordsson,et al.  PEAS , 2016, ACM Trans. Model. Perform. Evaluation Comput. Syst..

[10]  Michele Garetto,et al.  A unified approach to the performance analysis of caching systems , 2013, IEEE INFOCOM 2014 - IEEE Conference on Computer Communications.

[11]  Samuel Kounev,et al.  Modeling of Parametric Dependencies for Performance Prediction of Component-Based Software Systems at Run-Time , 2018, 2018 IEEE International Conference on Software Architecture (ICSA).

[12]  Ralf H. Reussner,et al.  Using Genetic Search for Reverse Engineering of Parametric Behavior Models for Performance Prediction , 2010, IEEE Transactions on Software Engineering.

[13]  Samuel Kounev,et al.  An Expandable Extraction Framework for Architectural Performance Models , 2017, ICPE Companion.

[14]  Rouven Krebs,et al.  Ready for Rain? A View from SPEC Research on the Future of Cloud Metrics , 2016, ArXiv.

[15]  Christopher B. Hauser,et al.  CACTOS toolkit version 2: accompanying document for prototype deliverable D5.2.2 , 2017 .

[16]  Helmut Krcmar,et al.  Using Dynatrace Monitoring Data for Generating Performance Models of Java EE Applications , 2015, ICPE.

[17]  Gregory Kulczycki,et al.  Performance specification of software components , 2001, SSR '01.

[18]  André van Hoorn,et al.  Towards Performance Tooling Interoperability: An Open Format for Representing Execution Traces , 2016, EPEW.

[19]  Samuel Kounev,et al.  Run-Time Prediction of Power Consumption for Component Deployments , 2018, 2018 IEEE International Conference on Autonomic Computing (ICAC).

[20]  Heiko Koziolek,et al.  Facilitating Performance Predictions Using Software Components , 2011, IEEE Software.

[21]  Bev Littlewood,et al.  Validation of ultrahigh dependability for software-based systems , 1993, CACM.

[22]  Adam Wierman,et al.  Open Versus Closed: A Cautionary Tale , 2006, NSDI.

[23]  Gunnar Brataas,et al.  Scalability Analysis of Cloud Software Services , 2017, 2017 IEEE International Conference on Autonomic Computing (ICAC).

[24]  Wilhelm Hasselbring,et al.  Continuous Monitoring of Software Services: Design and Application of the Kieker Framework , 2009 .

[25]  Willy Zwaenepoel,et al.  Performance and scalability of EJB applications , 2002, OOPSLA '02.

[26]  Ajay Mohindra,et al.  Dynamic Scaling of Web Applications in a Virtualized Cloud Computing Environment , 2009, 2009 IEEE International Conference on e-Business Engineering.

[27]  Samuel Kounev,et al.  LibReDE: a library for resource demand estimation , 2014, ICPE.

[28]  Martin Arlitt,et al.  A workload characterization study of the 1998 World Cup Web site , 2000, IEEE Netw..

[29]  Wilhelm Hasselbring,et al.  Performance-oriented DevOps: A Research Agenda , 2015, ArXiv.

[30]  Nikolaus Huber,et al.  Model-Based Self-Aware Performance and Resource Management Using the Descartes Modeling Language , 2017, IEEE Transactions on Software Engineering.

[31]  Alexandru Iosup,et al.  An Experimental Performance Evaluation of Autoscaling Policies for Complex Workflows , 2017, ICPE.

[32]  Giovanni Giuliani,et al.  A methodology to predict the power consumption of servers in data centres , 2011, e-Energy.

[33]  Egor Bondarev,et al.  Modelling of input-parameter dependency for performance predictions of component-based embedded systems , 2005 .

[34]  Piotr Rygielski,et al.  Modeling and Prediction of Software-Defined Networks Performance using Queueing Petri Nets , 2016, SimuTools.

[35]  Dominik Benz,et al.  The social bookmark and publication management system bibsonomy , 2010, The VLDB Journal.

[36]  Zhenhuan Gong,et al.  PRESS: PRedictive Elastic ReSource Scaling for cloud systems , 2010, 2010 International Conference on Network and Service Management.

[37]  Claus Pahl,et al.  Benchmark Requirements for Microservices Architecture Research , 2017, 2017 IEEE/ACM 1st International Workshop on Establishing the Community-Wide Infrastructure for Architecture-Based Software Engineering (ECASE).

[38]  Samuel Kounev,et al.  Energy Efficiency of Hierarchical Server Load Distribution Strategies , 2015, 2015 IEEE 23rd International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems.

[39]  Sameh Elnikety,et al.  Performance Comparison of Middleware Architectures for Generating Dynamic Web Content , 2003, Middleware.

[40]  Sebastian Lehrig,et al.  CloudStore - towards scalability, elasticity, and efficiency benchmarking and analysis in Cloud computing , 2018, Future Gener. Comput. Syst..

[41]  Paola Inverardi,et al.  Online Learning of Run-Time Models for Performance and Resource Management in Data Centers , 2017, Self-Aware Computing Systems.

[42]  Isi Mitrani,et al.  Optimal Provision of Multiple Service Types , 2016, 2016 IEEE 24th International Symposium on Modeling, Analysis and Simulation of Computer and Telecommunication Systems (MASCOTS).

[43]  Helmut Krcmar,et al.  Comparing the Accuracy of Resource Demand Measurement and Estimation Techniques , 2015, EPEW.

[44]  Andreas Hotho,et al.  Modeling and Extracting Load Intensity Profiles , 2017, 2015 IEEE/ACM 10th International Symposium on Software Engineering for Adaptive and Self-Managing Systems.

[45]  Daniel Lemire,et al.  Slope One Predictors for Online Rating-Based Collaborative Filtering , 2007, SDM.

[46]  Ravishankar K. Iyer,et al.  Software Dependability in the Tandem GUARDIAN System , 1995, IEEE Trans. Software Eng..

[47]  Ralf H. Reussner,et al.  Stateful component-based performance models , 2013, Software & Systems Modeling.

[48]  Giuseppe Bianchi,et al.  Check before storing: what is the performance price of content integrity verification in LRU caching? , 2013, CCRV.

[49]  V PapadopoulosAlessandro,et al.  An Experimental Performance Evaluation of Autoscalers for Complex Workflows , 2018 .