Using Performance Models for Planning the Redeployment to Infrastructure-as-a-Service Environments: A Case Study

Context: Performance models allow software architects to conduct what-if analyses, e.g., to assess deployment scenarios regarding performance. While a typical scenario is the redeployment to Infrastructure-as-a-Service (IaaS) environments, there is currently no empirical evidence that architects can apply performance models in such scenarios for accurate performance analyses and how much effort is required. Objectives: Therefore, we explore the applicability of software performance engineering for planning the redeployment of existing software applications to IaaS environments. Methods: We conduct a case study in which we apply performance engineering to redeploy a realistic existing application to IaaS environments. We select an online book shop implementation (CloudStore) as existing application and engineer a corresponding Palladio performance model. Subsequently, we compare analysis results with measurements gathered from operating CloudStore within (I) a classical on-premise setup, (II) OpenStack, and (III) Amazon EC2. Results: Our case study shows that performance models have a relative accuracy error of less than 12% even for IaaS environments (scenarios (II) and (III)). For scenarios (II) and (III), we saved up to 98% model creation effort by reusing the model from scenario (I), we just re-calibrated processing rates of CPUs within our deployment model. Conclusions: Software architects can plan redeployments by reusing performance models of their existing system, thus, with only minor effort. This is particularly possible for virtualized third-party environments like for Amazon EC2.

[1]  Heiko Koziolek,et al.  Performance evaluation of component-based software systems: A survey , 2010, Perform. Evaluation.

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

[3]  Connie U. Smith,et al.  Making the Business Case for Software Performance Engineering , 2003, Int. CMG Conference.

[4]  Rini van Solingen,et al.  Goal Question Metric (GQM) Approach , 2002 .

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

[6]  Virgílio A. F. Almeida,et al.  Capacity Planning for Web Services: Metrics, Models, and Methods , 2001 .

[7]  Steffen Becker,et al.  Performance modeling in industry: a case study on storage virtualization , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[8]  Virgílio A. F. Almeida,et al.  Performance by Design - Computer Capacity Planning By Example , 2004 .

[9]  Heiko Koziolek,et al.  An industrial case study of performance and cost design space exploration , 2012, ICPE '12.

[10]  D. Fensel,et al.  Architecture of the World Wide Web , Volume One , 2004 .

[11]  Randy H. Katz,et al.  A view of cloud computing , 2010, CACM.

[12]  Steffen Becker,et al.  Quantitative Evaluation of Model-Driven Performance Analysis and Simulation of Component-Based Architectures , 2015, IEEE Transactions on Software Engineering.

[13]  S. Mohan,et al.  Performance Solutions: A Practical Guide to Creating Responsive, Scalable Software [Book Review] , 2003, IEEE Software.

[14]  Heiko Koziolek,et al.  From monolithic to component-based performance evaluation of software architectures , 2010, Empirical Software Engineering.

[15]  Per Runeson,et al.  Guidelines for conducting and reporting case study research in software engineering , 2009, Empirical Software Engineering.

[16]  Uwe Fink,et al.  Performance Solutions A Practical Guide To Creating Responsive Scalable Software , 2016 .

[17]  Guillaume Pierre,et al.  EC2 Performance Analysis for Resource Provisioning of Service-Oriented Applications , 2009, ICSOC/ServiceWave Workshops.

[18]  Tore Dybå,et al.  Building Theories in Software Engineering , 2008, Guide to Advanced Empirical Software Engineering.

[19]  Dietmar Pfahl,et al.  Reporting Experiments in Software Engineering , 2008, Guide to Advanced Empirical Software Engineering.

[20]  Moreno Marzolla,et al.  Simulation-based performance modeling of UML software architectures , 2004 .

[21]  Stefan Becker,et al.  Workload-aware System Monitoring Using Performance Predictions Applied to a Large-scale E-Mail System , 2012, 2012 Joint Working IEEE/IFIP Conference on Software Architecture and European Conference on Software Architecture.

[22]  John Murphy,et al.  Performance Engineering for Cloud Computing , 2011, EPEW.

[23]  Sebastian Lehrig,et al.  Software architecture design assistants need controlled efficiency experiments: lessons learned from a survey , 2015, 2015 1st International Workshop on Future of Software Architecture Design Assistants (FoSADA).

[24]  Claes Wohlin,et al.  Experimentation in software engineering: an introduction , 2000 .