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

Η Microsoft προσθέτει ένα νέο Linux: CBL-Mariner

Σκεφτείτε τη Microsoft και το Linux και πιθανότατα θα σκεφτείτε τη δουλειά της δημιουργώντας έναν βελτιστοποιημένο πυρήνα Linux για το Υποσύστημα Windows για Linux (WSL). Με την ενημέρωση των Windows, η Microsoft υποστηρίζει όλες τις διανομές WSL2 Linux, συμπεριλαμβανομένων των Ubuntu και SUSE.

Αλλά ο πυρήνας του WSL2 δεν είναι η μόνη προσφορά Linux της Microsoft. Εξετάσαμε μερικές από τις άλλες εδώ στο παρελθόν, συμπεριλαμβανομένου του ασφαλούς Linux για Azure Sphere. Άλλοι περιλαμβάνουν τη διανομή δικτύων SONiC που έχει σχεδιαστεί για χρήση με υλικό Open Compute Project και χρησιμοποιείται από πολλά δημόσια σύννεφα και μεγάλες διαδικτυακές υπηρεσίες και οι οικοδεσπότες για το Azure ONE (Open Network Emulator) που χρησιμοποιούνται για την επικύρωση νέων εφαρμογών δικτύωσης για το Azure.

Ομάδα συστημάτων Linux της Microsoft

Με έναν ολοένα αυξανόμενο αριθμό πυρήνων και διανομών Microsoft Linux, υπάρχει τώρα μια επίσημη ομάδα Linux Systems που χειρίζεται μεγάλο μέρος της εργασίας Linux της εταιρείας. Αυτό περιλαμβάνει έναν πυρήνα συντονισμένο με Azure που διατίθεται ως ενημερωμένες εκδόσεις κώδικα για πολλές κοινές διανομές Linux, βελτιστοποιώντας τους για χρήση με τον υπεύθυνο Hyper-V της Microsoft και ένα σύνολο εργαλείων που βοηθούν στην υλοποίηση της ακεραιότητας του συστήματος με βάση την πολιτική, καθιστώντας τις διανομές πιο ασφαλείς και βοηθώντας στη διαχείριση ενημερώσεις και ενημερώσεις κώδικα σε μεγάλα κέντρα διακομιστών Linux και εικονικών μηχανών.

Η ομάδα κυκλοφόρησε πρόσφατα μια νέα διανομή Linux: CBL-Mariner. Παρόλο που η κυκλοφορία είναι δημόσια, μεγάλο μέρος της χρήσης της, καθώς αποτελεί μέρος της υποδομής Azure, χρησιμοποιείται για τις υπηρεσίες δικτύου αιχμής και ως μέρος της υποδομής cloud. Το αποτέλεσμα είναι μια χαμηλή, επικεντρωμένη κατανομή που είναι λιγότερο για το τι υπάρχει και πολύ περισσότερο για το τι τρέχει σε αυτό.

Παρουσιάζουμε το CBL-Mariner: κεντρικό υπολογιστή κοντέινερ Linux της Microsoft

Η επένδυση σε ένα ελαφρύ Linux όπως το CBL-Mariner έχει πολύ νόημα, λαμβάνοντας υπόψη τις επενδύσεις της Microsoft σε τεχνολογίες βασισμένες σε κοντέινερ. Το Cloud Economics απαιτεί από τους κεντρικούς υπολογιστές να χρησιμοποιούν όσο το δυνατόν λιγότερους πόρους, επιτρέποντας σε υπηρεσίες όπως το Azure να έχουν υψηλή αξιοποίηση. Ταυτόχρονα, τα κοντέινερ Kubernetes χρειάζονται όσο το δυνατόν λιγότερα γενικά έξοδα, επιτρέποντας όσο το δυνατόν περισσότερους κόμβους ανά pod, και επιτρέποντας την εκκίνηση νέων κόμβων το συντομότερο δυνατό.

