Περίληψη
Η μέθοδος του containerization έχει αναδειχθεί ως το κυρίαρχο παράδειγμα για την ανάπτυξη microservices σε σύγχρονα κατανεμημένα υπολογιστικά περιβάλλοντα, μετασχηματίζοντας τον τρόπο με τον οποίο οι εφαρμογές πακετάρονται, διανέμονται και διαχειρίζονται. Με την ενθυλάκωση των εφαρμογών και των εξαρτήσεών τους σε ελαφριά και φορητά containers, οι προγραμματιστές μπορούν να διασφαλίσουν σταθερή απόδοση σε ένα ευρύ φάσμα πλατφορμών και υποδομών. Από τις τεχνολογίες που υποστηρίζουν αυτές τις λειτουργίες, ξεχωρίζουν το Docker και το Kubernetes που έχουν καθιερωθεί ως οι πλέον ευρέως χρησιμοποιούμενες πλατφόρμες, αποτελώντας το θεμέλιο των σύγχρονων πρακτικών DevOps και των cloud-native οικοσυστημάτων. Παρά τη δημοτικότητά τους, κάθε πλατφόρμα εισάγει τη δική της domain-specific language (DSL), σύνταξη ρυθμίσεων και εννοιολογικό μοντέλο για τον ορισμό σχεδίων ανάπτυξης. Αυτές οι διαφορές συχνά δημιουργούν προκλήσεις για προγραμματιστές, αρχιτέκτονες συστημάτων και ερευνητές που επιδιώκουν ...
Η μέθοδος του containerization έχει αναδειχθεί ως το κυρίαρχο παράδειγμα για την ανάπτυξη microservices σε σύγχρονα κατανεμημένα υπολογιστικά περιβάλλοντα, μετασχηματίζοντας τον τρόπο με τον οποίο οι εφαρμογές πακετάρονται, διανέμονται και διαχειρίζονται. Με την ενθυλάκωση των εφαρμογών και των εξαρτήσεών τους σε ελαφριά και φορητά containers, οι προγραμματιστές μπορούν να διασφαλίσουν σταθερή απόδοση σε ένα ευρύ φάσμα πλατφορμών και υποδομών. Από τις τεχνολογίες που υποστηρίζουν αυτές τις λειτουργίες, ξεχωρίζουν το Docker και το Kubernetes που έχουν καθιερωθεί ως οι πλέον ευρέως χρησιμοποιούμενες πλατφόρμες, αποτελώντας το θεμέλιο των σύγχρονων πρακτικών DevOps και των cloud-native οικοσυστημάτων. Παρά τη δημοτικότητά τους, κάθε πλατφόρμα εισάγει τη δική της domain-specific language (DSL), σύνταξη ρυθμίσεων και εννοιολογικό μοντέλο για τον ορισμό σχεδίων ανάπτυξης. Αυτές οι διαφορές συχνά δημιουργούν προκλήσεις για προγραμματιστές, αρχιτέκτονες συστημάτων και ερευνητές που επιδιώκουν να σχεδιάσουν, να αναπτύξουν και να διαχειριστούν containerized εφαρμογές με συνεπή και διαλειτουργικό τρόπο σε ετερογενή περιβάλλοντα.Για την αντιμετώπιση αυτών των προκλήσεων, η παρούσα διατριβή εισάγει την οντολογία που ονομάζεται Containerized Application Deployment Ontology (CADO). Η CADO είναι μια οντολογία που αναπτύχθηκε με τη χρήση της Web Ontology Language (OWL) και προσφέρει μια τυπική αναπαράσταση των βασικών εννοιών, σχέσεων και ορολογιών που χρησιμοποιούνται σε μοντέλα containerized ανάπτυξης. Δημιουργεί ένα κοινό σημασιολογικό θεμέλιο που ενοποιεί τα λεξιλόγια ανάπτυξης των Docker και Kubernetes, επιτρέποντας υψηλότερο επίπεδο διαλειτουργικότητας και μειώνοντας την ασάφεια σχετικά με τον τρόπο με τον οποίο ορίζονται και ερμηνεύονται οι δομές ανάπτυξης. Μέσω αυτής της σημασιολογικής ενοποίησης, η CADO διευκολύνει τον αυτοματισμό, τη λογική εξαγωγή συμπερασμάτων και τη διαμοίραση γνώσης εντός του ευρύτερου οικοσυστήματος της containerization.Βασιζόμενη σε αυτό το θεμέλιο, η διατριβή παρουσιάζει επίσης την γλώσσα που ονομάζεται Cloud Edge Application Modeling Language (CEAML), η οποία αποτελεί μια τεχνολογικά ουδέτερη γλώσσα μοντελοποίησης εμπνευσμένη από το ανοιχτό πρότυπο Topology and Orchestration Specification for Cloud Applications (TOSCA). Η CEAML παρέχει ένα ενοποιημένο πλαίσιο για την περιγραφή, ενορχήστρωση και διαχείριση microservices σε ολόκληρο το cloud–edge continuum. Σχεδιάστηκε ώστε να υποστηρίζει τη συνεχώς αυξανόμενη ανάγκη για κατανεμημένη νοημοσύνη, επεκτασιμότητα και βελτιστοποίηση πόρων τόσο στο άκρο του δικτύου όσο και στο σύννεφο. Η σύνταξη και η δομή της CEAML βασίζονται σε σύγχρονες γλώσσες μοντελοποίησης cloud καθώς και στους τυπικούς ορισμούς που καθορίζονται μέσω της οντολογίας CADO. Μαζί, αυτές οι δύο συνεισφορές προσφέρουν μια ολοκληρωμένη λύση για τη γεφύρωση του εννοιολογικού χάσματος μεταξύ ετερογενών τεχνολογιών containers και για την προώθηση της μοντελοποίησης των αναπτύξεων microservices σε υβριδικά υπολογιστικά περιβάλλοντα.Για να αποδειχθεί η πρακτική εφαρμοσιμότητα, υλοποιήθηκε ένας interpreter που μεταφράζει προδιαγραφές CEAML σε αρχεία ανάπτυξης Kubernetes, λειτουργώντας ως proof of concept για τεχνολογικά ουδέτερη ορχήστρωση. Η υλοποίηση αυτή δείχνει επιπλέον πώς μελλοντικοί interpreters θα μπορούσαν να επεκταθούν ώστε να υποστηρίζουν πρόσθετα container DSLs, ενσωματωμένοι σε ένα DevOps tool που βασίζεται στο strategy pattern. Τέλος, η CEAML αξιολογείται μέσω δύο πραγματικών πλατφορμών, συνοδευόμενη από έναν μηχανισμό παρακολούθησης ικανό να παρατηρεί φυσικές μηχανές, εικονικές μηχανές και containers. Ο μηχανισμός αυτός υποστηρίζει τους orchestrators στη λήψη τεκμηριωμένων αποφάσεων ανάπτυξης και διαχείρισης, επιβεβαιώνοντας έτσι την πρακτική αποτελεσματικότητα της CEAML σε περιβάλλοντα cloud–edge.
περισσότερα
Περίληψη σε άλλη γλώσσα
Containerization has emerged as the predominant paradigm for deploying microservices in modern distributed computing environments, transforming the way applications are packaged, distributed, and managed. By encapsulating applications and their dependencies into lightweight and portable containers, developers can ensure consistent performance across a wide range of platforms and infrastructures. Among the various technologies that support this paradigm, Docker and Kubernetes have become the most widely adopted platforms, forming the foundation of contemporary DevOps practices and cloud-native ecosystems. Despite their popularity, each platform introduces its own domain-specific language, configuration syntax, and conceptual model for defining deployment plans. These differences often create challenges for developers, system architects, and researchers who aim to design, deploy, and manage containerized applications in a consistent and interoperable manner across diverse environments.To ...
Containerization has emerged as the predominant paradigm for deploying microservices in modern distributed computing environments, transforming the way applications are packaged, distributed, and managed. By encapsulating applications and their dependencies into lightweight and portable containers, developers can ensure consistent performance across a wide range of platforms and infrastructures. Among the various technologies that support this paradigm, Docker and Kubernetes have become the most widely adopted platforms, forming the foundation of contemporary DevOps practices and cloud-native ecosystems. Despite their popularity, each platform introduces its own domain-specific language, configuration syntax, and conceptual model for defining deployment plans. These differences often create challenges for developers, system architects, and researchers who aim to design, deploy, and manage containerized applications in a consistent and interoperable manner across diverse environments.To address these challenges, this thesis introduces the Containerized Application Deployment Ontology (CADO). CADO is an ontology developed using the Web Ontology Language (OWL) that provides a formal representation of the key concepts, relationships, and terminologies used in containerized deployment models. It establishes a shared semantic foundation that unifies the deployment vocabularies of Docker and Kubernetes, enabling a higher level of interoperability and reducing ambiguity in how deployment structures are defined and interpreted. Through this semantic alignment, CADO facilitates automation, reasoning, and knowledge sharing within the broader containerization ecosystem.Building on this foundation, the thesis also presents the Cloud Edge Application Modeling Language (CEAML), which is a technology-agnostic modeling language inspired by the Topology and Orchestration Specification for Cloud Applications (TOSCA) open standard. CEAML provides a unified framework for describing, orchestrating, and managing microservices across the cloud–edge continuum. It is designed to support the growing demand for distributed intelligence, scalability, and resource optimization at the edge of the network as well as within the cloud. The syntax and structure of CEAML are informed by both state-of-the-art cloud modeling languages and the formal definitions established through the CADO ontology. Together, these two contributions offer a comprehensive solution for bridging the conceptual gap between heterogeneous container technologies and for advancing the modeling of microservice deployments in hybrid computing environments.To demonstrate practical applicability, an interpreter is implemented to translate CEAML specifications into Kubernetes deployment files, serving as a proof of concept for technology-agnostic orchestration. This implementation further illustrates how future interpreters could be extended to support additional container DSLs, functioning within a strategy pattern–based DevOps tool. Finally, CEAML is validated through two real-world platforms, complemented by a monitoring mechanism capable of observing physical machines, virtual machines, and containers. This mechanism supports orchestrators in making informed deployment and management decisions, thereby confirming the practical effectiveness of CEAML in cloud–edge environments.
περισσότερα