Πίνακας περιεχομένων
Εάν εργάζεστε στον κλάδο του λογισμικού ή γύρω από αυτόν, πιθανώς έχετε ακούσει για τις εικονικές μηχανές. Εάν όχι, ίσως αναρωτιέστε τι είναι και για ποιο λόγο χρησιμοποιούνται.
Ως μηχανικός λογισμικού, χρησιμοποιώ καθημερινά εικονικές μηχανές. Είναι ισχυρά εργαλεία στην ανάπτυξη λογισμικού, αλλά έχουν και άλλες χρήσεις. Γνωστές και ως VM, πολλές επιχειρήσεις τις χρησιμοποιούν λόγω της ευελιξίας, της αξιοπιστίας και της οικονομικής αποδοτικότητάς τους- αποτρέπουν επίσης καταστροφές από ανεξέλεγκτες δοκιμές λογισμικού.
Ας δούμε τι είναι οι εικονικές μηχανές και γιατί χρησιμοποιούνται.
Τι είναι μια εικονική μηχανή;
Μια εικονική μηχανή είναι μια περίπτωση ενός λειτουργικού συστήματος (ΛΣ), όπως τα Windows, το Mac OS ή το Linux, που εκτελείται εντός του κύριου λειτουργικού συστήματος ενός υπολογιστή.
Συνήθως, εκτελείται σε ένα παράθυρο εφαρμογής στην επιφάνεια εργασίας σας. Μια εικονική μηχανή έχει πλήρη λειτουργικότητα και λειτουργεί σαν ξεχωριστός υπολογιστής ή μηχανή. Στην ουσία, μια εικονική μηχανή είναι ένας εικονικός υπολογιστής που εκτελείται μέσα σε έναν άλλο υπολογιστή, γνωστό ως μηχανή υποδοχής.
Εικόνα 1: Εικονική μηχανή που εκτελείται σε φορητό υπολογιστή.
Μια εικονική μηχανή δεν διαθέτει υλικό (μνήμη, σκληρό δίσκο, πληκτρολόγιο ή οθόνη). Χρησιμοποιεί προσομοιωμένο υλικό από το μηχάνημα υποδοχής. Εξαιτίας αυτού, πολλαπλές εικονικές μηχανές, που αναφέρονται επίσης ως "επισκέπτες", μπορούν να εκτελούνται σε ένα μόνο μηχάνημα υποδοχής.
Εικόνα 2: Μηχάνημα υποδοχής που εκτελεί πολλαπλά VM.
Ο κεντρικός υπολογιστής μπορεί επίσης να εκτελεί πολλαπλές Εικονικές Μηχανές με διαφορετικά λειτουργικά συστήματα, όπως Linux, Mac OS και Windows. Αυτή η δυνατότητα εξαρτάται από λογισμικό που ονομάζεται hypervisor (βλ. Εικόνα 1 παραπάνω). Ο hypervisor εκτελείται στο μηχάνημα κεντρικού υπολογιστή και σας επιτρέπει να δημιουργείτε, να διαμορφώνετε, να εκτελείτε και να διαχειρίζεστε εικονικές μηχανές.
Ο hypervisor κατανέμει χώρο στο δίσκο, προγραμματίζει το χρόνο επεξεργασίας και διαχειρίζεται τη χρήση της μνήμης για κάθε VM. Αυτό κάνουν εφαρμογές όπως το Oracle VirtualBox, το VMware, το Parallels, το Xen, το Microsoft Hyper-V και πολλές άλλες: είναι hypervisors.
Ένας hypervisor μπορεί να εκτελείται σε φορητό υπολογιστή, υπολογιστή ή διακομιστή. Καθιστά τις εικονικές μηχανές διαθέσιμες στον τοπικό υπολογιστή ή σε χρήστες που είναι κατανεμημένοι σε ένα δίκτυο.
Διαφορετικοί τύποι εικονικών μηχανών και περιβαλλόντων απαιτούν διαφορετικούς τύπους hypervisors. Ας ρίξουμε μια ματιά σε μερικούς από αυτούς.
Τύποι εικονικών μηχανών
Εικονικές μηχανές συστήματος
Τα VM συστήματος, που μερικές φορές αποκαλούνται και πλήρης εικονικοποίηση, εκτελούνται από έναν hypervisor και παρέχουν τη λειτουργικότητα ενός πραγματικού συστήματος υπολογιστή. Χρησιμοποιούν το εγγενές λειτουργικό σύστημα του κεντρικού υπολογιστή για τη διαχείριση και τον διαμοιρασμό των πόρων του συστήματος.
Οι εικονικές μηχανές συστήματος συχνά απαιτούν έναν ισχυρό κεντρικό υπολογιστή με γρήγορους ή πολλαπλούς επεξεργαστές, μεγάλες ποσότητες μνήμης και τόνους χώρου στο δίσκο. Ορισμένες, οι οποίες εκτελούνται σε προσωπικούς ή φορητούς υπολογιστές, μπορεί να μην απαιτούν την υπολογιστική ισχύ που χρειάζονται οι μεγάλοι επιχειρηματικοί εικονικοί διακομιστές- ωστόσο, θα λειτουργούν αργά αν το σύστημα του κεντρικού υπολογιστή δεν είναι επαρκές.
Εικονικές μηχανές επεξεργασίας
Οι εικονικές μηχανές διεργασιών είναι αρκετά διαφορετικές από τις SVM - μπορεί να τις έχετε εκτελέσει στο μηχάνημά σας και να μην το γνωρίζετε καν. Είναι επίσης γνωστές ως εικονικές μηχανές εφαρμογών ή διαχειριζόμενα περιβάλλοντα χρόνου εκτέλεσης (MREs). Αυτές οι εικονικές μηχανές εκτελούνται μέσα σε ένα λειτουργικό σύστημα υποδοχής και υποστηρίζουν εφαρμογές ή διεργασίες συστήματος.
Γιατί να χρησιμοποιήσετε ένα PVM; Εκτελούν υπηρεσίες χωρίς να εξαρτώνται από συγκεκριμένα λειτουργικά συστήματα ή υλικό. Έχουν το δικό τους μικρό λειτουργικό σύστημα με μόνο τους πόρους που χρειάζονται. Το MRE βρίσκεται σε ένα ξεχωριστό περιβάλλον- δεν έχει σημασία αν εκτελείται σε Windows, Mac OS, Linux ή οποιοδήποτε άλλο μηχάνημα υποδοχής.
Μία από τις πιο συνηθισμένες Εικονικές Μηχανές Διεργασιών είναι αυτή που πιθανώς έχετε ακούσει και ίσως έχετε δει να εκτελείται στον υπολογιστή σας. Χρησιμοποιείται για την εκτέλεση εφαρμογών Java και ονομάζεται Java Virtual Machine ή εν συντομία JVM.
Τύποι Hypervisors
Οι περισσότερες από τις εικονικές μηχανές με τις οποίες ασχολούμαστε χρησιμοποιούν έναν hypervisor επειδή εξομοιώνουν ένα ολόκληρο σύστημα υπολογιστή. Υπάρχουν δύο διαφορετικοί τύποι hypervisors: οι Bare Metal Hypervisors και οι Hosted Hypervisors. Ας ρίξουμε μια γρήγορη ματιά και στους δύο.
Bare Metal Hypervisor
Οι BMH μπορούν επίσης να αποκαλούνται εγγενείς hypervisors και εκτελούνται απευθείας στο υλικό του κεντρικού υπολογιστή αντί να εκτελούνται στο λειτουργικό σύστημα του κεντρικού υπολογιστή. Στην πραγματικότητα, παίρνουν τη θέση του λειτουργικού συστήματος του κεντρικού υπολογιστή, προγραμματίζοντας και διαχειριζόμενες τη χρήση υλικού από κάθε εικονική μηχανή, αποκόπτοντας έτσι τον "ενδιάμεσο" (το λειτουργικό σύστημα του κεντρικού υπολογιστή) από τη διαδικασία.
Οι εγγενείς hypervisors χρησιμοποιούνται συνήθως για επιχειρησιακές VM μεγάλης κλίμακας, τις οποίες χρησιμοποιούν οι εταιρείες για να παρέχουν στους υπαλλήλους τους πόρους διακομιστών. Το Microsoft Azure ή το Amazon Web Services είναι VM που φιλοξενούνται σε αυτού του είδους την αρχιτεκτονική. Άλλα παραδείγματα είναι το KVM, το Microsoft Hyper-V και το VMware vSphere.
Hosted Hypervisor
Οι hosted hypervisors εκτελούνται σε τυπικά λειτουργικά συστήματα - όπως και κάθε άλλη εφαρμογή που εκτελούμε στα μηχανήματά μας. Χρησιμοποιούν το λειτουργικό σύστημα του κεντρικού υπολογιστή για τη διαχείριση και τη διανομή των πόρων. Αυτός ο τύπος hypervisor είναι καταλληλότερος για μεμονωμένους χρήστες που πρέπει να εκτελούν πολλαπλά λειτουργικά συστήματα στα μηχανήματά τους.
Σε αυτές περιλαμβάνονται εφαρμογές όπως το Oracle VirtualBox, το VMware Workstations, το VMware Fusion, το Parallels Desktop και πολλές άλλες. Μπορείτε να βρείτε περισσότερες λεπτομερείς πληροφορίες σχετικά με τα hosted hypervisors στο άρθρο μας, Best Virtual Machine Software.
Γιατί να χρησιμοποιήσετε εικονικές μηχανές;
Τώρα που έχετε μια βασική κατανόηση του τι είναι μια εικονική μηχανή, μπορείτε πιθανώς να σκεφτείτε μερικές εξαιρετικές εφαρμογές. Ακολουθούν μερικοί από τους κυριότερους λόγους για τους οποίους οι άνθρωποι χρησιμοποιούν εικονικές μηχανές.
1. Οικονομικά αποδοτικό
Οι εικονικές μηχανές είναι οικονομικά αποδοτικές σε πολλές περιπτώσεις. Μία από τις πιο σημαντικές είναι στον κόσμο των επιχειρήσεων. Η χρήση φυσικών διακομιστών για την παροχή πόρων στους υπαλλήλους μπορεί να είναι πολύ δαπανηρή. Το υλικό δεν είναι φθηνό και η συντήρησή του είναι ακόμη πιο δαπανηρή.
Η χρήση εικονικών μηχανών ως διακομιστές επιχειρήσεων έχει γίνει πλέον ο κανόνας. Με τις VM από έναν πάροχο όπως το MS Azure, δεν υπάρχουν αρχικές αγορές υλικού και δεν υπάρχουν τέλη συντήρησης. Αυτές οι VM μπορούν να εγκατασταθούν, να διαμορφωθούν και να χρησιμοποιηθούν με ελάχιστες δεκάρες την ώρα. Μπορούν επίσης να κλείσουν όταν δεν χρησιμοποιούνται και να μην επιβαρύνονται με κανένα κόστος.
Η χρήση ενός VM στο μηχάνημά σας μπορεί επίσης να είναι μια τεράστια εξοικονόμηση χρημάτων. Εάν πρέπει να κάνετε εργασίες σε πολλαπλά λειτουργικά συστήματα ή διαφορετικές διαμορφώσεις υλικού, μπορείτε να
χρήση πολλαπλών εικονικών μηχανών σε έναν κεντρικό υπολογιστή - δεν χρειάζεται να βγείτε και να αγοράσετε ξεχωριστό υπολογιστή για κάθε εργασία.
2. Επεκτάσιμη και ευέλικτη
Είτε πρόκειται για επιχειρησιακούς διακομιστές είτε για VM που εκτελούνται στον φορητό σας υπολογιστή, οι εικονικές μηχανές είναι επεκτάσιμες. Είναι εύκολο να προσαρμόσετε τους πόρους ώστε να ταιριάζουν στις ανάγκες σας. Αν χρειάζεστε περισσότερη μνήμη ή χώρο στο σκληρό δίσκο, απλώς μεταβείτε στον hypervisor και επαναρυθμίστε την VM ώστε να διαθέτει περισσότερο. Δεν χρειάζεται να αγοράσετε νέο υλικό και η διαδικασία μπορεί να ολοκληρωθεί γρήγορα.
3. Γρήγορη ρύθμιση
Ένα νέο VM μπορεί να ρυθμιστεί γρήγορα. Είχα περιπτώσεις όπου χρειαζόμουν τη ρύθμιση ενός νέου VM, κάλεσα τον συνάδελφό μου που τα διαχειρίζεται και τα είχα έτοιμα προς χρήση σε λιγότερο από μία ώρα.
4. Ανάκτηση από καταστροφές
Εάν προσπαθείτε να αποτρέψετε την απώλεια δεδομένων και να προετοιμαστείτε για την ανάκτηση μετά από καταστροφή, οι εικονικές μηχανές μπορούν να αποτελέσουν ένα καταπληκτικό εργαλείο. Είναι εύκολο να δημιουργήσετε αντίγραφα ασφαλείας και μπορούν να διανεμηθούν σε διαφορετικές τοποθεσίες, εάν χρειαστεί. Εάν ένα τρίτο μέρος, όπως η Microsoft ή η Amazon, φιλοξενεί τις εικονικές μηχανές, αυτές θα βρίσκονται εκτός του χώρου σας, πράγμα που σημαίνει ότι τα δεδομένα σας είναι ασφαλή εάν το γραφείο σας καεί.
5. Εύκολη αναπαραγωγή
Οι περισσότεροι hypervisors σάς επιτρέπουν να δημιουργήσετε ένα αντίγραφο ή εικόνα ενός VM. Η εικόνα σάς επιτρέπει να δημιουργήσετε εύκολα ακριβή αντίγραφα του ίδιου βασικού VM για οποιαδήποτε κατάσταση.
Στο περιβάλλον στο οποίο εργάζομαι, δίνουμε σε κάθε προγραμματιστή ένα VM για να το χρησιμοποιεί για ανάπτυξη και δοκιμές. Αυτή η διαδικασία μας επιτρέπει να έχουμε μια εικόνα διαμορφωμένη με όλα τα απαραίτητα εργαλεία και λογισμικό. Όταν έχουμε έναν νέο προγραμματιστή στο onboarding, το μόνο που έχουμε να κάνουμε είναι να δημιουργήσουμε ένα αντίγραφο αυτής της εικόνας και να έχουν ό,τι χρειάζονται για να ξεκινήσουν να εργάζονται.
6. Τέλειο για Dev/Test
Ένα από τα καλύτερα πλεονεκτήματα της χρήσης εικονικών μηχανών είναι ότι αποτελούν ένα τέλειο εργαλείο για την ανάπτυξη και τη δοκιμή λογισμικού. Οι εικονικές μηχανές επιτρέπουν στους προγραμματιστές να αναπτύσσουν σε πολλαπλές πλατφόρμες και περιβάλλοντα σε ένα μηχάνημα. Εάν αυτή η εικονική μηχανή καταστραφεί ή καταστραφεί, μπορεί να δημιουργηθεί γρήγορα μια νέα.
Επιτρέπουν σε έναν ελεγκτή να έχει ένα καθαρό νέο περιβάλλον για κάθε κύκλο δοκιμών. Έχω εργαστεί σε έργα όπου έχουμε δημιουργήσει αυτοματοποιημένα σενάρια δοκιμών που δημιουργούν ένα νέο VM, εγκαθιστούν την τελευταία έκδοση λογισμικού, εκτελούν όλες τις απαιτούμενες δοκιμές και στη συνέχεια διαγράφουν το VM μόλις ολοκληρωθούν οι δοκιμές.
Οι VM λειτουργούν θαυμάσια για δοκιμές προϊόντων και κριτικές όπως αυτές που κάνουμε εδώ στο SoftwareHow.com. Μπορώ να εγκαταστήσω εφαρμογές σε ένα VM που τρέχει στο μηχάνημά μου και να τις δοκιμάσω χωρίς να επιβαρύνω το κύριο περιβάλλον μου.
Όταν τελειώσω τις δοκιμές, μπορώ πάντα να διαγράψω την εικονική μηχανή και στη συνέχεια να δημιουργήσω μια νέα όταν τη χρειαστώ. Αυτή η διαδικασία μου επιτρέπει επίσης να δοκιμάζω σε πολλαπλές πλατφόρμες, παρόλο που έχω μόνο μια μηχανή Windows.
Τελικά λόγια
Όπως μπορείτε να δείτε, οι εικονικές μηχανές είναι ένα αποδοτικό από άποψη κόστους, ευέλικτο εργαλείο που μπορεί να χρησιμοποιηθεί για πολλές εφαρμογές. Δεν χρειάζεται πλέον να αγοράζουμε, να εγκαθιστούμε και να συντηρούμε ακριβό υλικό για να παρέχουμε πρόσβαση σε διακομιστές για δοκιμαστές, προγραμματιστές και άλλους. Οι εικονικές μηχανές μας δίνουν την ευελιξία να δημιουργούμε εύκολα και γρήγορα τα λειτουργικά συστήματα, το υλικό και τα περιβάλλοντα που χρειαζόμαστε - ανά πάσα στιγμή.