Το ίδιο ισχύει και για το άκρο υλικού, ειδικά για την επόμενη γενιά κόμβων άκρων που προορίζονται για χρήση με δίκτυα 5G. Εδώ, όπως το δημόσιο σύννεφο, οι φόρτοι εργασίας είναι το πιο σημαντικό, μετατοπίζοντας τους και τα δεδομένα πιο κοντά στους χρήστες. Η Microsoft χρησιμοποιεί το αναπτυσσόμενο πλεονέκτημα υλικού αιχμής ως μέρος του Δικτύου παράδοσης περιεχομένου Azure εκτός των κύριων κέντρων δεδομένων Azure, αποθηκεύοντας περιεχόμενο προσωρινής αποθήκευσης από εφαρμογές Web Azure και από φιλοξενούμενους διακομιστές βίντεο και αρχείων, με σκοπό τη μείωση του λανθάνοντος χρόνου όπου είναι δυνατόν. Το Azure CDN είναι ένα βασικό στοιχείο της υπηρεσίας Azure Static Websites με βάση το Jamstack, των σελίδων φιλοξενίας και της JavaScript που δημοσιεύθηκαν από το GitHub.

Στο παρελθόν, το CoreOS της Red Hat ήταν το προτιμώμενο πλήθος κοντέινερ Linux, αλλά η πρόσφατη κατάργησή του σημαίνει ότι δεν υποστηρίζεται πλέον. Όποιος το χρησιμοποίησε έπρεπε να βρει μια εναλλακτική λύση. Η Microsoft προσφέρει το Flatcar Linux CoreOS-fork για χρήστες Azure ως μέρος μιας συνεργασίας με τους προγραμματιστές Kinvolk, αλλά έχοντας τη δική του διανομή για τις δικές της υπηρεσίες διασφαλίζει ότι μπορεί να ενημερώσει και να διαχειριστεί τις παρουσίες κεντρικού υπολογιστή και κοντέινερ με το δικό του πρόγραμμα. Η δημόσια ανάπτυξη είναι διαθέσιμη για όποιον θέλει να κάνει και να χρησιμοποιήσει τις δικές του κατασκευές ή που θέλει να συνεισφέρει νέες δυνατότητες και βελτιστοποιήσεις, για παράδειγμα προσθέτοντας υποστήριξη για νέες δυνατότητες δικτύωσης.

Εκτέλεση CBL-Mariner και εμπορευματοκιβωτίων

Εξωτερικά, το CBL-Mariner διαθέτει μόνο τα βασικά πακέτα που απαιτούνται για την υποστήριξη και την εκτέλεση κοντέινερ, ακολουθώντας παρόμοια προσέγγιση με το CoreOS. Στην ουσία, τα κοντέινερ Linux είναι απομονωμένος χώρος χρήστη. Η ελάχιστη διατήρηση κοινόχρηστων πόρων μειώνει την έκθεση ασφαλείας του κεντρικού λειτουργικού συστήματος, διασφαλίζοντας ότι τα κοντέινερ εφαρμογών δεν μπορούν να εξαρτώνται από αυτό. Εάν χρησιμοποιείτε το CBL-Mariner στα δικά σας κοντέινερ, βεβαιωθείτε ότι έχετε δοκιμάσει τυχόν δημόσιες εικόνες Docker πριν από την ανάπτυξη, καθώς ενδέχεται να μην περιέχουν τα κατάλληλα πακέτα. Ίσως χρειαστεί να έχετε στη διάθεσή σας τις δικές σας βασικές εικόνες ως μέρος των αρχείων dockerfiles της εφαρμογής σας.

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

Το να ξεκινήσετε με το CBL-Mariner μπορεί να είναι τόσο απλό όσο η ενεργοποίηση μιας υπηρεσίας Azure. Αλλά αν θέλετε πρακτική εμπειρία ή θέλετε να συνεισφέρετε στο έργο, όλος ο πηγαίος κώδικας βρίσκεται επί του παρόντος στο GitHub, μαζί με οδηγίες για τη δημιουργία των δικών σας εγκαταστάσεων. Προαπαιτούμενα για μια έκδοση στο Ubuntu 18.04 περιλαμβάνουν τη γλώσσα Go, τα βοηθητικά προγράμματα QEMU (Quick EMUlator), καθώς και τις rpm.

Δημιουργήστε τη δική σας εγκατάσταση χρησιμοποιώντας το αποθετήριο GitHub

