Υποδομές για επικοινωνία μεταξύ υπηρεσιών στα πλαίσια της microservice αρχιτεκτονικής σε περιβάλλον Kubernetes
To Industry 4.0 είναι ένα νέο βιομηχανικό στάδιο κατά το οποίο πραγματοποιούνται θεμελιώδεις αλλαγές στον τρόπο με τον οποίο λειτουργεί το παγκόσμιο δίκτυο παραγωγής και προμήθειας μέσω της συνεχούς αυτοματοποίησης των παραδοσιακών κατασκευαστικών και βιομηχανικών πρακτικών. Αυτό επιτυγχάνεται μ...
Κύριος συγγραφέας: | |
---|---|
Άλλοι συγγραφείς: | |
Γλώσσα: | Greek |
Έκδοση: |
2022
|
Θέματα: | |
Διαθέσιμο Online: | http://hdl.handle.net/10889/16507 |
id |
nemertes-10889-16507 |
---|---|
record_format |
dspace |
institution |
UPatras |
collection |
Nemertes |
language |
Greek |
topic |
Μαζική εξατομίκευση Διαδίκτυο των Αντικειμένων Κυβερνοφυσικά συστήματα Υποδομές για επικοινωνία Kubernetes Docker Internet of Things (IoT) Microservices |
spellingShingle |
Μαζική εξατομίκευση Διαδίκτυο των Αντικειμένων Κυβερνοφυσικά συστήματα Υποδομές για επικοινωνία Kubernetes Docker Internet of Things (IoT) Microservices Τουλούπας, Χαράλαμπος Υποδομές για επικοινωνία μεταξύ υπηρεσιών στα πλαίσια της microservice αρχιτεκτονικής σε περιβάλλον Kubernetes |
description |
To Industry 4.0 είναι ένα νέο βιομηχανικό στάδιο κατά το οποίο πραγματοποιούνται
θεμελιώδεις αλλαγές στον τρόπο με τον οποίο λειτουργεί το παγκόσμιο δίκτυο
παραγωγής και προμήθειας μέσω της συνεχούς αυτοματοποίησης των
παραδοσιακών κατασκευαστικών και βιομηχανικών πρακτικών. Αυτό επιτυγχάνεται
με την χρήση σύγχρονης έξυπνης τεχνολογίας, επικοινωνίας μεγάλης κλίμακας από
μηχανή με μηχανή (M2M) και το Διαδίκτυο των Αντικειμένων (IoT). Αυτή η
ενοποίηση έχει ως αποτέλεσμα την αύξηση της αυτοματοποίησης, τη βελτίωση της
επικοινωνίας και της αυτο-παρακολούθησης και τη χρήση έξυπνων μηχανών που
μπορούν να αναλύουν και να διαγνώσουν προβλήματα χωρίς την ανάγκη
ανθρώπινης παρέμβασης. Η εξατομίκευση των προϊόντων και η ικανότητα ενός
συστήματος να προσαρμόζεται στις ανάγκες του καταναλωτή και συνεπώς της
παραγωγής, θα είναι πρωτογενής φορέας της παραπάνω εξέλιξης.ου
Στην εργασία αυτή χρησιμοποιήθηκε ως μελέτη περίπτωσης το Gregor Chair Assembly System, ένα σύστημα παραγωγής μιας καρέκλας τύπου Gregor, με στόχο να
παρέχει την απαραίτητη υποδομή, δηλαδή μια σειρά από ρομπότ, πάγκους
εργασίας και τα Raspberry Pis που δρουν ως ελεγκτές των προηγουμένων, για να
τρέξει το λογισμικό που υλοποιήθηκε και να χρησιμοποιηθούν εργαλεία όπως τα
επόμενα που θα αποτελέσουν βάση για την επικοινωνία των ρομπότ και του
λογισμικού για την κατασκευή της καρέκλας.
Μελετήθηκαν τα containers, το Argo και το Kubernetes. Τα containers
χρησιμοποιήθηκαν ώστε να μπορέσουμε να καλουπώσουμε όλες τις απαραίτητες
βιβλιοθήκες και τα βοηθητικά εργαλεία των microservices που αναπτύχθηκαν κατά
τη διάρκεια της εργασίας και να τα τρέξουμε πάνω στο λειτουργικό σύστημα των
Raspberry Pis, χωρίς αυτό να πρέπει να έχει εγκαταστημένες όλες τις βιβλιοθήκες
και τα εργαλεία που χρειάστηκαν. Τα microservices αυτά αποτελούνται από τις
πρωτογενείς υπηρεσίες που μπορούν να προσφέρουν τα ρομπότ και οι πάγκοι
εργασίας, όπως η μετακίνηση ενός κομματιού της καρέκλας σε ένα συγκεκριμένο
σημείο, και οι κωδικοποιημένες διαδικασίες συναρμολόγησης (Assembly Tasks) της
καρέκλας που χρησιμοποιούν τις παραπάνω πρωτογενείς υπηρεσίες. Το Kubernetes με τη σειρά του, είναι μια πλατφόρμα για τη διαχείριση και ενορχήστρωση
workload και υπηρεσιών με containers. Αξιοποιήθηκε για να κατασκευαστεί ένα
σύμπλεγμα κόμβων που είναι τα Raspberry Pis, πάνω στα οποία θα γίνονται scheduled τα containers των μικρουπηρεσιών που προαναφέρθηκαν. Επίσης το Kubernetes παρείχε στο σύστημα μας δικτυακή υποδομή καθώς όλοι οι κόμβοι του
συμπλέγματος μπορούν να επικοινωνήσουν μεταξύ τους, με συνέπεια τα containers
που τρέχουν σε αυτούς τους κόμβους να μπορούν και αυτά να επικοινωνήσουν με
οποιοδήποτε πρωτόκολλο πάνω από τα πρωτόκολλα TCP/UDP του επιπέδου
μεταφοράς. Μελετήθηκαν και αναφέρονται οι αρχιτεκτονικές επικοινωνίας microservices, και επιλέχθηκαν να χρησιμοποιηθούν τα μοτίβα χορογραφίας και
ενορχήστρωσης υλοποιημένα με event-based επικοινωνία και HTTP κλήσεις σε REST
APIs. Τα μοτίβα αυτά είναι υπεύθυνα να συντονίσουν και να συγχρονίσουν τις
διαδικασίες παραγωγής για την επίτευξη του τελικού προιόντος και ταυτόχρονα να
μπορούν να επικοινωνήσουν με τις πρωτογενείς υπηρεσίες των ρομπότ.
Το Argo Workflows είναι ένα συνονθύλευμα υπηρεσιών που τρέχει στο Kubernetes
και χρησιμοποιήθηκε ώστε να καταφέρουμε να μοντελοποιήσουμε σε γράφο την
παραγωγική διαδικασία της κατασκευής της καρέκλας. Αυτή αποτελείται από τα Assembly Tasks που θα συγχρονιστούν με βάση το προαναφερθέν μοντέλο και το
Argo.
Η υλοποίηση του γράφου που αντικατοπτρίζει τη διαδικασία κατασκευής της
καρέκλας μπορεί να αλλάζει εύκολα και ταχύρρυθμα χρησιμοποιώντας μια από τις
φιλοσοφίες DevOps που είναι το Continuous Integration και Continuous Deployment (CI/CD). Το CI σημαίνει ότι κάθε αλλαγή σε αυτό το γράφο είναι committed
στο Git repository του συστήματος και μπορεί να υπόκειται σε διαρκείς και συχνές
αλλαγές. Το CD σημαίνει ότι αυτές οι αλλαγές μπορούν να φανούν γρήγορα και
αυτοματοποιημένα στο Kubernetes και το Argo, ώστε αυτά να μπορέσουν να
κάνουν χρήση των νέων αλλαγών στον γράφο, καθώς και σε οποιοδήποτε container
μικρουπηρεσίας. Σε αντίθεση με παραδοσιακές μεθόδους αναβάθμισης λογισμικού
όπου χρειαζόταν χειροκίνητη αλλαγή κώδικα στις μικρουπηρεσίες, ο γράφος αυτός
αποτελείται απλά από ένα αρχείο που μπορεί εύκολα να αναβαθμιστεί ή και να
γυρίσει σε προηγούμενη έκδοσή του. Τέλος δόθηκε βάση στη μείωση της
κατανάλωσης πόρων των κόμβων του συστήματος, κάνοντας τα Assembly Tasks και
τις πρωτογενείς υπηρεσίες να μην χρειάζεται να τρέχουν αέναα στα Raspberry Pis
και να ενορχηστρώνονται κάθε φορά που δίνεται μια παραγγελία κατασκευής της
καρέκλας τύπου Gregor. |
author2 |
Touloupas, Charalampos |
author_facet |
Touloupas, Charalampos Τουλούπας, Χαράλαμπος |
author |
Τουλούπας, Χαράλαμπος |
author_sort |
Τουλούπας, Χαράλαμπος |
title |
Υποδομές για επικοινωνία μεταξύ υπηρεσιών στα πλαίσια της microservice αρχιτεκτονικής σε περιβάλλον Kubernetes |
title_short |
Υποδομές για επικοινωνία μεταξύ υπηρεσιών στα πλαίσια της microservice αρχιτεκτονικής σε περιβάλλον Kubernetes |
title_full |
Υποδομές για επικοινωνία μεταξύ υπηρεσιών στα πλαίσια της microservice αρχιτεκτονικής σε περιβάλλον Kubernetes |
title_fullStr |
Υποδομές για επικοινωνία μεταξύ υπηρεσιών στα πλαίσια της microservice αρχιτεκτονικής σε περιβάλλον Kubernetes |
title_full_unstemmed |
Υποδομές για επικοινωνία μεταξύ υπηρεσιών στα πλαίσια της microservice αρχιτεκτονικής σε περιβάλλον Kubernetes |
title_sort |
υποδομές για επικοινωνία μεταξύ υπηρεσιών στα πλαίσια της microservice αρχιτεκτονικής σε περιβάλλον kubernetes |
publishDate |
2022 |
url |
http://hdl.handle.net/10889/16507 |
work_keys_str_mv |
AT touloupascharalampos ypodomesgiaepikoinōniametaxyypēresiōnstaplaisiatēsmicroservicearchitektonikēsseperiballonkubernetes AT touloupascharalampos interservicecommunicationinfrastructureinmicroservicearchitecturewithkubernetes |
_version_ |
1771297182274551808 |
spelling |
nemertes-10889-165072022-09-05T09:41:58Z Υποδομές για επικοινωνία μεταξύ υπηρεσιών στα πλαίσια της microservice αρχιτεκτονικής σε περιβάλλον Kubernetes Inter-service communication infrastructure in microservice architecture with Kubernetes Τουλούπας, Χαράλαμπος Touloupas, Charalampos Μαζική εξατομίκευση Διαδίκτυο των Αντικειμένων Κυβερνοφυσικά συστήματα Υποδομές για επικοινωνία Kubernetes Docker Internet of Things (IoT) Microservices To Industry 4.0 είναι ένα νέο βιομηχανικό στάδιο κατά το οποίο πραγματοποιούνται θεμελιώδεις αλλαγές στον τρόπο με τον οποίο λειτουργεί το παγκόσμιο δίκτυο παραγωγής και προμήθειας μέσω της συνεχούς αυτοματοποίησης των παραδοσιακών κατασκευαστικών και βιομηχανικών πρακτικών. Αυτό επιτυγχάνεται με την χρήση σύγχρονης έξυπνης τεχνολογίας, επικοινωνίας μεγάλης κλίμακας από μηχανή με μηχανή (M2M) και το Διαδίκτυο των Αντικειμένων (IoT). Αυτή η ενοποίηση έχει ως αποτέλεσμα την αύξηση της αυτοματοποίησης, τη βελτίωση της επικοινωνίας και της αυτο-παρακολούθησης και τη χρήση έξυπνων μηχανών που μπορούν να αναλύουν και να διαγνώσουν προβλήματα χωρίς την ανάγκη ανθρώπινης παρέμβασης. Η εξατομίκευση των προϊόντων και η ικανότητα ενός συστήματος να προσαρμόζεται στις ανάγκες του καταναλωτή και συνεπώς της παραγωγής, θα είναι πρωτογενής φορέας της παραπάνω εξέλιξης.ου Στην εργασία αυτή χρησιμοποιήθηκε ως μελέτη περίπτωσης το Gregor Chair Assembly System, ένα σύστημα παραγωγής μιας καρέκλας τύπου Gregor, με στόχο να παρέχει την απαραίτητη υποδομή, δηλαδή μια σειρά από ρομπότ, πάγκους εργασίας και τα Raspberry Pis που δρουν ως ελεγκτές των προηγουμένων, για να τρέξει το λογισμικό που υλοποιήθηκε και να χρησιμοποιηθούν εργαλεία όπως τα επόμενα που θα αποτελέσουν βάση για την επικοινωνία των ρομπότ και του λογισμικού για την κατασκευή της καρέκλας. Μελετήθηκαν τα containers, το Argo και το Kubernetes. Τα containers χρησιμοποιήθηκαν ώστε να μπορέσουμε να καλουπώσουμε όλες τις απαραίτητες βιβλιοθήκες και τα βοηθητικά εργαλεία των microservices που αναπτύχθηκαν κατά τη διάρκεια της εργασίας και να τα τρέξουμε πάνω στο λειτουργικό σύστημα των Raspberry Pis, χωρίς αυτό να πρέπει να έχει εγκαταστημένες όλες τις βιβλιοθήκες και τα εργαλεία που χρειάστηκαν. Τα microservices αυτά αποτελούνται από τις πρωτογενείς υπηρεσίες που μπορούν να προσφέρουν τα ρομπότ και οι πάγκοι εργασίας, όπως η μετακίνηση ενός κομματιού της καρέκλας σε ένα συγκεκριμένο σημείο, και οι κωδικοποιημένες διαδικασίες συναρμολόγησης (Assembly Tasks) της καρέκλας που χρησιμοποιούν τις παραπάνω πρωτογενείς υπηρεσίες. Το Kubernetes με τη σειρά του, είναι μια πλατφόρμα για τη διαχείριση και ενορχήστρωση workload και υπηρεσιών με containers. Αξιοποιήθηκε για να κατασκευαστεί ένα σύμπλεγμα κόμβων που είναι τα Raspberry Pis, πάνω στα οποία θα γίνονται scheduled τα containers των μικρουπηρεσιών που προαναφέρθηκαν. Επίσης το Kubernetes παρείχε στο σύστημα μας δικτυακή υποδομή καθώς όλοι οι κόμβοι του συμπλέγματος μπορούν να επικοινωνήσουν μεταξύ τους, με συνέπεια τα containers που τρέχουν σε αυτούς τους κόμβους να μπορούν και αυτά να επικοινωνήσουν με οποιοδήποτε πρωτόκολλο πάνω από τα πρωτόκολλα TCP/UDP του επιπέδου μεταφοράς. Μελετήθηκαν και αναφέρονται οι αρχιτεκτονικές επικοινωνίας microservices, και επιλέχθηκαν να χρησιμοποιηθούν τα μοτίβα χορογραφίας και ενορχήστρωσης υλοποιημένα με event-based επικοινωνία και HTTP κλήσεις σε REST APIs. Τα μοτίβα αυτά είναι υπεύθυνα να συντονίσουν και να συγχρονίσουν τις διαδικασίες παραγωγής για την επίτευξη του τελικού προιόντος και ταυτόχρονα να μπορούν να επικοινωνήσουν με τις πρωτογενείς υπηρεσίες των ρομπότ. Το Argo Workflows είναι ένα συνονθύλευμα υπηρεσιών που τρέχει στο Kubernetes και χρησιμοποιήθηκε ώστε να καταφέρουμε να μοντελοποιήσουμε σε γράφο την παραγωγική διαδικασία της κατασκευής της καρέκλας. Αυτή αποτελείται από τα Assembly Tasks που θα συγχρονιστούν με βάση το προαναφερθέν μοντέλο και το Argo. Η υλοποίηση του γράφου που αντικατοπτρίζει τη διαδικασία κατασκευής της καρέκλας μπορεί να αλλάζει εύκολα και ταχύρρυθμα χρησιμοποιώντας μια από τις φιλοσοφίες DevOps που είναι το Continuous Integration και Continuous Deployment (CI/CD). Το CI σημαίνει ότι κάθε αλλαγή σε αυτό το γράφο είναι committed στο Git repository του συστήματος και μπορεί να υπόκειται σε διαρκείς και συχνές αλλαγές. Το CD σημαίνει ότι αυτές οι αλλαγές μπορούν να φανούν γρήγορα και αυτοματοποιημένα στο Kubernetes και το Argo, ώστε αυτά να μπορέσουν να κάνουν χρήση των νέων αλλαγών στον γράφο, καθώς και σε οποιοδήποτε container μικρουπηρεσίας. Σε αντίθεση με παραδοσιακές μεθόδους αναβάθμισης λογισμικού όπου χρειαζόταν χειροκίνητη αλλαγή κώδικα στις μικρουπηρεσίες, ο γράφος αυτός αποτελείται απλά από ένα αρχείο που μπορεί εύκολα να αναβαθμιστεί ή και να γυρίσει σε προηγούμενη έκδοσή του. Τέλος δόθηκε βάση στη μείωση της κατανάλωσης πόρων των κόμβων του συστήματος, κάνοντας τα Assembly Tasks και τις πρωτογενείς υπηρεσίες να μην χρειάζεται να τρέχουν αέναα στα Raspberry Pis και να ενορχηστρώνονται κάθε φορά που δίνεται μια παραγγελία κατασκευής της καρέκλας τύπου Gregor. Industry 4.0 is a new industrial stage in which fundamental changes are taking place in the way the global production and supply network operates through the continuous automation of traditional manufacturing and industrial practices. This is achieved by using modern smart technology, large-scale machine-to-machine (M2M) communication and the Internet of Things (IoT). This integration results in increased automation, improved communication and self-monitoring, and the use of intelligent machines that can analyze and diagnose problems without the need for human intervention. The personalization of products and the ability of a system to adapt to the needs of the consumer and therefore of production, will be a primary driver of the above development. In this work, the Gregor Chair Assembly System, a production system of a Gregortype chair, was used as a case study, aiming to provide the necessary infrastructure, i.e. a series of robots, workbenches and the Raspberry Pis that act as controllers of previously, to run the implemented software and use tools such as the following which will form the basis for the communication of the robots and the software for the construction of the chair. Containers, Argo and Kubernetes were studied. The containers were used so that we could mold all the necessary libraries and auxiliary tools of the microservices developed during this thesis and run them on the operating system of the Raspberry Pis, without its OS having to have all the libraries and tools needed. These microservices consist of the primary services that robots and workbenches can offer, such as moving a piece of the chair to a specific point, and coded assembly procedures (Assembly Tasks) of the chair that use the above primary services. Kubernetes, in turn, is a platform for managing and orchestrating workloads and services with containers. It was used to build a cluster of nodes that are Raspberry Pis, on which the containers of the aforementioned microservices will be scheduled. Kubernetes also provided our system with a network infrastructure as all the nodes of the cluster can communicate with each other, with the result that the containers running on these nodes can also communicate with any protocol above the TCP/UDP transport layer. Microservices communication architectures were studied and reported, and choreography and orchestration patterns implemented with event-based communication and HTTP calls to REST APIs were chosen to be used. These patterns are responsible for coordinating and synchronizing the production processes to achieve the final product and at the same time being able to communicate with the primary services of the robots. Argo Workflows is a patchwork of services running on Kubernetes and was used to graph the manufacturing process of the chair. This consists of the Assembly Tasks that will be synchronized based on the aforementioned model and Argo. The implementation of the graph that reflects the manufacturing process of the chair can be changed easily and rapidly using one of the DevOps philosophies which is Continuous Integration and Continuous Deployment (CI/CD). CI means that every change to this graph is committed to the system's Git repository and can be subject to permanent and frequent changes. CD means that these changes can be seen quickly and automatically in Kubernetes and Argo, so that they can make use of the new changes in the graph, as well as in any microservice container. Unlike traditional software upgrade methods where manual code change in microservices was required, this graph consists simply of a file that can be easily upgraded or even reverted to a previous version. Finally, it was based on reducing the resource consumption of the system nodes, making the Assembly Tasks and primary services not need to run perpetually on the Raspberry Pis and be orchestrated every time an order is placed to build the Gregor-type chair 2022-07-13T06:32:31Z 2022-07-13T06:32:31Z 2022-07-11 http://hdl.handle.net/10889/16507 gr application/pdf |