Χρονοδρομολόγηση εργασιών σε περιβάλλοντα υπολογιστικών νεφών
Creators: name: Τυχάλας, Δημήτριος Γ.
Publisher: name: Aristotle University of Thessaloniki
Year: 2021
Subjects: Υπολογιστικό Νέφος
Υψηλή Διαθεσιμότητα
Εξισορρόπηση φόρτου
Προσομοίωση
Cloud Computing
High Availability
Load Balancing
Simulation

description: Στη σημερινή εποχή τα σύνθετα προβλήματα που τίθενται και πρέπει να επιλύσουν οι εφαρμογές αυξάνουν εκθετικά τις ανάγκες για υπολογιστικούς πόρους. Τα συστήματα Υπολογιστικών Νεφών τις τελευταίες δεκαετίες γίνονται ολοένα και πιο συχνά η επικρατέστερη επιλογή από εταιρείες και οργανισμούς. Αυτό οφείλεται κυρίως στους θεωρητικά άπειρους υπολογιστικούς πόρους που έχει ένα τέτοιο σύστημα, στην άμεση πρόσβαση από οπουδήποτε, την ανοχή σε σφάλματα καθώς και τις δυνατότητες επεκτασιμότητας. Αυτή η άνοδος των Υπολογιστικών Νεφών έχει οδηγήσει τους παρόχους να προσφέρουν ολοένα και περισσότερους υπολογιστικούς πόρους προς τους τελικούς χρήστες καθώς κι εξεζητημένες λύσεις για να καλύψουν κάθε ανάγκη: από αποθήκευση και επεξεργασία δεδομένων σε συνδυαστική χρήση πολλαπλών υπολογιστικών πόρων. Επιπλέον οι ανάγκες για αποφυγή αυξημένης κίνησης δικτύου, μείωση του χρόνου μεταφόρτωσης εργασιών καθώς κι εκμετάλλευσης κάθε υπολογιστικού πόρου έχει οδηγήσει στην εφεύρεση νέων παραδειγμάτων όπως η Υπολογιστική Ομίχλη, η Υπολογιστική Ζούγκλα αλλά και σε νέα αρχιτεκτονική ανάπτυξης εφαρμογών, τις Μικρουπηρεσίες. Τα συστήματα Υπολογιστικών Νεφών "χτίστηκαν" πάνω σε τεχνολογίες εικονικοποίησης και μέχρι σήμερα είναι άρρηκτα συνδεδεμένα με αυτές. Υπάρχει μια πληθώρα από τεχνολογίες εικονικοποίησης οι οποίες προσφέρουν την δυνατότητα ταυτόχρονης χρήσης των υπολογιστικών πόρων από πολλαπλούς χρήστες εξισορροπώντας τον φόρτο εργασιών και μειώνοντας την κατανάλωση ενέργειας. Για την επίτευξη των παραπάνω δημιουργήθηκαν οι Εικονικές Μηχανές οι οποίες προσφέρουν ένα εικονικό σύστημα προς τον τελικό χρήστη το οποίο βασίζεται σε ένα πραγματικό. Το σημαντικότερο όφελος της παραπάνω υλοποίησης είναι η ταυτόχρονη χρήση των υπολογιστικών πόρων χωρίς την ανάγκη εξεζητημένων γνώσεων από τον τελικό χρήστη, καθώς για αυτόν είναι "ένα" σύστημα. Το μεγαλύτερο μειονέκτημα μιας Εικονικής Μηχανής είναι ο μεγάλος χρόνος εκκίνησης. Λύση σε αυτό το πρόβλημα δόθηκε από μια ελαφρύτερη τεχνολογία εικονικοποίησης, τα Containers. Το βασικό χαρακτηριστικό τους είναι ότι κάνουν χρήση του λειτουργικού συστήματος που έχει το πραγματικό σύστημα και ταυτόχρονα παραμένουν απομονωμένα, προσφέροντας καλύτερη χρησιμοποίηση των διαθέσιμων πόρων και μειωμένους χρόνους εκκίνησης. Από τα παραπάνω γίνεται αντιληπτό ότι υπάρχει η ανάγκη για καλύτερους και πιο ευέλικτους αλγόριθμους χρονοδρομολογήσης οι οποίοι πρέπει να μπορούν να προσαρμόζονται στην μεγάλη ετερογένεια των διαθέσιμων υπολογιστικών πόρων. Στόχος της διατριβής είναι να γίνει ανάλυση κι επέκταση των διαθέσιμων αλγορίθμων ώστε να εξερευνηθεί η δυνατότητα προσαρμογής τους σε τέτοια πολύπλοκα συστήματα με στόχο την εξισορρόπηση φόρτου εργασιών καθώς και τη μείωση κόστους. Τα συστήματα τα οποία μοντελοποιούνται αποτελούνται από υπολογιστικούς πόρους με μεγάλη ανομοιογένεια και γίνεται χρήση απλών εργασιών αλλά και εργασιών τύπου Σάκος-από-Διεργασίες. Πέραν αυτού εξετάζονται τα παραδείγματα Υπολογιστικής Ομίχλης, Υπολογιστικής Ζούγκλας καθώς και Υπολογιστικά Συστήματα Υβριδικών Νεφών. Για όλες τις περιπτώσεις γίνεται σύγκριση με υπάρχουσες μεθοδολογίες που είναι ευρέως διαδεδομένες. Συνοψίζοντας, η προσφορά της παρούσας διατριβής βρίσκεται στην ανάπτυξη μεθοδολογιών χρονοδρομολόγησης εργασιών σε περιβάλλοντα Υπολογιστικών Νεφών για διάφορους τύπους εργασιών, είτε απλών, είτε σύνθετων. Η απόδοση αυτών των μεθοδολογιών γίνεται τόσο σε πραγματικά συστήματα όσο, κυρίως, και σε μοντέλα πολύπλοκων ετερογενών συστημάτων με την χρήση προσομοίωσης.
description: In today's world, the complex problems that applications have to solve, have exponentially increase the need for computing resources. Cloud computing systems in recent decades have increasingly become the predominant choice by companies and organizations. This is mainly due to the theoretically infinite computing resources that such a system has, direct access from anywhere, fault tolerance and scalability. This rise of Cloud Computing has led providers to offer more and more computing resources to end users as well as sophisticated solutions to meet every need: from data storage and processing to the combined use of multiple computing resources. In addition, the need to avoid increased network traffic and to reduce the time required to upload jobs has led to the invention of new paradigms such as the Fog Computing, the Jungle Computing and a new application development architecture, Microservices. Cloud computing systems were built on top of virtualisation technologies and to this day are inextricably linked to them. There is a plethora of virtualisation technologies that offer the possibility of simultaneous use of computing resources by multiple users, balancing workloads and reducing energy consumption. To achieve the above, Virtual Machines were created. The major benefit of the above implementation is simultaneous use of computing resources without the need for sophisticated knowledge from the end user, since from her view it is "one" big system. The biggest disadvantage of a Virtual Machine is the long start-up time. A solution to this problem was provided by a lighter virtualization technology, Containers. Their key feature is that they make use of the operating system of the real system while they remain isolated, offering better utilization of available resources and reduced boot times. From the above it can be seen that there is a need for better and more flexible scheduling algorithms that can adapt to the large heterogeneity of available computing resources. The aim of this thesis is to analyze and expand the available algorithms, exploring their adaptability to such complex systems in order to balance workload and reduce costs. The systems which are modelled consist of computational resources with a high degree of heterogeneity. Moreover simple jobs and Bag-of-Tasks jobs are used. In addition to this, the examples of Fog Computing, Jungle Computing as well as Hybrid Cloud Computing Systems are considered. For all cases a comparison is made with existing methodologies that are widely used. In summary, the contribution of this thesis lies in the development of task scheduling methodologies in Cloud Computing environments for various types of jobs, either simple or complex. The performance of these methodologies is performed both on real systems and, more importantly, on models of complex heterogeneous systems using simulation.