Προγραμματισμός

Ανασκόπηση: Οι καλύτερες διανομές Linux για Docker και κοντέινερ

Τους τελευταίους έξι μήνες έχω ελέγξει πέντε ελάχιστες διανομές Linux που έχουν βελτιστοποιηθεί για την εκτέλεση κοντέινερ: Alpine Linux, CoreOS Container Linux, RancherOS, Red Hat Atomic Host και VMware Photon OS. Γενικώς γνωστά ως «λειτουργικά συστήματα κοντέινερ», αυτά τα απογυμνωμένα, κατασκευασμένες Linux διανομές δεν είναι ο μόνος τρόπος για την εκτέλεση κοντέινερ στην παραγωγή, αλλά παρέχουν μια βάση που δεν σπαταλά πόρους σε οτιδήποτε εκτός από την υποστήριξη κοντέινερ.

Η κατάσταση της βιομηχανίας με συστήματα ανάπτυξης κοντέινερ μοιάζει πολύ με τις πρώτες μέρες των διανομών Linux. Έχετε ένα βασικό στοιχείο, σε αυτήν την περίπτωση το κοντέινερ Docker, το οποίο περιβάλλεται από διάφορα ανταγωνιστικά στοιχεία του οικοσυστήματος. Ακριβώς όπως οι παραδοσιακές διανομές Linux συνδυάζουν διαφορετικούς διαχειριστές πακέτων, περιβάλλοντα επιτραπέζιου υπολογιστή, βοηθητικά προγράμματα, υπηρεσίες και εφαρμογές, οι περισσότερες διανομές κοντέινερ συνδυάζουν και ταιριάζουν με διάφορα στοιχεία για να δημιουργήσουν αυτό που θεωρούν βέλτιστη λύση. Πάρτε για παράδειγμα κατανεμημένη διαμόρφωση και ανακάλυψη υπηρεσίας. Υπάρχουν πολλές λύσεις για αυτό, όπως Etcd, Consul και ZooKeeper.

Κάθε διανομή ακολουθεί μια διαφορετική προσέγγιση για το τι πρέπει να συμπεριλάβει στη στοίβα. Στο ένα άκρο υπάρχουν διανομές που έχουν σχεδιαστεί για να υποστηρίζουν μόνο τα υψηλότερα επίπεδα της στοίβας, όπως το CoreOS Container Linux και το Red Hat Project Atomic. Τόσο μεγάλο μέρος της λειτουργικότητας έχει τοποθετηθεί στο ιδιόκτητο επίπεδο διαχείρισης που υπάρχει μικρή ελπίδα να χρησιμοποιήσετε το λειτουργικό σύστημα για οτιδήποτε άλλο. Άλλες διανομές, όπως το RancherOS και το VMware Photon OS, παρέχουν μεγαλύτερη ευελιξία, υποστηρίζοντας πολλαπλά στοιχεία οικοσυστήματος και συστήματα ενορχήστρωσης. Αυτά δίνουν στους διαχειριστές έναν καλό τρόπο για να πειραματιστούν και ενδεχομένως να αποφύγουν το κλείδωμα του προμηθευτή.

Alpine Linux

Το Alpine Linux, το υποκείμενο λειτουργικό σύστημα για πολλές επίσημες εικόνες Docker, είναι μια εξαιρετική επιλογή για την εργασία. Με μέγεθος μόλις πέντε megabyte, το Alpine Linux βρίσκεται στο αντίθετο άκρο του φάσματος από τις διανομές Linux πλήρους λίπους πριν από λίγα χρόνια, οι οποίες ανταγωνίζονταν το Solaris και σκόπευαν να λειτουργήσουν σε τεράστια συστήματα υλικού. Αυτή η νέα φυλή Linux έχει σχεδιαστεί για να λειτουργεί σε ενσωματωμένο υλικό και καταναλώνει ελάχιστους πόρους, καθιστώντας την ιδανική επιλογή για κοντέινερ.

Η κληρονομιά του Alpine Linux ως ενσωματωμένο λειτουργικό σύστημα ήταν εμφανής κατά την αναθεώρησή μου. Πολλές από τις επιλογές διαμόρφωσης είναι προεπιλεγμένες σε ενσωματωμένα συστήματα και η τεκμηρίωση σε πολλές περιοχές ήταν αραιή ή ανύπαρκτη. Σαφώς ένα σύστημα που έχει σχεδιαστεί και χρησιμοποιείται κυρίως από χάκερ, το Alpine Linux θα απαιτήσει από τις εταιρείες να ξεκαθαρίσουν μερικά εμπόδια για την κατασκευή των εφαρμογών τους.

