Enterprise applications cloud rightsizing through a joint benchmarking and optimization approach
Introduction
Cloud computing is a disruptive phenomenon in ICT world, which has rapidly entered mainstream consciousness and gained a significant attention of various communities like researchers, business and government organization. It is obvious, in fact, that everyday services like Dropbox, Netflix or Instagram owe part of their success to the benefits of cloud such as the infinite number of resources, the ability to dynamically adapt (scale-up or scale down) accordingly to usage behaviors and the pay-as-you-go economical model.
With a rapidly increasing number of companies entering the cloud market and offering heterogeneous and constantly evolving technologies [1] the process of software design and implementation experienced a deep change. On the one hand, the cloud has meant for developers providing advanced cloud-based tools and abstractions for development, collaboration and deployment. Dynamic systems capable to react to workload fluctuations by adapting themselves in order to keep the performance unchanged can easily built and run delegating to the cloud provider the intensive tasks of infrastructure management and maintenance. On the other hand, performance unpredictability and vendor lock-in are just some of the issues that developers have to face and prove significant barriers to widespread cloud adoption. In fact, the increasing size and complexity of software systems, combined with the wide range of services and prices available in the market, puts the designer before the necessity to evaluate a combinatorially growing number of design alternatives [2] with the goal of finding a minimum-cost configuration that suits the application Quality of Service (QoS) requirements.
To carry out such a task, the system designer should consider a large number of alternatives and should be able to evaluate costs (that often depends on the application dynamics) and performance for each of them. This can be very challenging, even infeasible if performed manually, since the number of solutions may become extremely large depending on the number of possible providers and available technology stacks. What is more, in many cases the performance of these service offerings may vary depending on the application types that are intended to be executed upon them and their characteristics in terms of resource usage. Intensive RAM, CPU, disk or GPU usage may be toggled between applications that have different goals, such as scientific components, database instances or front ends.
A key challenge for customers before moving to Cloud, is to know application behavior on cloud platforms, in order to select the best-suited environment to host their application components in terms of performance and cost. In many cases the application owner might not be aware of how the migrated application component uses the available computing resources; for many application components the runtime behavior and usage of resources may not be known, mistakenly considered or altered due to structural changes during the software migration. On the other side, cloud providers might also be interested in knowing the application types hosted within their infrastructures to avoid interference effects of concurrently running VMs, which significantly degrade applications performance. Evaluating a specific and arbitrary application component over the entire range of offerings becomes a daunting task, especially when the deployment of the former may be subject to provider-specific or component-specific actions or code in each case. However, finding a more abstracted and common way for identifying both application profile and performance aspects of cloud environments may significantly reduce the effort needed in this task.
Finally, the performance characteristics of a cloud may change over time dramatically, depending on the congestion level, policies implemented by the cloud provider, and competition among running applications. Assessing the performance of an application in the cloud is a complex process that requires unbiased data and specialized models often implying skills that go beyond those commonly exhibited by software engineers. This situation calls for analytical techniques, models, application profiling and benchmarks that simplify the process of performance evaluation at design-time in order to support the user in the decision making process.
This work aims at proposing a methodology and a tool chain that support the migration and pricing scheme of enterprise applications to the cloud. Our tool chain exploits cloud benchmarking results and includes a profiler/classifier, which identifies the computational nature of a software component in a black box manner and a design space exploration tool, which is able to identify the cloud configuration of minimum cost fulfilling QOS constraints taking into account also daily workload patterns.
The remainder of the paper is organized as follows. In Section 2 an overview of the design methodology and the implemented tools are presented, while in Section 3 the benchmarking results acquisition is described. Section 4 introduces the profiling and classification tools, while Section 5 is devoted to the design time exploration tool. In Section 5 the experimental results achieved on a case study by combining and integrating the implemented tool chain are presented. In Section 7 related work in the respective fields is described. Conclusions are finally drawn in Section 8.
Section snippets
Overview of the design methodology and tools
The combined methodology of the tool chain appears in Fig. 1. Our approach along with the supporting tools, as an “all in one” solution allows the applications to exploit the offerings of the cloud providers in terms of performance and cost, taking into consideration their extracted computational behavior via profiling. The implemented methodology includes three phases: (i) Benchmarking (ii) Profiling and Classification and (iii) Assessment and Optimization phase.
Once the benchmark application
Cloud benchmarking
When considering the migration of existing applications to the cloud, it is critical to examine both the diversity of cloud providers and the varying performance issues of cloud services. Since there is an increasing number of providers offering cloud infrastructures and services a fair evaluation of such cloud systems is needed. System architects and developers have to tackle with this variety of services and trade-offs. Moreover, in some cases cloud providers offer their own metrics for
Profiling and classification mechanism
Selecting a cloud provider that offers the best environment to host an arbitrary application in terms of performance and cost is a difficult challenge. To address this issue, we present a generalized mechanism which identifies the computational profile of an arbitrary application component, classifies it according to an already known and limited number of application categories and provides the fitting cloud offering by using the SE metric. The benchmark application categories have been derived
QoS assessment and optimization
Design-time exploration is supported by SPACE4Cloud (System Performance and Cost Evaluation on Cloud), a multi-platform open-source application for the specification, assessment and optimization of QoS properties of cloud applications. In particular, this tool allows software architects to describe, analyze and optimize cloud applications following the Model-Driven Development approach. The modeling language supported by SPACE4Cloud is MODACloudsML [5], which has been devised to describe cloud
Experimental analysis
In the following sections, we provide an in-depth description of a case study based on the HTTPAgent application as well as on the achieved results for its optimal design. Section 6.2 reports the results of our benchmarking activity, while Section 6.3 presents the profiling process that has been followed in order to obtain HTTPAgent and benchmark profiles. In Section 6.4 the classification process of HTTPAgent is described, providing the optimal cloud service solutions for different workload
Related work
Our work is related mainly with four research areas: cloud benchmarking, cloud applications performance assessment, application performance prediction on cloud and cloud applications design space exploration. With relation to benchmarking of cloud services, CloudHarmony [28] and CloudSleuth [29] are performance measurement tools that archive the test results and make them available for access through a web API. The former offers a vast number of customizable benchmarks and provides various
Conclusions
Understanding how an arbitrary application component uses the compute resources is critical for its migration to cloud environments. Furthermore, the ability to measure cloud services on a variety of different application types enabled us to abstract the process of service measurement and selection, avoiding repeating such analysis for each and every individual application component one needs to deploy. However, the optimal selection for a specific application deployment of an application to be
Acknowledgments
The research leading to these results is partially supported by the European Community Seventh Framework Programme (FP7/2007–2013) under grant agreement n. 317859, in the context of the ARTIST Project and under grant agreement n. 318484 in the context of the MODACLOUDS project.
Athanasia Evangelinou received her diploma in Electrical and Computer Engineering from the National Technical University of Athens (NTUA), Greece in 2012. She received her M.Sc. in Network-Oriented Information Systems from the Dept. of Digital Systems of the University of Piraeus, Greece in 2014. Currently she is a Ph.D. candidate at the Distributed Knowledge and Media Systems group of the School of Electrical and Computer Engineering (NTUA). Her research interests are in the area of Cloud
References (41)
- Gartner Group. Hype Cycle for Cloud Computing, https://www.gartner.com/doc/2807621/hype-cycle-cloud-computing-,...
- et al.
PerOpteryx: Automated application of tactics in multi-objective software architecture optimization
- G. Kousiouris, G. Giammatteo, A. Evangelinou, N. Galante, E. Kevani, C. Stampoltas, A. Menychtas, A. Kopaneli, K....
- G. Kousiouris, A. Evangelinou, D7.1- Definition and extension of performance stereotypes,...
- et al.
Towards model-driven provisioning, deployment, monitoring, and adaptation of multi-cloud systems
- et al.
Space4cloud: a tool for system performance and cost evaluation of cloud systems
- M.A. Almeida da Silva, D. Ardagna, N. Ferry, J.F. Pérez, Model-Driven Design of Cloud Applications with...
- et al.
The palladio component model for model-driven performance prediction
J. Syst. Softw.
(2009) - et al.
The method of layers
IEEE Trans. Softw. Eng.
(1995) - J. Perez, G. Casale, Assessing SLA compliance from palladio component models. in: SYNASC 2013 Proc., Sept 2013, pp....
Enhanced modeling and solution of layered queueing networks
IEEE Trans. Softw. Eng.
Tabu search: part i
ORSA J. Comput.
Blending randomness in closed queueing network models
Perform. Eval.
Adaptive service composition in flexible processes
IEEE Trans. Softw. Eng.
Benchmarking cloud serving systems with YCSB
Cited by (13)
A predictive approach for the efficient distribution of agent-based systems on a hybrid-cloud
2018, Future Generation Computer SystemsCitation Excerpt :In MAS, we consider the agent as the deeper level of detail in the deployment process. Compared to the defined granularities in [20,29–31,31] an agent is an active autonomous and continuously running entity that can be goal-oriented, mobile, communicative and flexible, to name a few. Such characteristics make the MAS different from the rest of the above applications types in the sense that:
Cloud forward: From distributed to complete computing
2018, Future Generation Computer SystemsAn integrated information lifecycle management framework for exploiting social network data to identify dynamic large crowd concentration events in smart cities applications
2018, Future Generation Computer SystemsCitation Excerpt :Alternatively relevant pre-calculations may take place, but given that there is no fixed time on the implementation of the user journey, this should be performed for practically every possible timeslot. For speeding up the calculation of the thresholds, sizing/modeling techniques (e.g. similar to the ones in [38,39]) could be used in order to investigate the resource needs of the specific subsystem. Following the analysis of the previous paragraphs, we can identify the list of protocols that the middleware logic needs to support per case/component and cooperation (Table 1).
Performance Experiences From Running An E-health Inference Process As FaaS Across Diverse Clusters
2023, ICPE 2023 - Companion of the 2023 ACM/SPEC International Conference on Performance EngineeringUtility of Univariate Forecasting for Workload Metrics Predictions in Enterprise Applications
2023, International Joint Conference on Knowledge Discovery, Knowledge Engineering and Knowledge Management, IC3K - ProceedingsArchitectural Design of Cloud Applications: A Performance-Aware Cost Minimization Approach
2022, IEEE Transactions on Cloud Computing
Athanasia Evangelinou received her diploma in Electrical and Computer Engineering from the National Technical University of Athens (NTUA), Greece in 2012. She received her M.Sc. in Network-Oriented Information Systems from the Dept. of Digital Systems of the University of Piraeus, Greece in 2014. Currently she is a Ph.D. candidate at the Distributed Knowledge and Media Systems group of the School of Electrical and Computer Engineering (NTUA). Her research interests are in the area of Cloud Computing with emphasis on Cloud Performance analysis, Benchmarking and Optimization.
Michele Ciavotta received the Ph.D. degree in Automation and Computer Science from Roma Tre, Italy in 2008. From 2012 he is Post doctoral Researcher at the Dipartimento di Elettronica Informazione and Bioingegneria at Politecnico di Milano. His research work focus on modeling and optimization of complex real-life problems mainly arising in the fields scheduling and planning, and more recently resource management for cloud-based and data intensive systems under constraints of quality of service.
Danilo Ardagna is an Associate Professor at the Dipartimento di Elettronica Informazione and Bioingegneria at Politecnico di Milano. He received a Ph.D. degree in computer engineering in 2004 from Politecnico di Milano, from which he also graduated in December 2000. His work focuses on the design, prototype and evaluation of optimization algorithms for resource management and planning of cloud systems.
Aliki Kopaneli received her diploma in Electrical and Computer Engineering from the National Technical University of Athens, Greece in 2012. She is a Ph.D. candidate at the Distributed Knowledge and Media Systems group of the School of Electrical and Computer Engineering (NTUA). Her research interests include Cloud Computing, Cloud Modeling, and Cloud Optimization. Currently she works as a software developer.
George Kousiouris received his diploma in Electrical and Computer Engineering from the University of Patras, Greece in 2005 and his Ph.D. in Grid and Cloud computing from the Dept. of Electrical and Computer Engineering of the National Technical University of Athens in March 2012. Currently he is a post doctoral researcher for the Institute of Communication and Computer Systems (ICCS) of NTUA. His interests are mainly computational intelligence, Cloud computing, Service Level Agreements, Optimization, Artificial Intelligence and Web Services.
Theodora A. Varvarigou is a full professor in the School of Electrical and Computer Engineering at the National Technical University of Athens. Her research interests include Semantic Web technologies, scheduling over distributed platforms, embedded systems, and cloud computing. Varvarigou received a Ph.D. in computer science from Stanford University.