FBOSS คือชุดซอฟต์แวร์ของ Facebook สำหรับควบคุมและจัดการสวิตช์เครือข่าย
FBOSS ประกอบด้วยแอปพลิเคชันพื้นที่ผู้ใช้ ไลบรารี และยูทิลิตี้จำนวนหนึ่ง
การเปิดตัวโอเพ่นซอร์สครั้งแรกของ FBOSS ประกอบด้วย Agent daemon เป็นหลัก แต่เรากำลังดำเนินการเพื่อเผยแพร่ส่วนและฟังก์ชันเพิ่มเติมเช่นกัน
หนึ่งในส่วนสำคัญของ FBOSS คือเอเจนต์ดีมอน ซึ่งทำงานบนสวิตช์แต่ละตัว และควบคุม ASIC ที่ส่งต่อฮาร์ดแวร์ Agent daemon ส่งข้อมูลการส่งต่อไปยังฮาร์ดแวร์ และใช้โปรโตคอลควบคุมบางอย่าง เช่น ARP และ NDP เอเจนต์จัดเตรียม thrift API สำหรับจัดการเส้นทาง เพื่อให้กระบวนการควบคุมเส้นทางภายนอกสามารถรับข้อมูลเส้นทางที่ตั้งโปรแกรมไว้ในตารางการส่งต่อฮาร์ดแวร์
รหัสสำหรับตัวแทนสามารถพบได้ใน fboss/agent
เอเจนต์ต้องการไฟล์คอนฟิกูเรชัน JSON เพื่อระบุพอร์ตและคอนฟิกูเรชัน VLAN ไฟล์การกำหนดค่าตัวอย่างบางไฟล์สามารถพบได้ภายใต้ fboss/agent/configs ไฟล์เหล่านี้ไม่ได้มีไว้สำหรับการบริโภคของมนุษย์จริงๆ - ที่ Facebook เรามีเครื่องมือที่สร้างไฟล์เหล่านี้ให้เรา
เอเจนต์ FBOSS จัดการตารางการส่งต่อในฮาร์ดแวร์ ASIC แต่จำเป็นต้องได้รับแจ้งเส้นทางปัจจุบันผ่าน thrift API
การเปิดตัวโอเพ่นซอร์สครั้งแรกของเรายังไม่มี daemon โปรโตคอลการกำหนดเส้นทางที่สามารถสื่อสารกับตัวแทนได้ ดีมอนโปรโตคอลการกำหนดเส้นทางที่เราใช้บน Facebook ค่อนข้างเฉพาะเจาะจงกับสภาพแวดล้อมของเรา และมีแนวโน้มว่าจะไม่เป็นประโยชน์ต่อชุมชนโอเพ่นซอร์สมากนัก สำหรับการใช้งานทั่วไปภายนอก Facebook ควรเป็นไปได้ที่จะแก้ไขเครื่องมือการกำหนดเส้นทางโอเพ่นซอร์สที่มีอยู่เพื่อพูดคุยกับตัวแทน FBOSS แต่เรายังไม่ได้ดำเนินการนี้ ในระหว่างนี้ เราได้รวมสคริปต์ Python ตัวอย่างเล็กๆ ไว้ใน fboss/agent/tools ที่สามารถเพิ่มและลบเส้นทางได้ด้วยตนเอง
แน่นอนว่าจำเป็นต้องมีเครื่องมือและยูทิลิตีเพิ่มเติมสำหรับการโต้ตอบกับเอเจนต์ FBOSS การรายงานสถานะ การสร้างไฟล์การกำหนดค่า และปัญหาการดีบัก
ในขณะนี้ เรายังไม่มีเครื่องมือมากมายที่พร้อมสำหรับการเปิดตัวโอเพ่นซอร์ส แต่เราหวังว่าจะทำให้เครื่องมือเหล่านี้พร้อมใช้งานมากขึ้นในสัปดาห์ต่อๆ ไป ในระหว่างนี้ คอมไพเลอร์ thrift สามารถสร้างสคริปต์ python-remote โดยอัตโนมัติเพื่อให้สามารถเรียกใช้อินเทอร์เฟซ thrift ต่างๆ ของเอเจนต์ด้วยตนเองได้
ดูเอกสาร BUILD.md สำหรับคำแนะนำเกี่ยวกับวิธีการสร้าง FBOSS
FBOSS ได้รับการออกแบบมาโดยเฉพาะเพื่อรองรับความต้องการของเครือข่ายศูนย์ข้อมูลของ Facebook แต่เราหวังว่าจะเป็นประโยชน์สำหรับชุมชนในวงกว้างเช่นกัน อย่างไรก็ตาม โปรดทราบว่าการเปิดตัว FBOSS ครั้งแรกนี้มีแนวโน้มว่าจะต้องมีการแก้ไขและพัฒนาเพิ่มเติมเพื่อรองรับการกำหนดค่าเครือข่ายอื่นๆ นอกเหนือจากคุณสมบัติที่ Facebook ใช้ จนกว่าจะเติบโตเต็มที่ FBOSS น่าจะเป็นที่สนใจของนักพัฒนาซอฟต์แวร์เครือข่ายเป็นหลัก มากกว่าผู้ดูแลระบบเครือข่ายที่หวังว่าจะใช้เป็นโซลูชั่นแบบครบวงจร
เราหวังว่าจะได้รับคำติชมจากชุมชน และเราหวังว่า FBOSS จะทำหน้าที่เป็นจุดเริ่มต้นสำหรับผู้ใช้รายอื่นที่ต้องการตั้งโปรแกรมสวิตช์เครือข่าย
การพัฒนา FBOSS กำลังดำเนินไปอย่างต่อเนื่องที่ Facebook และเราวางแผนที่จะเผยแพร่ส่วนประกอบ คุณสมบัติเพิ่มเติม และการปรับปรุงเครื่องมือที่มีอยู่ต่อไป
ดูใบอนุญาต