Οι εφαρμογές παραγωγής του Alpine Linux θα απολαμβάνουν πολλά πλεονεκτήματα, όπως ταχεία εκκίνηση, μινιμαλιστικό αποτύπωμα και ασφαλή από προεπιλογή στάση που δεν βρίσκονται αλλού. Όλα από τα δυαδικά συστήματα έως τις βιβλιοθήκες C έχουν σχεδιαστεί για μικρές, γρήγορες και ασφαλείς αναπτύξεις. Δεν υπάρχει φούσκωμα εδώ.

Η διαχείριση του Alpine Linux είναι διαφορετική από τα παραδοσιακά συστήματα Linux και θα χρειαστεί λίγος χρόνος για να μάθει. Η εγκατάσταση και η διαχείριση πακέτων είναι μοναδικά ακόμη και μεταξύ των λειτουργικών συστημάτων κοντέινερ, αν και καλά μελετημένα. Εάν το κατάστημά σας ανάπτυξης έχει προγραμματιστές άνω του μέσου όρου που είναι πρόθυμοι να πραγματοποιήσουν την επένδυση, το Alpine Linux θα προσφέρει μια σταθερή, σταθερή και ασφαλή βάση για εφαρμογές για πολύ καιρό.

CoreOS Container Linux

Η στοίβα κοντέινερ CoreOS βασίζεται στο Etcd για κατανεμημένο χώρο αποθήκευσης και ανακάλυψης υπηρεσιών, Flannel για δικτύωση και Kubernetes για ενορχήστρωση κοντέινερ και υποστηρίζει τη δική του γεύση μορφής κοντέινερ, rkt (Rocket), εκτός από το Docker. Το Rocket ήταν μια προσπάθεια σε μια ανταγωνιστική μορφή κοντέινερ για την αντιμετώπιση των ελλείψεων στη μορφή Docker γύρω στο 2015, αλλά με αυτές τις ελλείψεις που αντιμετωπίστηκαν, η Rocket δεν έχει δει μεγάλη απορρόφηση.

Σχετικό βίντεο: Τι είναι το Kubernetes;

Σε αυτό το βίντεο 90 δευτερολέπτων, μάθετε για το Kubernetes, το σύστημα ανοιχτού κώδικα για την αυτοματοποίηση εφαρμογών σε κοντέινερ, από έναν από τους εφευρέτες της τεχνολογίας, τον Joe Beda, ιδρυτή και CTO στο Heptio.

Το CoreOS, όπως το Project Atomic, δεν φοβάται να αποκλίνει ριζικά από το παραδοσιακό Linux. Όπως και το λειτουργικό σύστημα κοντέινερ της Red Hat, το CoreOS Container Linux δημιουργεί ένα σχεδόν αμετάβλητο σύστημα αρχείων, αλλά το κάνει με ένα σύστημα διαμέρισης δίσκων εμπνευσμένο από το Chromium OS της Google. Αυτό που κάνει είναι να διατηρήσει το παλιό σύστημα αρχείων σε ένα διαμέρισμα, πράγμα που σημαίνει ότι οι επαναφορές είναι πάντα ασφαλείς και γρήγορες.

Αν και η τεκμηρίωση είναι αρκετά καλή και περιεκτική, βρήκα την εγκατάσταση κάπως δυσκίνητη, που περιλαμβάνει μια διαδικασία δύο βημάτων για την εξαγωγή του αρχείου διαμόρφωσης. Μόλις εγκατασταθεί, το CoreOS προσφέρει συνεχείς αναβαθμίσεις «χωρίς διακοπή λειτουργίας», μια δυνατότητα που καθίσταται δυνατή από τη μοναδική διάταξη διαμέρισης δίσκου. Το CoreOS έχει κάνει πολλή δουλειά εδώ και η εταιρεία προσφέρει διάφορες επιλογές συντήρησης που θα ταιριάζουν περισσότερο σε κάθε οργανισμό, συμπεριλαμβανομένης της δυνατότητας εξαίρεσης.

