Τα Υπολογιστικά Νέφη αποτελούν σήμερα ένα σημαντικό μοντέλο υπηρεσιών υποδομής που συμπληρώνουν, και σε κάποιες περιπτώσεις αντικαθιστούν, τα παραδοσιακά Κέντρα Δεδομένων στην παροχή πόρων σε κατανεμημένες εφαρμογές μεγάλης κλίμακας. Ωστόσο, ο μεγάλος αριθμός παρόχων υπηρεσιών Υπολογιστικού Νέφους και η ετερογένεια στους πόρους που παρέχουν συνιστούν μια πρόκληση για τις εφαρμογές. Ένας τρόπος να αντιμετωπιστεί αυτή η πρόκληση είναι η συστηματική μελέτη και κατηγοριοποίηση των πόρων Υπολογιστικού Νέφους σε κλάσεις απόδοσης ανεξάρτητες του παρόχου. Ταυτόχρονα, η ανάλυση του ιστορικού εγκατάστασης και εκτέλεσης κατανεμημένων εφαρμογών σε ετερογενή περιβάλλοντα Νέφους μπορεί να βοηθήσει σημαντικά τους μηχανικούς λογισμικού να κατανοήσουν τις σχέσεις κόστους - ωφέλειας σε αυτά τα περιβάλλοντα.
Στην εργασία αυτή παρουσιάζουμε μια αρχιτεκτονική για τη μοντελοποίηση, συλλογή και αξιολόγηση μακρόχρονων ιστορικών εκτέλεσης κατανεμημένων και πολυεπίπεδων (multi-tier) εφαρμογών σε πολλαπλά Υπολογιστικά Νέφη. Ο σκοπός μας είναι η καταγραφή της εγκατάστασης και εξέλιξης της εφαρμογής, συμπεριλαμβανομένων των απαιτήσεων και στόχων, της παρακολούθησης (monitoring) και του ελέγχου κατά την εκτέλεση, και τέλος των χαρακτηριστικών των παρόχων. Ταυτόχρονα, η κατηγοριοποίηση πόρων ανεξαρτήτως παρόχου βάσει συστηματικών μετρήσεων αποτελεί σημαντικό παράγοντα για την επιλογή της εγκατάστασης σύνθετων εφαρμογών μεγάλης κλίμακας σε πολλαπλά Υπολογιστικά Νέφη. Παρουσιάζουμε ένα σχεσιακό μοντέλο μεταδεδομένων που ενοποιεί την παραπάνω πληροφορία. Χρησιμοποιώντας αυτό το μοντέλο για τη συλλογή δεδομένων από διαφορετικές εγκαταστάσεις και εκτελέσεις της εφαρμογής (μελετώντας ως παράδειγμα την εφαρμογή-benchmark SPEC jEnterprise2010) υποδεικνύουμε πως μπορούν να απαντηθούν σημαντικά ερωτήματα που αφορούν την εύρεση του καλύτερου τρόπου εγκατάστασης της εφαρμογής με κριτήριο την απόδοση, το κόστος, και την επίτευξη των στόχων ή συνδυασμούς των προηγουμένων. Ως παράδειγμα της ανάλυσής μας, η συστηματική μελέτη διαφορετικών συνδιασμών εγκατάστασης του SPEC jEnterprise2010 μπορεί να υποδείξει τον πιο οικονομικό τρόπο εγκατάστασης της εφαρμογής, επιφέρωντας εξοικονόμηση $2.100 ετησίως χωρίς να επηρεάζονται οι στόχοι απόδοσης.
(EL)
Cloud computing has recently become an important model of infrastructural
services that complements, and in some cases replaces, traditional data
centers in providing distributed applications with the resources they need to
serve Internet-scale workloads. The multitude of Cloud providers offering
infrastructural services today raise the challenge of heterogeneity in the resources
available to applications. An application developer is thus faced with
the problem of choosing an appropriate set of Cloud providers and resources
to support their application. One way to address this problem is to establish
a Cloud-independent classification of Cloud resources and to systematically
explore a large collection of past execution histories of real deployments of
applications.
In this thesis we present an architecture for the modeling, collection,
and evaluation of long-term histories of deployments of distributed multitier
applications on federations of Clouds (Multi-Clouds). Our goal is to
capture several aspects of application development and deployment lifecycle,
including the evolving application structure, requirements, goals, and
service-level objectives; application deployment descriptions; runtime monitoring,
and quality control; Cloud provider characteristics; and to provide a
Cloud-independent resource classification scheme that is a key to reasoning
about Multi-Cloud deployments of complex large-scale applications. Since
our target is to capture the continuous evolution of applications and their
deployments over time, we ensure that our metadata model is designed to
optimize space usage. Additionally, we demonstrate that using the model
and data collections over varying deployments of an application (using the
SPEC jEnterprise2010 distributed benchmark as a case study) one can answer
important questions about which deployment options work best in terms
of performance, reliability, cost, and combinations thereof. As an example,
our analysis can pinpoint the most cost-effective among a dozen deployments
of an application leading to savings of $2,100 per year without impacting its
service-level objectives.
(EN)