BumbleBee - usa ka toolkit aron pasimplehon ang paghimo ug pag-apod-apod sa mga programa sa eBPF

Ang Solo.io, usa ka kompanya nga nagpalambo sa mga produkto alang sa pagpadagan sa mga sistema sa panganod, microservice, nahilit nga mga sudlanan ug wala’y server nga pag-compute, nagpatik sa BumbleBee, usa ka bukas nga gigikanan nga toolkit nga gitumong sa pagpasimple sa pag-andam, pag-apod-apod ug paglansad sa mga programa sa eBPF nga nagdagan sa usa ka espesyal nga virtual machine sa sulod. ang Linux kernel ug gitugotan ang pagproseso sa mga operasyon sa network, pagkontrol sa pag-access ug pag-monitor sa mga sistema. Ang code gisulat sa Go ug giapod-apod ubos sa Apache 2.0 nga lisensya.

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 hingpit nga magtukod pag-usab sa handler code alang sa matag bersyon sa Linux kernel (BCC naggamit on-the-fly compilation gamit ang Clang sa matag higayon nga ang eBPF program ilunsad). Aron masulbad ang mga problema sa portability, ang CO-RE ug libbpf nga mga himan gipalambo, nga nagtugot kanimo sa paghimo sa code kausa lamang ug paggamit sa usa ka espesyal nga universal loader nga mopahiangay sa gikarga nga programa sa kasamtangan nga kernel ug BTF Type Format. Ang BumbleBee usa ka add-on sa libbpf ug naghatag ug dugang nga mga tipo para sa awtomatik nga interpretasyon ug pagpakita sa datos nga nahimutang sa standard nga eBPF nga mga istruktura sa mapa nga 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

Idugang sa usa ka comment