Το CoreOS, κάπως σαν το Project Atomic, είναι μια απόφαση «όλα-ή-τίποτα». Το να διαχωρίσετε τα κομμάτια και να χρησιμοποιήσετε το υποκείμενο λειτουργικό σύστημα για να φτιάξετε τη δική σας υποδομή κοντέινερ δεν είναι πραγματικά μια επιλογή λόγω όλων των αποφάσεων αρχιτεκτονικού σχεδιασμού που ενσωματώνονται στην πλατφόρμα. Εάν είστε πρόθυμοι να αποδεχτείτε αυτές τις αποφάσεις και να πληρώσετε για την εμπορική διανομή Kubernetes της CoreOS, Tectonic, αναμφίβολα θα μπορούσατε να εκτελέσετε κάποια σοβαρά βαριά ανύψωση.

Rancher Labs RancherOS

Το RancherOS Rancher Labs είναι ένα λειτουργικό σύστημα Linux που αποτελείται αποκλειστικά από κοντέινερ. Ακόμη και η διαδικασία init (PID 1) είναι ένα κοντέινερ Docker. Αυτό σημαίνει ότι δεν υπάρχει ανάγκη για ένα σύστημα διαχείρισης πακέτων. Η διαχείριση των αναβαθμίσεων OS (και των υποβαθμίσεων) γίνεται με το Docker, όπως και κάθε άλλο κοντέινερ.

Αν και αυτή η προσέγγιση είναι εξίσου ριζοσπαστική με τις αρχιτεκτονικές αποφάσεις που λαμβάνονται σε ορισμένες από τις άλλες διανομές, όπως το Project Atomic και το CoreOS, το αποτέλεσμα είναι μια εκπληκτική απλότητα. Παρόλο που η εκμάθηση οποιασδήποτε εντελώς νέας διαχείρισης συστήματος φαίνεται τρομακτική στην αρχή, πρέπει να γνωρίζετε το Docker να διαχειρίζεται τα κοντέινερ ούτως ή άλλως, οπότε γιατί να μην χρησιμοποιήσετε το ίδιο σύστημα και για τα δύο;

Το RancherOS φαίνεται να ωριμάζει γρήγορα. Στην κριτική μου, βρήκα την τεκμηρίωση λίγο λείπει, αλλά οποιοσδήποτε προγραμματιστής ή διαχειριστής εξοικειωμένος με τα κοντέινερ Docker θα γνωρίζει ήδη το μεγαλύτερο μέρος του συστήματος. Το RancherOS έχει ένα μικρό αποτύπωμα (20MB) και κάνει αποτελεσματική χρήση των πόρων. Αν και οι γραμμές μεταξύ Rancher του συστήματος διαχείρισης κοντέινερ και Rancher του λειτουργικού συστήματος είναι κάπως θολές, το σύστημα διαχείρισης κοντέινερ είναι δωρεάν και ανοιχτού κώδικα, οπότε δεν υπάρχει λόγος να επιχειρήσετε να κυλήσετε το δικό σας. Οι οργανισμοί που χρειάζονται πρόσβαση στον πηγαίο κώδικα δεν πρέπει να κοιτάζουν πλέον.

Η πλατφόρμα Rancher υποστηρίζει σχεδόν ολόκληρο το οικοσύστημα εργαλείων για τη διαχείριση εμπορευματοκιβωτίων, συμπεριλαμβανομένων των Docker Swarm, Kubernetes και Mesos, και προχωρά γρήγορα. Παρόλο που είναι ριζικά διαφορετικό από το παραδοσιακό UNIX, το RancherOS φαίνεται να έχει ακολουθήσει περισσότερο τη βασική φιλοσοφία του UNIX από τις υπόλοιπες διανομές OS εμπορευματοκιβωτίων: Απλά εργαλεία που λειτουργούν μαζί με κομψό τρόπο

Red Hat Project Atomic

Το Project Atomic της Red Hat βρίσκεται σταθερά στο στρατόπεδο εξυπηρέτησης του Kubernetes. Συνήθως αυτός ο τύπος ανάπτυξης προσανατολίζεται σε σενάρια μεγάλης κλίμακας, εξαιρετικά διαθέσιμα. Το μειονέκτημα είναι ότι, ουσιαστικά, πρέπει να "κάνετε όπως σας λένε" και να σχεδιάσετε την εφαρμογή από τη σύμβαση.

Στο πλαίσιο θα βρείτε Flannel για δικτύωση, κ.λπ. για κατανεμημένο χώρο αποθήκευσης κλειδιού-τιμής και OSTree για διαχείριση κεντρικού υπολογιστή. Το OSTree είναι ένας σχετικά νέος τρόπος ανάπτυξης ενός λειτουργικού συστήματος σε κλίμακα με αξιόπιστο και κατανεμημένο τρόπο. Το Atomic συνδυάζει το OSTree με έναν νέο διαχειριστή πακέτων RPM για να δημιουργήσει το RPM-OSTree, το οποίο παρέχει ένα κυρίως αμετάβλητο σύστημα αρχείων.

