Η μετάβαση προς τα ανοιχτά και προγραμματιζόμενα δίκτυα αποτελεί μια από τις σημαντικότερες εξελίξεις στη σύγχρονη υποδομή δεδομένων. Ανάμεσα στα πρωτοποριακά έργα που καθόρισαν αυτήν την τάση βρίσκεται το FBOSS (Facebook Open Switching System) — ένα ανοιχτού κώδικα λογισμικό της Meta (πρώην Facebook) που αλλάζει τον τρόπο με τον οποίο διαχειριζόμαστε τα δικτυακά switches σε περιβάλλοντα μεγάλης κλίμακας.
Σε αντίθεση με τα παραδοσιακά λειτουργικά συστήματα δικτύων, το FBOSS δεν είναι αυτόνομο NOS (Network Operating System), αλλά μια συλλογή εφαρμογών που εκτελούνται πάνω σε ένα τυπικό Linux λειτουργικό σύστημα. Με αυτόν τον τρόπο, οι μεταγωγείς (switches) λειτουργούν περισσότερο σαν servers, αξιοποιώντας πλήρως τις αρχές της αυτοματοποίησης, της συνεχούς ανάπτυξης και της διαφάνειας που χαρακτηρίζουν τις σύγχρονες υποδομές cloud.
Σχεδίαση και χαρακτηριστικά του FBOSS
Το FBOSS σχεδιάστηκε από τη Meta με γνώμονα τη διαχωρισμένη αρχιτεκτονική hardware-software (disaggregated networking), που επιτρέπει την ανεξαρτησία από συγκεκριμένους προμηθευτές και επιταχύνει την καινοτομία.
FBOSS Agent: η «καρδιά» του συστήματος
Στο επίκεντρο βρίσκεται ο FBOSS Agent, ένα κεντρικό daemon που τρέχει σε κάθε switch. Ο agent αυτός είναι υπεύθυνος για τον έλεγχο του hardware forwarding ASIC, τη διαχείριση πρωτοκόλλων Ethernet όπως ARP και NDP, καθώς και για την επικοινωνία με απομακρυσμένα συστήματα μέσω APIs Thrift. Με απλά λόγια, ο FBOSS Agent λειτουργεί ως ο «ενδιάμεσος» μεταξύ του φυσικού υλικού του switch και του λογισμικού που το ελέγχει, επιτρέποντας πλήρως προγραμματιζόμενη λειτουργία.
Αρθρωτή (modular) αρχιτεκτονική
Η modular αρχιτεκτονική του FBOSS διαχωρίζει αυστηρά το επίπεδο υλικού από το λογισμικό, καθιστώντας το σύστημα ανεξάρτητο από τον κατασκευαστή του ASIC. Έτσι, η Meta —και πλέον η κοινότητα— μπορεί να ενσωματώνει νέα chips χωρίς να αλλάζει ολόκληρη τη στοίβα λογισμικού.
Το FBOSS επιτρέπει επίσης ανεξάρτητη ανάπτυξη εφαρμογών για συγκεκριμένες λειτουργίες, όπως πρωτόκολλα δρομολόγησης ή monitoring, γεγονός που αυξάνει την επεκτασιμότητα και την ανθεκτικότητα των υποδομών.
Switch-as-a-Server: ο νέος τρόπος διαχείρισης
Η Meta αντιμετωπίζει κάθε switch σαν έναν server, στον οποίο εφαρμόζονται πρακτικές συνεχούς ενσωμάτωσης και ανάπτυξης (CI/CD). Οι αλλαγές στον κώδικα του FBOSS δοκιμάζονται αυτόματα σε πραγματικά περιβάλλοντα παραγωγής και προωθούνται σταδιακά, όπως συμβαίνει με τις υπόλοιπες υπηρεσίες cloud. Αυτή η προσέγγιση επιτρέπει ταχεία ανάπτυξη, αυτόματη αναβάθμιση και ελαχιστοποίηση ανθρώπινων σφαλμάτων.
Ανοιχτή αρχιτεκτονική και το Open Compute Project
Το FBOSS αναπτύχθηκε στο πλαίσιο του Open Compute Project (OCP) — μιας πρωτοβουλίας που στοχεύει στη διάδοση ανοιχτών προδιαγραφών για υποδομές cloud. Μέσω του OCP, η Meta δημοσιοποίησε και τα σχέδια του Wedge, ενός switch που σχεδιάστηκε για να «τρέχει» το FBOSS, καθώς και του 6-pack, ενός modular chassis switch που αποτελείται από πολλαπλές Wedge μονάδες.
Με αυτόν τον τρόπο, η εταιρεία συνέβαλε καθοριστικά στη διάδοση της φιλοσοφίας open networking, επιτρέποντας σε άλλους οργανισμούς να υλοποιήσουν παρόμοιες λύσεις χωρίς εξάρτηση από proprietary προϊόντα.
Χρήση και εξέλιξη
Σήμερα, το FBOSS διαχειρίζεται τα περισσότερα switches στα data centers της Meta παγκοσμίως, εξυπηρετώντας δισεκατομμύρια αιτήματα καθημερινά. Χρησιμοποιείται σε πλατφόρμες όπως τα Wedge και Backpack, και πρόσφατα επεκτάθηκε στη συνεργασία με τα NVIDIA Spectrum-X Ethernet switches, με στόχο την υποστήριξη δικτύων υψηλής απόδοσης για εφαρμογές τεχνητής νοημοσύνης μεγάλης κλίμακας.
Η συνεργασία αυτή είναι στρατηγικής σημασίας: τα σύγχρονα workloads AI απαιτούν χαμηλή καθυστέρηση, υψηλό bandwidth και δυναμική δρομολόγηση, τα οποία το FBOSS μπορεί να επιτύχει μέσω της πλήρως προγραμματιζόμενης στοίβας του.
Αυτοματοποίηση και προγραμματισμός δικτύων
Ένα από τα σημαντικότερα πλεονεκτήματα του FBOSS είναι η πλήρης αυτοματοποίηση της διαχείρισης. Αντί για τις παραδοσιακές διεπαφές CLI, το FBOSS χρησιμοποιεί Thrift APIs που επιτρέπουν την αλληλεπίδραση μέσω λογισμικού και την ενοποίηση με εργαλεία αυτοματοποίησης. Με αυτόν τον τρόπο, μπορούν να ενημερώνονται χιλιάδες switches ταυτόχρονα με απόλυτη συνέπεια.
Ο έλεγχος και η δρομολόγηση υλοποιούνται μέσα από εφαρμογές που βασίζονται στο FBOSS Agent, όπως εκείνες που εφαρμόζουν BGP ή ECMP, επιτρέποντας ευέλικτη και κατανεμημένη διαχείριση της κυκλοφορίας.
Η Meta έχει επιλέξει να διατηρεί το FBOSS απλό και αποδοτικό: δεν υποστηρίζει multicast, L2 overlays ή Spanning Tree, αφού το περιβάλλον των data centers της βασίζεται εξ ολοκλήρου σε L3 unicast routing, μειώνοντας έτσι την πολυπλοκότητα και αυξάνοντας την αξιοπιστία.
Ανοιχτός κώδικας και συνεργασία με την κοινότητα
Το FBOSS είναι πλήρως διαθέσιμο στο GitHub (facebook/fboss) και έχει ήδη προσελκύσει το ενδιαφέρον ερευνητών, μηχανικών και εταιρειών που επιδιώκουν να δημιουργήσουν διαφανείς και ευέλικτες δικτυακές υποδομές.
Η Meta έχει δημοσιεύσει εκτενείς τεχνικές αναλύσεις και παρουσιάσεις (engineering.fb.com) που εξηγούν πώς το FBOSS επιτρέπει την ανάπτυξη λογισμικού δικτύου με την ίδια ταχύτητα που αναπτύσσονται οι εφαρμογές cloud. Επιπλέον, η χρήση του σε ανοικτό περιβάλλον συμβάλλει στη δημιουργία κοινοτήτων ανάπτυξης, στις οποίες συμμετέχουν εταιρείες hardware, προγραμματιστές και ακαδημαϊκά ιδρύματα.
Η ανοιχτή αυτή προσέγγιση έχει ήδη εμπνεύσει άλλους οργανισμούς να πειραματιστούν με white-box switching, δηλαδή switches γενικής χρήσης που τρέχουν ανοικτό λογισμικό όπως το FBOSS ή το SONiC, ενισχύοντας έτσι τον ανταγωνισμό και μειώνοντας το κόστος.
Το μέλλον του FBOSS και του open networking
Το FBOSS ενσαρκώνει τη φιλοσοφία της αποδέσμευσης του λογισμικού από το υλικό, προσφέροντας ένα υπόδειγμα για το πώς μπορεί να λειτουργεί ένα ευέλικτο, αυτοματοποιημένο και ανοιχτό δίκτυο. Καθώς οι ανάγκες για data center, cloud και AI υποδομές αυξάνονται, λύσεις σαν το FBOSS αποδεικνύουν ότι η καινοτομία δεν προέρχεται μόνο από τους μεγάλους προμηθευτές, αλλά και από τις κοινότητες ανοιχτού λογισμικού.
Με τη στήριξη του Open Compute Project και τη συνεχή εξέλιξη από τη Meta και άλλους οργανισμούς, το FBOSS αναδεικνύεται σε θεμέλιο της επόμενης γενιάς προγραμματιζόμενων δικτύων, ένα ακόμα παράδειγμα του πώς το ανοιχτό λογισμικό αλλάζει ριζικά τον τρόπο που λειτουργεί ο ψηφιακός κόσμος.
—
Πηγή άρθρου: engineering.fb.com