Σήμερα, το υπολογιστικό νέφος αναδύεται ως ένα ιδιαίτερα δημοφιλές μοντέλο και αναπτύσσεται σαν μία ενδιαφέρουσα νέα τεχνική κι επιχειρηματική λύση. Ανάμεσα στα κυριότερα χαρακτηριστικά του βρίσκεται η ελαστικότητα, η οποία του δίνει τη δυνατότητα να παρέχει ένα δυναμικό περιβάλλον διάθεσης υπηρεσιών. Αυτό το ελαστικό περιβάλλον δίνει τη δυνατότητα σε μία εφαρμογή να προσαρμόζει αυτόματα τους υπολογιστικούς πόρους που χρησιμοποιεί, ανάλογα με φόρτο εργασίας και τις προτεραιότητες που έχουν τεθεί.
Ανάμεσα στους διάφορους παρόχους υπολογιστικού νέφους, η υλοποίηση της ελαστικότητας γίνεται με ποικίλλους τρόπους. Μία προσέγγιση βασίζεται στον ορισμό κανόνων από τον πάροχο της πλατφόρμας, ενώ μία άλλη προβλέπει στατικά τους απαιτούμενους πόρους, ώστε να προσδιορίσει το μέσο φόρτο του συστήματος, κι εν συνεχεία ορίζει κανόνες. Ιδιαίτερο ενδιαφέρον παρουσιάζει η προσέγγιση παροχής της ελαστικότητας ως υπηρεσία (\lat{Elasticity-as-a-Service}), δίνοντας τη δυνατότητα στους παρόχους να ορίζουν παραμέτρους ελαστικότητας που διαφέρουν από εφαρμογή σε εφαρμογή.
Έτσι, σκοπός αυτής της διπλωματικής εργασίας είναι η ανάπτυξη μιας πλατφόρμας υπολογιστικού νέφους, η οποία διαχειρίζεται αυτόματα την κλιμάκωση των υπολογιστικών πόρων διαδικτυακών εφαρμογών, εγκατεστημένες σε περιβάλλον υπολογιστικού νέφους. Η κλιμάκωση γίνεται με βάση διάφορες παραμέτρους που ορίζει ο πάροχος της κάθε εφαρμογής-υπηρεσίας και με τη βοήθεια αλγορίθμoυ βασισμένου σε κανόνες.
Cloud computing has recently emerged as a new paradigm for hosting and delivering services over the Internet and the general interest on clouds as a technical and business solution is growing. Elasticity stands as one of the fundamental features of clouds, providing a dynamic environment of services. This elastic environment gives an application the ability to automatically adjust the infrastructure
resources it uses, to accommodate varied workloads and priorities.
The implementation of the elasticity mechanism differs among the various cloud providers. One approach is based on rule criteria, defined by the application provider, while another provisions application resources statically in order to identify the ordinary traffic load and then it specifies rules. There is special interest in an innovative approach that implements elasticity as a SaaS application, which allows an application provider define some application-specific resource requirements and required QoS.
Thus, the main purpose of this thesis project is the development of a cloud platform, that automatically scales the resources of web applications deployed in a cloud computing environment. This is achieved taking into account the parameters given by the provider of each application and uses a rule-based algorithm.