Βρήκα το Project Atomic ως πρόκληση. Είναι πολύ φιλόδοξο και κινείται γρήγορα, με πολλά κινούμενα μέρη. RHEL, CentOS, Fedora, SELinux, Systemd, ένα προσαρμοσμένο σύνολο εντολών "Docker" για τον έλεγχο του υποκείμενου κεντρικού υπολογιστή ... είναι όλοι στο μείγμα και η τεκμηρίωση είναι αποδιοργανωμένη και μπερδεμένη. Επιπλέον, στο μικρό σύμπλεγμα μου, χωρίς Chef, Salt ή Puppet, έπρεπε να διαμορφώσω χειροκίνητα κάθε κόμβο.

Η ουσία είναι ότι το Project Atomic χρειάζεται ακόμα λίγο χρόνο για να ψηθεί. Εάν το όραμα πραγματοποιηθεί, τότε μπορεί να γίνει το πρότυπο του μέλλοντος - αν και όχι για κέντρα δεδομένων με εκατοντάδες κόμβους αλλά χιλιάδες ή δεκάδες χιλιάδες. Από αυτή την άποψη, το όραμα φαίνεται πιο κοντά στο όριο του Mesos από ένα τυπικό σύστημα ανάπτυξης εμπορευματοκιβωτίων. Εάν η εταιρεία σας ζει και αναπνέει το οικοσύστημα Red Hat και σκοπεύει να μείνει εκεί, τότε το Project Atomic αξίζει πιθανώς να ξεκινήσετε.

Λειτουργικό σύστημα VMware Photon

Το VMware's Photon OS είναι ένας ελάχιστος κεντρικός υπολογιστής κοντέινερ Linux που έχει σχεδιαστεί για να έχει ένα μικρό αποτύπωμα και συντονισμένο για τους επόπτες VMware. Ως εκ τούτου, το Photon OS λειτουργεί μόνο σε εικονικά περιβάλλοντα. Δεν είναι δυνατή η ανάπτυξη φυσικού υλικού. Το Photon OS είναι προσαρμοσμένο για να διευκολύνει τη διαχείριση κοντέινερ, αλλά όχι τόσο ριζικά όσο το Atomic ή το CoreOS. Το Photon OS είναι περισσότερο ένα εξελικτικό βήμα.

Με βάση τις δοκιμές μου, το Photo OS ανταποκρίνεται στις υποσχέσεις του στο εικονικό περιβάλλον VMware. (Το Photon OS μπορεί επίσης να τρέχει σε άλλους υπεύθυνους εποπτείας, καθώς και στα σύννεφα Google και Amazon.) Επειδή το Photon OS μπορεί να κάνει υποθέσεις σχετικά με το υλικό (εικονικό), το οικοσύστημα μοιάζει πολύ με το τυπικό Linux, καθιστώντας την καμπύλη εκμάθησης λιγότερο απότομη. Η δικτύωση και η αποθήκευση είναι συμβατά με το Systemd και υπάρχει μια σειρά επιλογών που τεκμηριώνονται για τη δικτύωση κοντέινερ. Η τεκμηρίωση για το Photon OS μπορεί να είναι η καλύτερη μεταξύ των προϊόντων που έχουν αξιολογηθεί.

Το VMware πρωτοστατεί στην παραγωγή δοχείων για παραδοσιακά περιβάλλοντα, και αυτό έχει νόημα όταν το σκέφτεστε. Πόσο συχνά σας ζητήθηκε να περιγράψετε τη διαφορά μεταξύ ενός κοντέινερ και ενός VM; Με το Photon OS, σύντομα δεν θα υπάρξει καμία διαφορά: Τα κοντέινερ θα είναι απλώς ένα ελαφρύ VM, θα αναπτύσσεται και θα διαχειρίζεται με τα ίδια εργαλεία. Το Photon OS υποστηρίζει σχεδόν κάθε σημαντικό κομμάτι του οικοσυστήματος εμπορευματοκιβωτίων: κοντέινερ Docker and Rocket, Docker Swarm, Kubernetes, Mesos, Google Cloud Engine, Amazon EC2 και άλλα.