Έχετε πολλές διαφορετικές επιλογές για δημιουργία από την πηγή. Ξεκινήστε ελέγχοντας την πηγή από το GitHub, κάνοντας έναν τοπικό κλώνο του αποθετηρίου έργου. Διατίθενται διάφοροι κλάδοι, αλλά για μια πρώτη κατασκευή θα πρέπει να επιλέξετε τον τρέχοντα σταθερό κλάδο. Από εδώ μπορείτε να δημιουργήσετε τα εργαλεία Go για το έργο πριν κάνετε λήψη των πηγών.

Για γρήγορες κατασκευές έχετε δύο επιλογές, και οι δύο χρησιμοποιούν προ-ενσωματωμένα πακέτα και συγκεντρώνουν μια διανομή από αυτά. Το πρώτο, για εγκαταστάσεις γυμνού μετάλλου, δημιουργεί ένα αρχείο ISO έτοιμο για εγκατάσταση. Το δεύτερο, για τη χρήση του CBL-Mariner ως κεντρικού υπολογιστή κοντέινερ, δημιουργεί ένα έτοιμο προς χρήση αρχείο VHDX με μια εικονική μηχανή για χρήση με το Hyper-V. Μια εναλλακτική επιλογή δημιουργεί μια εικόνα κοντέινερ που μπορεί να χρησιμοποιηθεί ως πηγή για τα dockerfiles που βασίζονται στο Mariner, δίνοντάς σας όλα όσα χρειάζεστε για να δημιουργήσετε και να εκτελέσετε συμβατά κοντέινερ με τις εφαρμογές σας.

Εάν προτιμάτε να δημιουργήσετε από την πηγή, η επιλογή είναι διαθέσιμη, αν και οι εκδόσεις θα είναι πολύ πιο αργές από τη χρήση προσυμπυκνωμένων πακέτων. Ωστόσο, αυτό θα σας επιτρέψει να στοχεύσετε εναλλακτικούς επεξεργαστές, για παράδειγμα να δημιουργήσετε μια έκδοση που λειτουργεί με τη νέα γενιά εξοπλισμού αιχμής που βασίζεται σε ARM παρόμοια με αυτήν που χρησιμοποιείται για τις παρουσίες του AWS Graviton. Μπορείτε να κάνετε bootstrap ολόκληρη την αλυσίδα εργαλείων build για να βεβαιωθείτε ότι έχετε τον έλεγχο ολόκληρης της διαδικασίας κατασκευής. Η πλήρης διαδικασία κατασκευής μπορεί ακόμη και να χρησιμοποιηθεί για τη δημιουργία υποστηριζόμενων πακέτων, με τα βασικά αρχεία που αναφέρονται σε ένα αρχείο διαμόρφωσης JSON.

Μόλις δημιουργηθεί, μπορείτε να αρχίσετε να διαμορφώνετε τις δυνατότητες του CBL-Mariner. Έξω από το κουτί, αυτά περιλαμβάνουν τείχος προστασίας με βάση το iptables, υποστήριξη για υπογεγραμμένες ενημερώσεις και έναν σκληρυμένο πυρήνα. Οι προαιρετικές δυνατότητες μπορούν να ρυθμιστούν ταυτόχρονα, με εργαλεία για τη βελτίωση της απομόνωσης της διαδικασίας και την κρυπτογράφηση τοπικής αποθήκευσης, σημαντικές δυνατότητες για έναν κεντρικό υπολογιστή κοντέινερ σε ένα περιβάλλον πολλαπλών παραγόντων όπου πρέπει να προστατεύσετε τα τοπικά δεδομένα.

Το αποτέλεσμα είναι μια αποτελεσματική αντικατάσταση του CoreOS και θα ήθελα να δω ότι διατίθεται στους χρήστες Azure καθώς και στις ομάδες της Microsoft. Το CBL-Mariner μπορεί να μην έχει την ωριμότητα άλλων Linux που επικεντρώνονται στα κοντέινερ, αλλά έχει σίγουρα αρκετή υποστήριξη πίσω από αυτό για να το κάνει ένα αξιόπιστο εργαλείο για χρήση σε υβριδικές αρχιτεκτονικές cloud και edge, όπου χρησιμοποιείτε κώδικα στους δικούς σας διακομιστές αιχμής και στο cloud της Microsoft. Εάν η Microsoft δεν το κάνει επιλογή, τουλάχιστον μπορείτε να το δημιουργήσετε μόνοι σας.

$config[zx-auto] not found$config[zx-overlay] not found