This Is Why We Don't Push To Production On Fridays
This commit is contained in:
@@ -32,7 +32,7 @@ AWS (Amazon Web Services). Η AWS άρχισε να προσφέρει υπηρ
|
|||||||
Λόγω της ευρείας αποδοχής των υπηρεσιών IaaS της AWS και των πολλών
|
Λόγω της ευρείας αποδοχής των υπηρεσιών IaaS της AWS και των πολλών
|
||||||
πλεονεκτημάτων που αυτές παρέχουν, πολλές άλλες εταιρείες, όπως η Google, IBM
|
πλεονεκτημάτων που αυτές παρέχουν, πολλές άλλες εταιρείες, όπως η Google, IBM
|
||||||
και Microsoft, άρχισαν να προσφέρουν και αυτές υπηρεσίες του ίδιου τύπου.
|
και Microsoft, άρχισαν να προσφέρουν και αυτές υπηρεσίες του ίδιου τύπου.
|
||||||
Σήμερα, ο μέσος καταναλωτής έχει στην διάθεση του μια πληθώρα εταιρειών που
|
Σήμερα, ο μέσος καταναλωτής έχει στην διάθεσή του μια πληθώρα εταιρειών που
|
||||||
προσφέρουν υπηρεσίες νεφο-υπολογιστικής και μάλιστα μερικές από αυτές, όπως η
|
προσφέρουν υπηρεσίες νεφο-υπολογιστικής και μάλιστα μερικές από αυτές, όπως η
|
||||||
Linode, Vultr και Digital Ocean, προσφέρουν ως την κύρια υπηρεσία τους τη
|
Linode, Vultr και Digital Ocean, προσφέρουν ως την κύρια υπηρεσία τους τη
|
||||||
δυνατότητα διάθεσης υπολογιστικών πόρων στους χρήστες με τη μορφή ενοικίασης
|
δυνατότητα διάθεσης υπολογιστικών πόρων στους χρήστες με τη μορφή ενοικίασης
|
||||||
@@ -42,7 +42,7 @@ Linode, Vultr και Digital Ocean, προσφέρουν ως την κύρια
|
|||||||
|
|
||||||
Η ασφάλεια των περιβαλλόντων νέφους είναι ένα θέμα που απασχολεί πολύ τους
|
Η ασφάλεια των περιβαλλόντων νέφους είναι ένα θέμα που απασχολεί πολύ τους
|
||||||
χρήστες και ακόμα περισσότερο τις επιχειρήσεις που βασίζονται σε υπηρεσίες
|
χρήστες και ακόμα περισσότερο τις επιχειρήσεις που βασίζονται σε υπηρεσίες
|
||||||
νεφο-υπολογιστικής για την διάθεση των δικών τους υπηρεσιών. Η επίτευξη της
|
νεφο-υπολογιστικής για την διάθεση των δικών τους υπηρεσιών. Η επίτευξή της
|
||||||
εξαρτάται από τρεις βασικούς παράγοντες. Ο πρώτος είναι η ασφάλεια των υποδομών
|
εξαρτάται από τρεις βασικούς παράγοντες. Ο πρώτος είναι η ασφάλεια των υποδομών
|
||||||
νέφους, όπου στην περίπτωση χρήσης υπηρεσιών IaaS υπεύθυνος είναι ο πάροχος
|
νέφους, όπου στην περίπτωση χρήσης υπηρεσιών IaaS υπεύθυνος είναι ο πάροχος
|
||||||
νέφους. Ο δεύτερος παράγοντας είναι η ασφάλεια των τεχνολογιών εικονικοποίησης
|
νέφους. Ο δεύτερος παράγοντας είναι η ασφάλεια των τεχνολογιών εικονικοποίησης
|
||||||
@@ -100,8 +100,8 @@ MySQL \footfullcite{mysql} και το διακομιστή ιστού Nginx \fo
|
|||||||
είναι η εικονικοποίηση διακομιστών και λειτουργικών συστημάτων (δοχειοποίηση).
|
είναι η εικονικοποίηση διακομιστών και λειτουργικών συστημάτων (δοχειοποίηση).
|
||||||
|
|
||||||
Στην εικονικοποίηση διακομιστών, ένας φυσικός διακομιστής χωρίζει με την
|
Στην εικονικοποίηση διακομιστών, ένας φυσικός διακομιστής χωρίζει με την
|
||||||
βοήθεια ενός υπερ-επόπτη τους πόρους του όπως τη μνήμη, τον αποθηκευτικό χώρο
|
βοήθεια ενός υπερ-επόπτη τους πόρους του, όπως η μνήμη, ο αποθηκευτικός χώρος
|
||||||
και τον επεξεργαστή του σε πολλά μικρότερα εικονικά μηχανήματα. Κάθε εικονικό
|
και ο επεξεργαστής του, σε πολλά μικρότερα εικονικά μηχανήματα. Κάθε εικονικό
|
||||||
μηχάνημα μπορεί να εκτελεί διαφορετικό λειτουργικό σύστημα και να έχει
|
μηχάνημα μπορεί να εκτελεί διαφορετικό λειτουργικό σύστημα και να έχει
|
||||||
διαφορετικές ρυθμίσεις από τα υπόλοιπα. Η διάθεση ενός εικονικού μηχανήματος
|
διαφορετικές ρυθμίσεις από τα υπόλοιπα. Η διάθεση ενός εικονικού μηχανήματος
|
||||||
δεν περιορίζεται μονάχα σε τοπικούς υπολογιστές και έτσι πολλές φορές
|
δεν περιορίζεται μονάχα σε τοπικούς υπολογιστές και έτσι πολλές φορές
|
||||||
@@ -110,15 +110,15 @@ MySQL \footfullcite{mysql} και το διακομιστή ιστού Nginx \fo
|
|||||||
|
|
||||||
Η δοχειοποίηση αποτελεί μια ειδική περίπτωση εικονικοποίησης όπου αντί για το
|
Η δοχειοποίηση αποτελεί μια ειδική περίπτωση εικονικοποίησης όπου αντί για το
|
||||||
υλικό, εικονικοποιείται το λειτουργικό σύστημα. Αυτό, καθιστά την δοχειοποίηση
|
υλικό, εικονικοποιείται το λειτουργικό σύστημα. Αυτό, καθιστά την δοχειοποίηση
|
||||||
πιο αποδοτική από την εικονικοποίηση διακομιστών καθώς δεν χρειάζεται να
|
πιο αποδοτική από την εικονικοποίηση διακομιστών, καθώς δεν χρειάζεται να
|
||||||
εκτελεστεί ένας υπερ-επόπτης για την διαχείριση υπολογιστικών πόρων. Επιπλέον,
|
εκτελεστεί ένας υπερ-επόπτης για την διαχείριση υπολογιστικών πόρων. Επιπλέον,
|
||||||
η δοχειοποίηση επιτρέπει την εκτέλεση περισσότερων εικονικών περιβαλλόντων στον
|
η δοχειοποίηση επιτρέπει την εκτέλεση περισσότερων εικονικών περιβαλλόντων στον
|
||||||
ίδιο φυσικό διακομιστή και έτσι, η απόδοση του υλικού αυξάνεται ακόμα
|
ίδιο φυσικό διακομιστή και έτσι, η απόδοση του υλικού αυξάνεται ακόμα
|
||||||
περισσότερο. Συνήθως χρησιμοποιείται για την διάθεση προγραμμάτων στο ευρύ
|
περισσότερο. Συνήθως χρησιμοποιείται για την διάθεση προγραμμάτων στο ευρύ
|
||||||
κοινό, τα οποία ακολουθούν την αρχιτεκτονική μικρο-υπηρεσιών (microservices)
|
κοινό, τα οποία ακολουθούν την αρχιτεκτονική μικρο-υπηρεσιών (microservices)
|
||||||
και επειδή περιέχουν όλες τις απαραίτητες βιβλιοθήκες για την εκτέλεσή τους,
|
και λόγω του ότι τα παράγωγά της περιέχουν όλες τις απαραίτητες βιβλιοθήκες για
|
||||||
χωρίς να βασίζονται στο υποκείμενο νέφος στο οποίο στεγάζονται, αποτελούν
|
την εκτέλεσή τους, χωρίς να βασίζονται στο υποκείμενο νέφος στο οποίο
|
||||||
αρκετά δημοφιλή επιλογή τεχνολογίας διάθεσης υπηρεσιών.
|
στεγάζονται, αποτελούν αρκετά δημοφιλή επιλογή τεχνολογίας διάθεσης υπηρεσιών.
|
||||||
|
|
||||||
Τα δοχεία είναι ένα προϊόν της δοχειοποίησης και αποτελούν το αποτέλεσμα της
|
Τα δοχεία είναι ένα προϊόν της δοχειοποίησης και αποτελούν το αποτέλεσμα της
|
||||||
εικονικοποίησης σε επίπεδο λειτουργικού συστήματος. Με την βοήθεια του
|
εικονικοποίησης σε επίπεδο λειτουργικού συστήματος. Με την βοήθεια του
|
||||||
@@ -134,8 +134,8 @@ MySQL \footfullcite{mysql} και το διακομιστή ιστού Nginx \fo
|
|||||||
εικονικοποίηση και είθισται να προτιμάται για την ανάπτυξη και διάθεση
|
εικονικοποίηση και είθισται να προτιμάται για την ανάπτυξη και διάθεση
|
||||||
εφαρμογών. Αυτό οφείλεται στο γεγονός ότι η μεταφορά και αναδημιουργία των
|
εφαρμογών. Αυτό οφείλεται στο γεγονός ότι η μεταφορά και αναδημιουργία των
|
||||||
δοχείων μπορεί να πραγματοποιηθεί σε κάθε περιβάλλον και νέφος, καθώς και στο
|
δοχείων μπορεί να πραγματοποιηθεί σε κάθε περιβάλλον και νέφος, καθώς και στο
|
||||||
γεγονός ότι αυτά απαιτούν λιγότερους πόρους σε σχέση με τις εικονικές μηχανές
|
γεγονός ότι αυτά απαιτούν λιγότερους πόρους σε σχέση με τις εικονικές μηχανές,
|
||||||
διότι οι υποκείμενοι πόροι του συστήματος μπορούν να μοιραστούν μεταξύ των
|
αφού οι υποκείμενοι πόροι του συστήματος μπορούν να μοιραστούν μεταξύ των
|
||||||
διαφορετικών δοχείων.
|
διαφορετικών δοχείων.
|
||||||
|
|
||||||
\subsection{Πλεονεκτήματα δοχείων έναντι εικονικών μηχανών} \label{containerAdvantages}
|
\subsection{Πλεονεκτήματα δοχείων έναντι εικονικών μηχανών} \label{containerAdvantages}
|
||||||
@@ -144,7 +144,7 @@ MySQL \footfullcite{mysql} και το διακομιστή ιστού Nginx \fo
|
|||||||
ένα δοχείο εξομοιώνει μονάχα το περιβάλλον εκτέλεσης ενός λογισμικού. Αυτό
|
ένα δοχείο εξομοιώνει μονάχα το περιβάλλον εκτέλεσης ενός λογισμικού. Αυτό
|
||||||
σημαίνει πως εάν θεωρηθεί ως τελικός στόχος η εκτέλεση ενός λογισμικού
|
σημαίνει πως εάν θεωρηθεί ως τελικός στόχος η εκτέλεση ενός λογισμικού
|
||||||
απομονωμένο από το υπόλοιπο σύστημα, αυτό επιτυγχάνεται με δύο διαφορετικούς
|
απομονωμένο από το υπόλοιπο σύστημα, αυτό επιτυγχάνεται με δύο διαφορετικούς
|
||||||
τρόπους αφού οι εικονικές μηχανές και τα δοχεία χρησιμοποιούν διαφορετικού
|
τρόπους, αφού οι εικονικές μηχανές και τα δοχεία χρησιμοποιούν διαφορετικού
|
||||||
είδους εικονικοποίηση. Στην περίπτωση των δοχείων δεν έχουμε απομόνωση μηχανών
|
είδους εικονικοποίηση. Στην περίπτωση των δοχείων δεν έχουμε απομόνωση μηχανών
|
||||||
αλλά διεργασιών. Γεγονός που συμβάλλει στην αποφυγή της επιβάρυνσης του
|
αλλά διεργασιών. Γεγονός που συμβάλλει στην αποφυγή της επιβάρυνσης του
|
||||||
συστήματος που θα επιβάλλονταν από τις διεργασίες του υπερ-επόπτη και της
|
συστήματος που θα επιβάλλονταν από τις διεργασίες του υπερ-επόπτη και της
|
||||||
@@ -211,7 +211,7 @@ Windows δε μπορούν να εκτελεστούν σε ένα περιβά
|
|||||||
|
|
||||||
Εν γένει, τα βασικότερα πλεονεκτήματα των δοχείων σε σχέση με τις εικονικές
|
Εν γένει, τα βασικότερα πλεονεκτήματα των δοχείων σε σχέση με τις εικονικές
|
||||||
μηχανές είναι ο διαμοιρασμός του πυρήνα του λειτουργικού συστήματος φιλοξενίας
|
μηχανές είναι ο διαμοιρασμός του πυρήνα του λειτουργικού συστήματος φιλοξενίας
|
||||||
και η μεταφερσιμότητα τους. Το γεγονός ότι μοιράζονται τον ίδιο πυρήνα έχει ως
|
και η μεταφερσιμότητά τους. Το γεγονός ότι μοιράζονται τον ίδιο πυρήνα έχει ως
|
||||||
αποτέλεσμα να μην χρειάζεται να απονεμηθούν πόροι για εικονικοποίηση μηχανών με
|
αποτέλεσμα να μην χρειάζεται να απονεμηθούν πόροι για εικονικοποίηση μηχανών με
|
||||||
σκοπό την στέγαση ενός ολόκληρου ξεχωριστού λειτουργικού συστήματος (όπως
|
σκοπό την στέγαση ενός ολόκληρου ξεχωριστού λειτουργικού συστήματος (όπως
|
||||||
γίνεται στις εικονικές μηχανές). Επιπλέον, τα δοχεία μπορούν να εκτελεστούν σε
|
γίνεται στις εικονικές μηχανές). Επιπλέον, τα δοχεία μπορούν να εκτελεστούν σε
|
||||||
@@ -226,7 +226,7 @@ Docker) όπου μάλιστα η ταχύτητα δημιουργίας το
|
|||||||
και Container (δοχείο) αν και είναι διαφορετικοί. Παρ' όλα αυτά, η ιδέα της
|
και Container (δοχείο) αν και είναι διαφορετικοί. Παρ' όλα αυτά, η ιδέα της
|
||||||
δημιουργίας απομονωμένων περιβαλλόντων εκτέλεσης λογισμικού υπήρχε προτού βγει
|
δημιουργίας απομονωμένων περιβαλλόντων εκτέλεσης λογισμικού υπήρχε προτού βγει
|
||||||
το Docker στην αγορά. Ιστορικά, οι πρώτες τεχνολογίες περί δοχείων έκαναν την
|
το Docker στην αγορά. Ιστορικά, οι πρώτες τεχνολογίες περί δοχείων έκαναν την
|
||||||
είσοδο τους από το 1979, όταν εισήχθη το chroot \cite{chrootCommand} στην
|
είσοδό τους από το 1979, όταν εισήχθη το chroot \cite{chrootCommand} στην
|
||||||
έβδομη έκδοση του Unix \cite{containerHistory}. Πρόκειται για μια εντολή που
|
έβδομη έκδοση του Unix \cite{containerHistory}. Πρόκειται για μια εντολή που
|
||||||
περιορίζει την πρόσβαση αρχείων που διαθέτει μια εφαρμογή, σε ένα συγκεκριμένο
|
περιορίζει την πρόσβαση αρχείων που διαθέτει μια εφαρμογή, σε ένα συγκεκριμένο
|
||||||
φάκελο, ο οποίος ορίζεται ως ο καινούριος αρχικός (root). Ο κύριος σκοπός του
|
φάκελο, ο οποίος ορίζεται ως ο καινούριος αρχικός (root). Ο κύριος σκοπός του
|
||||||
@@ -245,10 +245,10 @@ chroot ήταν η ενίσχυση της ασφάλειας ούτως ώστ
|
|||||||
2008 ήρθε στο προσκήνιο το LXC (Linux Container Technology) \footfullcite{LXC}.
|
2008 ήρθε στο προσκήνιο το LXC (Linux Container Technology) \footfullcite{LXC}.
|
||||||
Το πρώτο εργαλείο που χρησιμοποιούσε τεχνολογίες δοχείων για την δημιουργία και
|
Το πρώτο εργαλείο που χρησιμοποιούσε τεχνολογίες δοχείων για την δημιουργία και
|
||||||
εκτέλεση πολλαπλών λειτουργικών συστημάτων Linux στο ίδιο μηχάνημα.
|
εκτέλεση πολλαπλών λειτουργικών συστημάτων Linux στο ίδιο μηχάνημα.
|
||||||
Χρησιμοποιώντας μηχανισμούς που προσέφερε το λειτουργικό σύστημα επέτρεπε πλήρη
|
Χρησιμοποιώντας μηχανισμούς που προσέφερε το λειτουργικό σύστημα, επέτρεπε
|
||||||
εικονικοποίηση ενός στιγμιότυπου Linux σε μορφή δοχείου και παρείχε αρκετές
|
πλήρη εικονικοποίηση ενός στιγμιότυπου Linux σε μορφή δοχείου και παρείχε
|
||||||
λειτουργίες όπως η δημιουργία, η εκκίνηση και η διαγραφή LXC δοχείων. Παρ' όλα
|
αρκετές λειτουργίες όπως η δημιουργία, η εκκίνηση και η διαγραφή LXC δοχείων.
|
||||||
αυτά, επικεντρωνόταν στην δοχειοποίηση λειτουργικών συστημάτων και όχι
|
Παρ' όλα αυτά, επικεντρωνόταν στην δοχειοποίηση λειτουργικών συστημάτων και όχι
|
||||||
εφαρμογών \cite{LXCvsDocker}, καθιστώντας δύσκολη και περίπλοκη την χρήση του
|
εφαρμογών \cite{LXCvsDocker}, καθιστώντας δύσκολη και περίπλοκη την χρήση του
|
||||||
όταν η κύρια ανάγκη ήταν η απομόνωση εφαρμογών.
|
όταν η κύρια ανάγκη ήταν η απομόνωση εφαρμογών.
|
||||||
|
|
||||||
@@ -299,7 +299,8 @@ Integration/Continuous Delivery) (Συνεχής Ενοποίηση/Συνεχή
|
|||||||
\cite{cicd}. Κατά το μοντέλο αυτό, δημιουργούνται αυτοματοποιημένες διαδικασίες
|
\cite{cicd}. Κατά το μοντέλο αυτό, δημιουργούνται αυτοματοποιημένες διαδικασίες
|
||||||
που εκτελούνται κατά την διάρκεια της ανάπτυξης και παράδοσης μιας εφαρμογής
|
που εκτελούνται κατά την διάρκεια της ανάπτυξης και παράδοσης μιας εφαρμογής
|
||||||
προκειμένου να πραγματοποιείται έλεγχος της ποιότητας του κώδικα, να
|
προκειμένου να πραγματοποιείται έλεγχος της ποιότητας του κώδικα, να
|
||||||
εντοπίζονται σφάλματα και να παράγονται εκτελέσιμα πακέτα.
|
εντοπίζονται σφάλματα και να παράγονται εκτελέσιμα πακέτα τα οποία μετά μπορούν
|
||||||
|
απευθείας να διατίθενται στο κοινό (continuous deployment).
|
||||||
|
|
||||||
Τα δοχεία αποτελούν ιδανική επιλογή για την εφαρμογή των παραπάνω μεθοδολογιών
|
Τα δοχεία αποτελούν ιδανική επιλογή για την εφαρμογή των παραπάνω μεθοδολογιών
|
||||||
και πρακτικών καθώς επιτρέπουν το γρήγορο και αποτελεσματικό πακετάρισμα
|
και πρακτικών καθώς επιτρέπουν το γρήγορο και αποτελεσματικό πακετάρισμα
|
||||||
@@ -358,9 +359,9 @@ Service), όπως η ECS (Elastic Container Service) της Amazon. Μια υπ
|
|||||||
ταυτόχρονα προσφέρει και τα πλεονεκτήματα των δοχείων, όπως η ταχεία διάθεση
|
ταυτόχρονα προσφέρει και τα πλεονεκτήματα των δοχείων, όπως η ταχεία διάθεση
|
||||||
και απόσυρσή τους αλλά και η υψηλή τους απόδοση κατά την εκτέλεση.
|
και απόσυρσή τους αλλά και η υψηλή τους απόδοση κατά την εκτέλεση.
|
||||||
Συγκεκριμένα, μέσω των υπηρεσιών CaaS, οι χρήστες διαθέτουν δυνατότητες
|
Συγκεκριμένα, μέσω των υπηρεσιών CaaS, οι χρήστες διαθέτουν δυνατότητες
|
||||||
ενορχήστρωσης δοχείων \cite{howCaasWorks} χωρίς την ανάγκη χειροκίνητου
|
ενορχήστρωσης δοχείων χωρίς την ανάγκη χειροκίνητου στησίματος πλατφορμών όπως
|
||||||
στησίματος πλατφορμών αυτού του είδους όπως είναι το Kubernetes
|
το Kubernetes \cite{kubernetes} και το Docker Swarm \cite{dockerSwarm}, που
|
||||||
\cite{kubernetes} και το Docker Swarm \cite{dockerSwarm}.
|
παρέχουν αυτή την δυνατότητα.
|
||||||
|
|
||||||
Σε κάθε περίπτωση, λόγω των πλεονεκτημάτων που παρέχει η χρήση δοχείων, είναι
|
Σε κάθε περίπτωση, λόγω των πλεονεκτημάτων που παρέχει η χρήση δοχείων, είναι
|
||||||
πολύ συνήθης η θέση σε λειτουργία, εφαρμογών μέσω Docker σε περιβάλλοντα νέφους
|
πολύ συνήθης η θέση σε λειτουργία, εφαρμογών μέσω Docker σε περιβάλλοντα νέφους
|
||||||
|
|||||||
Reference in New Issue
Block a user