FaaS服務新創公司Solo.io對外開源了BumbleBee專案,有效簡化Linux核心技術eBPF的工具開發工作。BumbleBee自動產生使用者空間程式樣板程式碼,協助使用OCI映像檔建構、執行和發布eBPF程式的用戶,能夠更專注於編寫eBPF程式碼。

官方表示,Linux為目前主要作業系統之一,而由於Linux的熱門,使得核心的更新需要經過仔細且漫長的程序,避免上游的更改對下游造成廣泛且意料之外的影響。而eBPF沙盒技術則能填補Linux生態系的創新需求,eBPF是一個核心技術,可以在作業系統核心中執行沙盒程式,讓開發者快速發展網路和安全功能來強化核心,也就是說,eBPF讓用戶不需要將程式碼合併到核心中,就可以自定義核心行為。

eBPF在雲端管理和應用網路領域,有許多使用案例,像是eBPF讓用戶執行自定義函式,來監控服務之間的網路通訊、追蹤延遲、過濾和路由資料封包到特定端點,或是收集Pod層級的網路統計資訊等,在核心層級執行這些函式,能夠應用自定義且高效能的網路邏輯,以及事件呼叫等功能。

eBPF採用二進位位元組碼格式,以Hooks等方式附加到作業系統中,用戶通常使用高階語言,像是C來建構eBPF程式,並將其編譯成為位元組碼,作業系統載入位元組碼,並對其進行驗證,再經JIT編譯後執行。

eBPF程式可以存取核心中的資料結構,但由於格式可能因核心版本而有所不同,這代表eBPF程式必須在執行前,在機器上先進行編譯,考量這個過程過於麻煩,為了避免這個繁瑣的過程,eBPF利用可移植通用類型描述格式BTF,期望在核心版本間通用。

但是打包和共享這些二進位程式,並沒有被良好地處理,通常eBPF開發人員負責編寫使用者空間程式碼、eBPF程式碼,並自行決定共享和發布給其他機器和用戶的方法,通常使用者空間程式只是一些包含eBPF映射資料類型細節的樣板程式碼。

而BumbleBee便是一個方便的工具,能夠利用提供核心可移植性的BTF類型,來自動生成所有使用者空間程式碼,Solo.io提到,他們已經與eBPF專案合作一年多,並且實作以Istio為基礎的企業網路服務網格,但因為在開發過程中所遭遇的挑戰,促使他們開發出BumbleBee。

BumbleBee提供類似Docker的體驗,能夠自動化一些重要的步驟,Bumblebee能夠替任何eBPF應用程式進行打包、發布,並自動生成使用者空間程式。BumbleBee大幅減少建置eBPF程式的障礙,讓用戶建構更強大的網路和可觀察性安全工具。

熱門新聞

Advertisement