Samuel Kounev, University of Würzburg, Würzburg, Germany
Associate Editor: Zhen Ming (Jack) Jiang, York University, Toronto, Canada
Associate Editor: Zhen Ming (Jack) Jiang, York University, Toronto, Canada
Modern
software systems have increasingly distributed architectures composed of
loosely-coupled services that are typically deployed on virtualized
infrastructures. Such system architectures provide increased flexibility by
abstracting from the physical infrastructure, which can be leveraged to improve
system efficiency. However, these benefits come at the cost of higher system
complexity and dynamics. The inherent semantic gap between application-level
metrics, on the one hand, and resource allocations at the physical and virtual
layers, on the other hand, significantly increase the complexity of managing
end-to-end application performance.
To
address this challenge, techniques for online performance prediction are
needed. Such techniques should make it possible to continuously predict at
runtime: a) changes in the application workloads [3], b) the effect of such
changes on the system performance, and c) the expected impact of system
adaptation actions [1]. Online performance prediction can be leveraged to
design systems that proactively adapt to changing operating conditions, thus
enabling what we refer to as self-aware performance and resource management
[4, 7]. Existing approaches to performance and resource management in
the research community are mostly based on coarse-grained performance models
that typically abstract systems and applications at a high-level (e.g., [2, 5, 8]).
Such models do not explicitly model the software architecture and execution
environment, distinguishing performance-relevant behavior at the virtualization
level vs. at the level of applications hosted inside the running VMs. Thus, their
online prediction capabilities are limited and do not support complex scenarios
such as predicting how changes in application workloads propagate
through the layers and tiers of the system architecture down to the physical resource
layer, or predicting the effect on the response times of different services, if
a VM in a given application tier is to be replicated or migrated to another
host, possibly of a different type.
To
enable online performance prediction in scenarios such as the above, architecture-level
modeling techniques are needed, specifically designed for use in online settings.
The Descartes Modeling Language (DML) provides such a language for performance
and resource management of modern dynamic IT systems and infrastructures. DML
is designed to serve as a basis for self-aware systems management during
operation, ensuring that system performance requirements are continuously
satisfied while infrastructure resources are utilized as efficiently as
possible. DML provides appropriate modeling abstractions to describe the
resource landscape, the application architecture, the adaptation space, and the
adaptation processes of a software system and its IT infrastructure [1, 4, 6]. An
overview of the different constituent parts of DML and how they can be
leveraged to enable online performance prediction and proactive model-based
system adaptation can be found in [6]. A set of related tools and libraries are
available from the DML website at: http://descartes.tools/dml.
References
[1]
F. Brosig, N. Huber, and S. Kounev. Architecture-Level Software Performance
Abstractions for Online Performance Prediction. Elsevier Science of Computer
Programming Journal (SciCo), Vol. 90, Part B:71–92, 2014.
[2]
I. Cunha, J Almeida, V. Almeida, and M. Santos. Self-Adaptive Capacity
Management for Multi-Tier Virtualized Environments. In IFIP/IEEE Int. Symposium
on Integrated Network Management, pages 129–138, 2007.
[3]
N. Herbst, N. Huber, S. Kounev, and E. Amrehn. Self-Adaptive Workload
Classification and Forecasting for Proactive Resource Provisioning. Concurrency
and Computation - Practice and Experience, John Wiley and Sons,
26(12):2053–2078, 2014.
[4]
N. Huber, A. van Hoorn, A. Koziolek, F. Brosig, and S. Kounev. Modeling
Run-Time Adaptation at the System Architecture Level in Dynamic
Service-Oriented Environments.
Service Oriented Computing and Applications Journal, 8(1):73–89, 2014.
[5]
G. Jung, M.A. Hiltunen, K.R. Joshi, R.D. Schlichting, and C. Pu. Mistral: Dynamically
Managing Power, Performance, and Adaptation Cost in Cloud Infrastructures.
In IEEE Int. Conf. on Distributed Computing Systems, pages 62 –73, 2010.
[6]
S. Kounev, N. Huber, F. Brosig, and X. Zhu. Model-Based Approach to Designing
Self-Aware IT Systems and Infrastructures. IEEE Computer Magazine,
2016, IEEE. To appear. http://se2.informatik.uni-wuerzburg.de/pa/uploads/papers/paper-926.pdf
[7]
S. Kounev, X. Zhu, J. O. Kephart, and M. Kwiatkowska, editors. Model-driven
Algorithms and Architectures for Self-Aware Computing Systems. Dagstuhl
Reports. Dagstuhl, Germany, January 2015. http://drops.dagstuhl.de/opus/volltexte/2015/5038/
[8]
Qi Zhang, Ludmila Cherkasova, and Evgenia Smirni. A Regression-Based Analytic Model
for Dynamic Resource Provisioning of Multi-Tier Applications. In Proceedings of
the 4th International Conference on Autonomic Computing, 2007.
If you like this article, you might also enjoy reading:
- A. Avritzer, J. P. Ros and E. J. Weyuker, "Reliability testing of rule-based systems," IEEE Software, vol. 13, no. 5, pp. 76-82, Sep 1996.
- E. Dimitrov, A. Schmietendorf, R. Dumke, "UML-Based Performance Engineering Possibilities and Techniques”, IEEE Software, vol. 19, no. 1, pp. 74-83, Jan-Feb, 2002.
- J. Happe, H. Koziolek and R. Reussner, "Facilitating Performance Predictions Using Software Components," in IEEE Software, vol. 28, no. 3, pp. 27-33, May-June 2011.
thanks
ReplyDelete