solo.io, perusahaan komputasi awan, layanan mikro, kotak pasir dan tanpa server, meluncurkan proyek sumber terbuka "BumbleBee". Proyek baru menyederhanakan pengalaman pengembang untuk membangun, mengemas, dan mendistribusikan alat eBPF, menurut Solo.
Kumbang secara otomatis menghasilkan kode ruang pengguna boilerplate untuk mengembangkan alat eBPF, perusahaan menjelaskan. Ini juga memberikan pengalaman seperti Docker untuk mengemas program eBPF. Ini memungkinkan Anda terhubung ke alur kerja gambar OCI lain untuk penerbitan dan distribusi.
Tentang BumbleBee
Kumbang memungkinkan untuk mengemas program eBPF sebagai gambar wadah dari Open Container Initiative (OCI) yang dapat berjalan di sistem apa pun tanpa mengkompilasi ulang atau menggunakan komponen tambahan di ruang pengguna.
Interaksi dengan kode eBPF di kernel, termasuk pemrosesan data yang berasal dari prosesor eBPF, ditangani oleh BumbleBee, yang secara otomatis mengekspor data ini dalam bentuk metrik, histogram, atau log, yang dapat diakses, misalnya, menggunakan utilitas ikal. Pendekatan yang diusulkan memungkinkan pengembang untuk berkonsentrasi pada penulisan kode eBPF. dan tidak terganggu dengan mengatur interaksi dengan kode ini dari ruang pengguna, perakitan, dan memuat ke dalam kernel.
CEO Solo.io, Idit Levine mengatakan bahwa:
Perusahaan mengembangkan BumbleBee untuk secara otomatis menghasilkan kode ruang pengguna boilerplate yang diperlukan untuk mengakses teknologi eBPF yang berjalan di tingkat kernel. BumbleBee menyertakan antarmuka baris perintah (CLI) yang secara otomatis menghasilkan kode ruang pengguna untuk program eBPF dengan secara otomatis mengekspos peta seperti log, metrik, dan histogram.
Untuk mengelola program eBPF, utilitas "lebah" gaya Docker disediakan, yang dengannya Anda dapat segera mengunduh driver eBPF menarik dari repositori eksternal dan menjalankannya di sistem lokal.
Toolkit ini memungkinkan Anda membuat kerangka kerja kode C untuk driver eBPF dari tema yang dipilih (saat ini hanya driver file dan jaringan yang mencegat panggilan ke tumpukan jaringan dan sistem file yang didukung). Berdasarkan kerangka kerja yang dihasilkan, pengembang dapat dengan cepat mengimplementasikan fungsionalitas yang menarik minatnya.
Tidak seperti BCC (BPF Compiler Collection), BumbleBee tidak sepenuhnya membangun kembali kode driver untuk setiap versi kernel Linux (BCC menggunakan kompilasi on-the-fly dengan Dentang setiap kali program eBPF dijalankan).
Untuk mengatasi masalah portabilitas, Sedang berkembang kit alat CO-RE dan libbpf, yang memungkinkan Anda untuk mengkompilasi kode sekali dan gunakan pemuat universal khusus yang mengadaptasi program yang dimuat ke kernel saat ini dan tipe BTF (BPF Type Format).
BumbleBee adalah plugin di atas libbpf dan menyediakan tipe tambahan untuk interpretasi otomatis dan tampilan data yang ditempatkan di struktur peta RingBuffer dan HashMap eBPF standar.
Untuk membangun program eBPF akhir dan menyimpannya sebagai gambar OCI, cukup jalankan perintah:
bee build file_with_code name:version
Dan jalankan perintah
bee run name:version
Secara default, peristiwa yang diterima dari pengontrol akan ditampilkan di jendela terminal, tetapi jika perlu Anda bisa mendapatkan data dengan memanggil utilitas curl atau wget pada port jaringan yang terikat ke pengontrol.
Driver dapat didistribusikan melalui repositori yang sesuai dengan OCI, misalnya untuk menjalankan driver eksternal dari repositori ghcr.io (GitHub Container Registry), Anda dapat menjalankan perintah
bee run ghcr.io/solo-io/bumblebee/tcpconnect:$(bee version)
Untuk meletakkan pengontrol di repositori, perintah ditawarkan
bee push
Dan untuk menautkan versi
bee tag
Manfaat terbesar eBPF hanyalah efisiensi. Total biaya pemrosesan untuk platform keamanan, jaringan, dan penyimpanan akan berkurang karena lebih banyak penyedia memanfaatkan kemampuan mereka.
Sekarang, eBPF banyak digunakan oleh perusahaan skala web seperti penyedia layanan cloud. Facebook menggunakannya sebagai penyeimbang beban utama yang ditentukan perangkat lunak di pusat datanya, sementara Google menggunakan perangkat lunak jaringan Cilium open source dalam penawaran Kubernetes yang dikelolanya.
Namun, ke depan, Levine mengatakan sekarang hanya masalah waktu sebelum eBPF diadopsi secara lebih luas karena lebih banyak sistem operasi yang memungkinkan kemampuan tersebut.
Akhirnya jika Anda ingin tahu lebih banyak tentang itu, Anda dapat memeriksa detailnya Di tautan berikut.