Tags:
Node Thumbnail

Meta เปิดซอร์สโค้ดของ Buck2 ซอฟต์แวร์จัดการระบบคอมไพล์ขนาดใหญ่ (large-scale build system) ออกให้สาธารณะใช้งาน ซอร์สโค้ดอยู่บน GitHub

เดิมที Meta มีซอฟต์แวร์ Buck หรือปัจจุบันเรียก Buck1 เปิดซอร์สมานานหลายปีแล้ว แต่ Buck2 เป็นการเขียนระบบใหม่ขึ้นมาทั้งหมด แยกจาก Buck1 อย่างชัดเจน โดยออกแบบสถาปัตยกรรมใหม่ให้ประมวลผลแบบขนานได้ดีขึ้น แยกส่วนแกนหลักกับระบบรองรับแต่ละภาษาโปรแกรมออกจากกัน เป็นต้น ส่งผลให้ประสิทธิภาพดีขึ้นจาก Buck1 สองเท่า

ตอนนี้วิศวกร Meta หลายพันคนใช้งาน Buck2 กับงานภายในอยู่แล้ว ต้องสั่ง build ซอฟต์แวร์หลายล้านครั้งต่อวัน ซึ่ง Buck2 สามารถรองรับได้สบาย

ตัวแกนของ Buck2 เขียนด้วยภาษา Rust ส่วนโค้ดจัดการคอมไพล์แต่ละภาษาเขียนด้วยภาษา Starlark (เป็นภาษาสไตล์ Python ที่สร้างมาสำหรับ Bazel ซอฟต์แวร์จัดการระบบคอมไพล์ของกูเกิล), ฟีเจอร์อื่นคือรองรับ remote execution การสั่งรันงานในเครื่องระยะไกล, รองรับระบบไฟล์เสมือน virtual file system สั่งดึงไฟล์ที่ต้องการคอมไพล์จาก repository ได้แบบออนดีมานด์

ที่มา - Meta Engineering

No Description

Get latest news from Blognone