Ang Solo.io, usa ka kompanya nga nagpalambo og mga produkto para sa mga cloud system, microservices, isolated containers, ug serverless computing, nagpatik sa open source nga BumbleBee toolkit, nga nagtumong sa pagpasimple sa pag-andam, pag-apod-apod, ug pagpatuman sa mga programa sa eBPF nga nagdagan sa usa ka espesyal nga virtual machine sulod sa kernel. Linux ug makapahimo sa pagproseso sa mga operasyon sa network, pagkontrol sa pag-access, ug pagmonitor sa sistema. Ang code gisulat sa Go ug giapod-apod ubos sa lisensya sa Apache 2.0.
Ang BumbleBee nagpaposible sa pag-package sa usa ka eBPF nga programa isip usa ka container image sa OCI (Open Container Initiative) nga format, nga mahimong ipadagan sa bisan unsang sistema nga walay recompilation ug ang paggamit sa dugang nga mga component sa user space. Ang interaksyon sa eBPF code sa kinauyokan, lakip ang pagproseso sa datos nga gikan sa eBPF handler, gikuha sa BumbleBee, nga awtomatik nga nag-eksport niini nga datos sa porma sa metrics, histograms o logs, nga mahimong ma-access, pananglitan, gamit ang curl utility. Ang gisugyot nga pamaagi nagtugot sa developer nga mag-focus sa pagsulat sa eBPF code ug dili mabalda pinaagi sa pag-organisar sa interaksyon niini nga code gikan sa user space, assembly ug loading ngadto sa kernel.
Aron madumala ang mga programa sa eBPF, usa ka Docker-style nga "buyog" nga utility ang gitanyag, diin mahimo nimo dayon nga i-download ang eBPF nga tigdumala sa interes gikan sa usa ka eksternal nga repositoryo ug ipadagan kini sa lokal nga sistema. Ang toolkit nagtugot kanimo sa pagmugna og code framework sa C para sa eBPF nga mga tigdumala sa usa ka pinili nga hilisgutan (karon mga tigdumala lamang alang sa network ug mga operasyon sa file nga makapugong sa mga tawag sa network stack ug mga file system ang gisuportahan). Pinasukad sa nahimo nga balangkas, ang developer dali nga makapatuman sa pagpaandar nga gusto niya.
Dili sama sa BCC (BPF Compiler Collection), ang BumbleBee dili mohimo og kompletong pag-rebuild sa handler code para sa matag bersyon sa kernel. Linux (Ang BCC mogamit ug on-the-fly compilation uban sa Clang matag higayon nga modagan ang usa ka eBPF program.) Aron masulbad ang mga isyu sa portability, ang CO-RE ug libbpf toolkits gipalambo, nga nagtugot sa code nga ma-compile kausa ra ug gamit ang usa ka espesyal nga universal loader nga nagpahiangay sa na-load nga programa sa kasamtangang kernel ug BTF (BPF Type Format) nga mga tipo. Ang BumbleBee usa ka libbpf add-on ug naghatag ug dugang nga mga tipo para sa awtomatikong pag-interpret ug pagpakita sa datos nga gitipigan sa standard nga eBPF map structures, RingBuffer ug HashMap.
Aron matukod ang katapusang programa sa eBPF ug i-save kini ingon usa ka imahe sa OCI, padagana lang ang command "bee build file_with_code name: version", ug sa pagdagan sa command "bee run name: version". Sa kasagaran, ang mga panghitabo nga nadawat gikan sa handler mahimong output sa terminal window, apan kung gikinahanglan, mahimo kang makakuha og data pinaagi sa paggamit sa curl o wget utilities sa network port nga gigapos sa handler. Ang mga handler mahimong ipang-apod-apod pinaagi sa OCI-compatible nga mga repository, pananglitan, sa pagpadagan sa usa ka external handler gikan sa ghcr.io repository (GitHub Container Registry), mahimo nimong ipadagan ang command nga "bee run ghcr.io/solo-io/bumblebee/tcpconnect: $(bee nga bersyon)". Aron ibutang ang usa ka handler sa repository, ang "bee push" nga sugo gisugyot, ug sa pagbugkos sa usa ka bersyon, "bee tag".
Source: opennet.ru