Από όλες τις διανομές που εξέτασα, το VMware Photon OS φαίνεται τόσο το πιο ορατό όσο και το πιο ολοκληρωμένο και χρησιμοποιήσιμο. Εάν είστε κατάστημα VMware που εξερευνά εμπορευματοκιβώτιο, δεν θα σκεφτόμουν να σκεφτώ κάτι άλλο. Εάν δεν είστε κατάστημα VMware, το Photon OS αξίζει ακόμα μια καλή εμφάνιση.

Σύγκριση λειτουργικών συστημάτων κοντέινερ

Το Alpine Linux υποστηρίζει τις περισσότερες εικόνες Docker εκεί έξω. Ιδανικό για ενσωματωμένες εφαρμογές, το Alpine Linux δεν πρέπει να θεωρείται ως τρόπος εκτέλεσης κοντέινερ. Αντ 'αυτού, κατά κάποιο τρόπο, το Alpine Linux είναι το δοχείο. Οι προγραμματιστές εξοικειωμένοι με την κατασκευή εφαρμογών στο Alpine Linux θα γράψουν καλύτερες εφαρμογές κοντέινερ.

Το CoreOS, ένα από τα πρώτα λειτουργικά συστήματα κοντέινερ, υιοθετεί τη στοίβα τεχνολογίας Google. Προσφέρει έναν αξιόπιστο, αν και γνωστό, τρόπο διαχείρισης της υποδομής εμπορευματοκιβωτίων. Ενώ το CoreOS καθιστά πολλά από τα στοιχεία διαθέσιμα ως ανοιχτού κώδικα, η πολυπλοκότητα της εκμάθησης μιας τόσο μεγάλης στοίβας σημαίνει ότι οι χρήστες θα πρέπει να αγοράσουν το ιδιόκτητο σύστημα τεχνολογικής ενορχήστρωσης για ανάπτυξη παραγωγής. Εάν τα χρήματα δεν είναι αντικείμενο και πρέπει να αναπτύξετε εφαρμογές μεγέθους Google, το CoreOS αποτελεί λογική επιλογή.

Το RancherOS είναι καθαρά δοχεία. Εάν πρόκειται να δημιουργήσετε τη δική σας υποδομή κοντέινερ ή θέλετε μια ελάχιστη στοίβα διαχείρισης κοντέινερ, το RancherOS είναι το μέρος για να ξεκινήσετε. Με εργαλεία ενορχήστρωσης και προγραμματισμού ανοιχτού κώδικα, όπως το Docker Swarm, το Kubernetes και το Mesos, όλα διαθέσιμα ελεύθερα, η στοίβα Rancher θα προσελκύσει εταιρείες ανοιχτού κώδικα προσανατολισμένες στις επιχειρήσεις.

Το Red At’s Project Atomic είναι ένα έργο ομπρέλας που αναδιαμορφώνει τον τρόπο με τον οποίο οι εταιρείες αναπτύσσουν υποδομές. Αυτό το φιλόδοξο έργο θα μπορούσε να αλλάξει τον τρόπο με τον οποίο οι εταιρείες σκέφτονται την ανάπτυξη εφαρμογών, αλλά ο δρόμος είναι μακρύς. Το Project Atomic ταιριάζει καλύτερα στους πρώτους χρήστες με μια μεγάλη υπάρχουσα επένδυση σε τεχνολογίες Red Hat.

Το Photon OS του VMware φέρνει την τεχνολογία και την εμπειρία διαχείρισης εικονικής μηχανής αυτού του προμηθευτή σε κοντέινερ. Το Photon OS αναπτύσσεται ως εικονική μηχανή και διαχειρίζεται με παραδοσιακά εργαλεία VM. Το VMware, ίσως βλέποντας τη γραφή στον τοίχο για παραδοσιακά VM, έχει αγκαλιάσει ολόψυχα την τεχνολογία εμπορευματοκιβωτίων και προχωρά με ταχύ ρυθμό την τελευταία λέξη της τεχνολογίας. Εάν είστε κατάστημα VMware τώρα, θα πιέσετε σκληρά να βρείτε μια καλύτερη πλατφόρμα κοντέινερ από το Photon OS.

Διαβάστε τις κριτικές για το κοντέινερ Linux:

  • Ανασκόπηση: Το Alpine Linux έχει δημιουργηθεί για το Docker
  • Αναθεώρηση CoreOS: Linux για κοντέινερ και Kubernetes
  • RancherOS: Ένα απλούστερο Linux για τους λάτρεις του Docker
  • Επανεξέταση: Το Red Hat κάνει το Docker με τον σκληρό τρόπο
  • Κριτική: Το λειτουργικό σύστημα Photon του VMware λάμπει για κοντέινερ Docker