Μόλις ξεκινήσατε με τα εργαλεία οπτικοποίησης; Ή να χακάρετε τον δρόμο σας στη συνομιλία τεχνολογίας σε κοντέινερ και εικονικές μηχανές.
Η εικονικοποίηση συνεπάγεται τη διαδικασία όπου μοναδικοί πόροι όπως η RAM, η CPU, το δίκτυο και οι δίσκοι μπορούν να «εικονικοποιηθούν» και να θεωρηθούν ως πολλαπλοί πόροι. Η βασική διαφορά είναι ότι τα κοντέινερ μπορούν να εικονικοποιήσουν μόνο επίπεδα λογισμικού που είναι κατασκευασμένα πάνω από το επίπεδο του λειτουργικού συστήματος. Αντίθετα, οι εικονικές μηχανές μπορούν να εικονικοποιήσουν ολόκληρες μηχανές στα επίπεδα υλικού.
Αν και υπάρχει σαφής διάκριση, υπάρχει μια λίστα ομοιοτήτων μεταξύ κοντέινερ και εικονικών μηχανών, συμπεριλαμβανομένου του τρόπου με τον οποίο βελτιώνουν την αποδοτικότητα IT, τη φορητότητα χρήσης σε εφαρμογές, τη βελτίωση των DevOps και τον κύκλο ζωής ανάπτυξης λογισμικού (SDLC). Περισσότερα για αυτό αργότερα.
Αυτή η ανάρτηση αναλύει τα κοντέινερ και τις εικονικές μηχανές, εξετάζει τα οφέλη και των δύο και ολοκληρώνεται με μια σημείωση σχετικά με την επιλογή του σωστού εργαλείου με βάση τις ανάγκες σας. Προϋποθέτει επίσης ότι έχετε την προαπαιτούμενη γνώση κοντέινερ και εικονικών μηχανών. Εάν δεν το έχετε κάνει, εξακολουθεί να είναι ένα εξαιρετικό μέρος για να ξεκινήσετε.
Πίνακας περιεχομένων
Ιστορία της εικονικοποίησης
Πριν από τον πολλαπλασιασμό των κοντέινερ, οι εικονικές μηχανές ήταν η μόνη λύση για την απομόνωση περιβαλλόντων μέσα σε μια φυσική υποδομή. Αλλά μόλις το 2013 η Docker κυκλοφόρησε το πρώτο τους λογισμικό μεταφοράς εμπορευματοκιβωτίων.
Και από τότε, μπορεί να έχετε παρατηρήσει το εκτεταμένο ενδιαφέρον για τα κοντέινερ και το πώς διαμορφώνουν το τοπίο του υπολογιστικού νέφους.
Πολλοί προγραμματιστές έχουν κερδίσει περισσότερο ενδιαφέρον, ιδιαίτερα για τα οφέλη της ευέλικτης ανάπτυξης που προσφέρουν τα κοντέινερ. Ωστόσο, θα πρέπει να σημειώσετε ότι τα κοντέινερ και οι εικονικές μηχανές έχουν δημιουργηθεί με βάση τη βελτιστοποίηση πόρων στην υπάρχουσα φυσική υποδομή.
Πώς λειτουργεί η εικονικοποίηση
Η εικονικοποίηση περιλαμβάνει τη χρήση λογισμικού για τη δημιουργία ενός στρώματος αφαίρεσης πάνω από το υλικό του υπολογιστή, επιτρέποντας στα στοιχεία υλικού, ας πούμε ιδιαίτερα από έναν υπολογιστή, να χωριστούν σε πολλούς υπολογιστές. Ένα τέτοιο λογισμικό ονομάζεται hypervisor.
Το Hypervisor επιτρέπει σε διάφορα λειτουργικά συστήματα να εκτελούνται ταυτόχρονα, μοιράζοντας κοινούς φυσικούς υπολογιστικούς πόρους. Όταν χρησιμοποιείται σε φυσικούς υπολογιστές ή διακομιστές σε κέντρα δεδομένων, θα επιτρέπει στους φυσικούς υπολογιστές να διαχωρίζουν τα λειτουργικά συστήματα υπολογιστών (OS) και τις εφαρμογές από το υλικό. Στη συνέχεια, μπορεί να χωριστεί σε πολλαπλές «εικονικές μηχανές».
Τι είναι ένα Container;
Πηγή: docker.com
Τα κοντέινερ είναι μια ελαφριά, ευέλικτη μέθοδος χειρισμού εικονικοποίησης. Και δεδομένου ότι δεν χρειάζονται hypervisors, σας δίνουν το δικαίωμα για ταχύτερη παροχή πόρων και γρήγορη διαθεσιμότητα για νέες εφαρμογές.
Μπορείτε επίσης να προβάλετε κοντέινερ ως πακέτα λογισμικού που περιέχουν εξαρτήσεις που απαιτούνται για την εκτέλεση της εφαρμογής λογισμικού διαχειριζόμενης εφαρμογής.
Οι εξαρτήσεις περιλαμβάνουν βιβλιοθήκες συστήματος, εξωτερικά πακέτα κώδικα (τρίτου κατασκευαστή) και τη συμπερίληψη όλων των άλλων εφαρμογών σε επίπεδο λειτουργικού συστήματος. Όλες οι εξαρτήσεις που περιλαμβάνονται σε ένα κοντέινερ υπάρχουν σε επίπεδα στοίβας υψηλότερα από τα λειτουργικά συστήματα.
Πλεονεκτήματα 👍
Μειονεκτήματα 👎
Δημοφιλείς πωλητές εμπορευματοκιβωτίων
Ακολουθούν ορισμένοι γνωστοί πάροχοι κοντέινερ:
Τι είναι μια εικονική μηχανή;
Πηγή: docker.com
Οι εικονικές μηχανές (VM), από την άλλη πλευρά, είναι μεγάλα (βαριά) πακέτα λογισμικού που παρέχουν πλήρη εξομοίωση εξοπλισμού υλικού χαμηλού επιπέδου, όπως η κεντρική μονάδα επεξεργασίας (CPU), ο δίσκος και οι συσκευές δικτύωσης.
Τα VM σάς επιτρέπουν να εκτελείτε πολλαπλές μηχανές σε διαφορετικά λειτουργικά συστήματα, αλλά ακόμα σε έναν μόνο υπολογιστή. Όπως αναφέρθηκε προηγουμένως, οι hypervisors είναι ο τρόπος με τον οποίο τα VM αλληλεπιδρούν με τους φυσικούς υπολογιστές. Οι υπερεπόπτες διαχωρίζουν τα VM το ένα από το άλλο και κατανέμουν πόρους όπως μνήμη και επεξεργαστές μεταξύ τους.
Πλεονεκτήματα 👍
Μειονεκτήματα 👎
Δημοφιλείς πωλητές εικονικών μηχανών
Ακολουθούν μερικοί δημοφιλείς προμηθευτές εικονικών μηχανών:
Containers εναντίον Virtual Machines
Ενώ οι εικονικές μηχανές υπάρχουν εδώ και πολύ καιρό, αντικαθίστανται από κοντέινερ για παρόμοιους σκοπούς. Έχετε δει τα πλεονεκτήματα και τα μειονεκτήματα και των δύο στοίβων τεχνολογίας. Εδώ είναι οι κύριες διαφορές.
FeatureContainers Virtual MachinesΜεγάλο και λιγότερο φορητό με βάση κάθε VM που έχει το λειτουργικό του σύστημα. Οι εικονικές μηχανές καταλαμβάνουν μεγάλο χώρο, μετρημένο σε gigabyte.
Τα εικονικά μηχανήματα δεν είναι φορητά. Δεν έχουν δικό τους λειτουργικό σύστημα. Έχουν τα δικά τους λειτουργικά συστήματα και επομένως εκτελούν επιπλέον εργασίες, όπως: εκτέλεση προγραμμάτων που δεν είναι συμβατά με το κεντρικό λειτουργικό σύστημα, πολλαπλά προγράμματα σε διαφορετικά λειτουργικά συστήματα και εκτέλεση εφαρμογών που δεν μπορούν να μοιραστούν πόρους και λειτουργίες του λειτουργικού συστήματος. Μέγεθος και φορητότηταΜικρές και φορητές χρεώσεις στο κοινόχρηστο λειτουργικό σύστημα. Τα δοχεία καταλαμβάνουν χώρο μετρημένο σε megabyte.
Τα κοντέινερ μπορούν να μετακινηθούν σε διαφορετικούς υπολογιστές. Τα κοντέινερ εκτελούνται πιο γρήγορα από τις εικονικές μηχανές λόγω του λειτουργικού τους συστήματος που ήδη λειτουργεί. Χρειάζονται δευτερόλεπτα για να τρέξουν. Τα speedVM στο χρόνο εκκίνησης είναι αργά καθώς πρέπει πρώτα να εκκινήσουν τα δικά τους λειτουργικά συστήματα. Χρειάζονται αρκετά λεπτά για την εκκίνηση. Η τιμή των εικονικών μηχανών είναι σχετικά υψηλότερη—η υψηλή ανάγκη για πόρους και επίπεδα πολυπλοκότητας και υψηλό κόστος. Πρόσβαση σε πόρους Τα κοντέινερ έχουν πρόσβαση σε όλους τους πόρους στη μηχανή υποδοχής. Οι εικονικές μηχανές χρησιμοποιούν τους συγκεκριμένους πόρους που τους έχουν εκχωρηθεί από τον hypervisor.Ασφάλεια Λιγότερο ασφαλής. Τα κοντέινερ που εκτελούνται σε ένα κοινόχρηστο λειτουργικό λογισμικό κεντρικού υπολογιστή είναι ευάλωτα όταν το λειτουργικό σύστημα κεντρικού υπολογιστή είναι σε κίνδυνο. Πολύπλοκη ανάπτυξη. Το επίπεδο πολυπλοκότητας των VM δείχνει ότι χρειάζονται περισσότερο χρόνο για ανάπτυξη. Η ανάπτυξη δεν είναι διαφορετική.ΑνάπτυξηΕύκολη ανάπτυξη. Αυτό οφείλεται στη φύση του, “αυτοδύναμο” και έχει μικρή ευκολία στην ανάπτυξη, μετακίνηση ή αναβάθμιση. Η τιμή των VM είναι σχετικά υψηλότερη. Η υψηλή ανάγκη για πόρους και τα επίπεδα πολυπλοκότητας, μαζί με αυτήν, είναι υψηλό κόστος. ΚόστοςΗ τιμή των κοντέινερ είναι σχετικά χαμηλότερη επειδή υπάρχουν λιγότερες απαιτήσεις από ό,τι στα VM. Η τιμή των VM είναι σχετικά υψηλότερη—η υψηλή ανάγκη για πόρους και η πολυπλοκότητα επίπεδα, μαζί με αυτό ένα υψηλό κόστος.
Πώς να χρησιμοποιείτε κοντέινερ και εικονικές μηχανές ταυτόχρονα
Εάν έχετε αναρωτηθεί εάν είναι δυνατό ή όχι να χρησιμοποιήσετε κοντέινερ και εικονικές μηχανές μαζί, η απάντηση είναι ναι. Ωστόσο, οι πρακτικές περιπτώσεις είναι περιορισμένες. Μπορείτε να δημιουργήσετε μια εικονική μηχανή για να προσομοιώσετε συγκεκριμένες διαμορφώσεις υλικού και να εγκαταστήσετε ένα λειτουργικό σύστημα.
Μόλις το VM σας εκκινήσει το λειτουργικό σύστημα και είναι πλήρως λειτουργικό, είστε πλέον εξοπλισμένοι με ένα εξομοιούμενο υπολογιστικό σύστημα με συγκεκριμένο υλικό στο οποίο μπορείτε να εγκαταστήσετε κοντέινερ.
Ένα καλό παράδειγμα για την απεικόνιση αυτής της διαμόρφωσης είναι ο πειραματισμός με ένα σύστημα για την ανάπτυξη τσιπ. Ορισμένες δημοφιλείς μέθοδοι για υπολογιστικές συσκευές στο τσιπ, όπως οι πίνακες ανάπτυξης BeagleBone και το Raspberry Pi μπορούν να εξομοιωθούν ως εικονικές μηχανές για να πειραματιστούν με λειτουργικά (σε λειτουργία) κοντέινερ πριν από τη δοκιμή σε πραγματικό υλικό.
Ένα άλλο πλεονέκτημα της χρήσης της ένωσης κοντέινερ και εικονικών μηχανών είναι η αύξηση της ασφάλειας. Για παράδειγμα, μπορείτε να αναπτύξετε κοντέινερ σε εικονικές μηχανές. Εξετάστε ένα παράδειγμα όπου δέκα κοντέινερ αναπτύσσονται σε έναν υπολογιστή για να δείξετε πώς αυτό είναι χρήσιμο.
Εάν ο υπολογιστής παραβιαστεί, κινδυνεύετε να επηρεάσετε τα δέκα κοντέινερ. Η λύση επιτυγχάνεται με τη διανομή των δέκα κοντέινερ σε δέκα εικονικές μηχανές. Εάν μια εικονική μηχανή παραβιαστεί, τα άλλα μέρη της εφαρμογής συστήματος εξακολουθούν να λειτουργούν συνήθως.
Τελικές Λέξεις
Εάν έχετε ακριβείς προδιαγραφές υλικού για το έργο σας ή αναπτύσσετε σε ένα υλικό και εξακολουθείτε να στοχεύετε ένα άλλο, όπως Windows έναντι MacOS, θα ήταν καλύτερο να χρησιμοποιήσετε εικονικές μηχανές. Σε άλλες περιπτώσεις όπου οι απαιτήσεις είναι «μόνο λογισμικό», η καλύτερη επιλογή θα ήταν η χρήση κοντέινερ.
Στις περισσότερες περιπτώσεις, οι ανάγκες σας θα ικανοποιηθούν με οποιαδήποτε από τις επιλογές σας. Για να επιλέξετε το καλύτερο, κατανοήστε τις ανάγκες σας σε πόρους και τις σχετικές ανταλλαγές. Το σωστό εργαλείο θα εξαρτηθεί επομένως από το έργο σας.
Εάν χρειάζεστε γρήγορη, αποτελεσματική ανάπτυξη, τα κοντέινερ είναι η καλύτερη επιλογή σας. Εάν ο οργανισμός σας χρειάζεται να εικονικοποιήσει ένα πλήρες λειτουργικό σύστημα σε υλικό, τα VM είναι τα καλύτερα. Και αν θέλετε να μεγιστοποιήσετε την ασφάλεια, ένας συνδυασμός και των δύο θα ήταν καλύτερος. Ωστόσο, έχει ένα σχετικό κόστος.
Τέλος, τόσο τα κοντέινερ όσο και οι εικονικές μηχανές είναι έγκυρες λύσεις. Ωστόσο, οι προδιαγραφές σας θα πρέπει να είναι ο καθοριστικός κατευθυντήριος παράγοντας. Εάν εξακολουθείτε να χρειάζεστε περισσότερη καθοδήγηση και βαθιά κατανόηση, θα πρότεινα να κατευθυνθείτε στο Docker εναντίον εικονικής μηχανής.