Σκοπός αυτής της διπλωματικής εργασίας είναι η διερεύνηση και μελέτη διαφόρων τεχνικών με τις οποίες μπορούμε να αναγνωρίσουμε τις απαιτήσεις μιας υπολογιστικής εργασίας, ώστε να την εντάξουμε κατά τρόπο βέλτιστο σε ένα υπάρχον υπολογιστικό νέφος. Το νέφος αυτό θεωρούμε ότι διαθέτει ετερογενή συστήματα, στα οποία ήδη λειτουργούν άλλες εργασίες, που καταναλώνουν μέρος των διαθέσιμων πόρων. Οι τεχνικές που μελετούμε προσπαθούν να εξασφαλίσουν για την εργασία ότι θα δρομολογηθεί σε ένα τμήμα του υπολογιστικού νέφους που θα είναι επαρκές να καλύψει τις απαιτήσεις της εργασίας, χωρίς δυσμενή επίπτωση στη λειτουργία της, ενώ ταυτόχρονα να εξασφαλίσουν για το υπολογιστικό νέφος ότι η εργασία θα ανατεθεί με τρόπο που θα μεγιστοποιεί την εξοικονόμηση πόρων.
Η λεπτή αυτή ισορροπία απαιτεί, όχι μόνον να εξεταστούν οι απαιτήσεις της εργασίας σε σχέση με τους υπολογιστικούς πόρους που είναι διαθέσιμοι, αλλά να ληφθεί υπόψη και η συμπεριφορά της εργασίας σε σχέση με άλλες εργασίες που ήδη εκτελούνται στο ίδιο υπολογιστικό νέφος και μπορεί να της προκαλέσουν παρεμβολές. Επομένως, πριν την αναζήτηση και δέσμευση υπολογιστικών πόρων, πρέπει να προηγηθεί ένα βήμα αξιολόγησης της εργασίας και των απαιτήσεών της κάτω από διάφορες συνθήκες λειτουργίας. Η αξιολόγηση αυτή μπορεί να γίνει από το ίδιο το σύστημα που διαχειρίζεται τους εικονικούς πόρους, ή από άλλο σύστημα που διενεργεί ανεξάρτητους ελέγχους, πριν τροφοδοτήσει το σύστημα διαχείρισης του νέφους. Για αυτό ακριβώς το βήμα αξιολόγησης, εξετάζουμε διάφορες τεχνικές που έχουν προταθεί, αξιολογούμε την επάρκεια και αποτελεσματικότητά τους, μελετούμε το κόστος λειτουργίας τους και τις συγκρίνουμε ως προς το πραγματικό τους όφελος, τόσο για την απαίτηση (υπολογιστική εργασία) όσο και για το σύστημα εξυπηρέτησης της απαίτησης (υπολογιστικό νέφος).
The purpose of this thesis is to investigate and study various techniques by which we can recognize the demands of a computational workload, in order to integrate it optimally into an existing cloud computing infrastructure. We assume that the cloud consists of heterogeneous systems, in which other workloads are already operating and consuming part of the available resources. The techniques under study are intended to ensure that the workload will be assigned to an appropriate section of the cloud computing infrastructure, capable of meeting its requirements, in a manner that will optimize the use of resources and maximize cost savings for the cloud infrastructure.
This delicate balance requires us to examine the demands of a workload against all available resources, while also considering the interference of other workloads already being executed within the same cloud infrastructure. Therefore, before we commit any resources, we need to perform an initial step of classifying the workload. This classification can be performed by the system responsible for managing the cloud’s resources, or by a separate system, committed to profiling and scheduling the incoming workloads. For this step we consider various proposed techniques, we evaluate their adequacy and effectiveness, we study their cost and finally we compare them, in order to understand the benefits they offer to the workload itself and to the cloud environment.