BumbleBee - perangkat untuk menyederhanakan pembuatan dan distribusi program eBPF

Solo.io, sebuah perusahaan yang mengembangkan produk untuk menjalankan sistem cloud, layanan mikro, wadah terisolasi, dan komputasi tanpa server, telah menerbitkan BumbleBee, sebuah perangkat sumber terbuka yang bertujuan untuk menyederhanakan persiapan, distribusi, dan peluncuran program eBPF yang dijalankan di mesin virtual khusus di dalamnya kernel Linux dan memungkinkan pemrosesan operasi jaringan, mengontrol akses dan memantau sistem. Kode ini ditulis dalam Go dan didistribusikan di bawah lisensi Apache 2.0.

BumbleBee memungkinkan untuk mengemas program eBPF sebagai gambar kontainer dalam format OCI (Open Container Initiative), yang dapat dijalankan di sistem apa pun tanpa kompilasi ulang dan penggunaan komponen tambahan di ruang pengguna. Interaksi dengan kode eBPF di inti, termasuk pemrosesan data yang berasal dari pengendali eBPF, diambil alih oleh BumbleBee, yang secara otomatis mengekspor data ini dalam bentuk metrik, histogram, atau log, yang dapat diakses, misalnya menggunakan utilitas keriting. Pendekatan yang diusulkan memungkinkan pengembang untuk fokus pada penulisan kode eBPF dan tidak terganggu dengan mengatur interaksi dengan kode ini dari ruang pengguna, perakitan, dan memuat ke dalam kernel.

Untuk mengelola program eBPF, ditawarkan utilitas “bee” bergaya Docker, yang dengannya Anda dapat segera mengunduh pengendali eBPF yang diinginkan dari repositori eksternal dan menjalankannya di sistem lokal. Toolkit ini memungkinkan Anda membuat kerangka kode dalam C untuk penangan eBPF dari topik yang dipilih (saat ini hanya penangan untuk operasi jaringan dan file yang mencegat panggilan ke tumpukan jaringan dan sistem file yang didukung). Berdasarkan kerangka kerja yang dihasilkan, pengembang dapat dengan cepat mengimplementasikan fungsionalitas yang ia minati.

Berbeda dengan BCC (BPF Compiler Collection), BumbleBee tidak sepenuhnya membangun kembali kode handler untuk setiap versi kernel Linux (BCC menggunakan kompilasi on-the-fly menggunakan Clang setiap kali program eBPF diluncurkan). Untuk mengatasi masalah portabilitas, alat CO-RE dan libbpf sedang dikembangkan, memungkinkan Anda membuat kode hanya sekali dan menggunakan pemuat universal khusus yang mengadaptasi program yang dimuat ke kernel saat ini dan Format Tipe BTF. BumbleBee adalah tambahan untuk libbpf dan menyediakan tipe tambahan untuk interpretasi otomatis dan tampilan data yang terletak di struktur peta eBPF standar RingBuffer dan HashMap.

Untuk membuat program eBPF final dan menyimpannya sebagai image OCI, cukup jalankan perintah “bee build file_with_code name:version”, dan untuk menjalankan perintah “bee run name:version”. Secara default, kejadian yang diterima dari handler akan di-output ke jendela terminal, namun jika perlu, Anda bisa mendapatkan data dengan menggunakan utilitas curl atau wget ke port jaringan yang terikat ke handler. Handler dapat didistribusikan melalui repositori yang kompatibel dengan OCI, misalnya untuk menjalankan handler eksternal dari repositori ghcr.io (GitHub Container Registry), Anda dapat menjalankan perintah “bee run ghcr.io/solo-io/bumblebee/tcpconnect: $(versi lebah)”. Untuk menempatkan pengendali di repositori, perintah "bee push" diusulkan, dan untuk mengikat versi, "bee tag".

Sumber: opennet.ru

Tambah komentar