BumbleBee - chida chothandizira kupanga ndi kugawa kwa mapulogalamu a eBPF

Solo.io, kampani yomwe imapanga zinthu zoyendetsera makina amtambo, ma microservices, zotengera zakutali komanso makompyuta opanda seva, yasindikiza BumbleBee, chida chotsegulira gwero losavuta lomwe cholinga chake ndikuchepetsa kukonzekera, kugawa ndi kukhazikitsidwa kwa mapulogalamu a eBPF omwe amayenda mumakina apadera mkati. Linux kernel ndikulola kukonza magwiridwe antchito a netiweki, kuwongolera mwayi ndi kuyang'anira machitidwe. Khodiyo idalembedwa mu Go ndikugawidwa pansi pa layisensi ya Apache 2.0.

BumbleBee imapangitsa kuti pakhale pulogalamu ya eBPF ngati chithunzi cha chidebe mumtundu wa OCI (Open Container Initiative), yomwe imatha kuyendetsedwa pamakina aliwonse popanda kubweza komanso kugwiritsa ntchito zida zowonjezera pamalo ogwiritsira ntchito. Kuyanjana ndi nambala ya eBPF pachimake, kuphatikiza kukonzanso kwa data kuchokera kwa wogwirizira eBPF, kumatengedwa ndi BumbleBee, yomwe imatumiza kunja kwa datayi mu mawonekedwe a metrics, histograms kapena logs, zomwe zitha kupezeka, mwachitsanzo, pogwiritsa ntchito curl zothandiza. Njira yomwe ikuperekedwa imalola wopangayo kuti ayang'ane polemba kachidindo ka eBPF ndipo asasokonezedwe pokonzekera kuyanjana ndi kachidindo kameneka kuchokera kumalo ogwiritsira ntchito, kusonkhana ndi kulowetsa mu kernel.

Kuwongolera mapulogalamu a eBPF, chida cha "njuchi" chamtundu wa Docker chimaperekedwa, chomwe mutha kutsitsa mwachangu chothandizira cha eBPF kuchokera kumalo osungira akunja ndikuchiyendetsa pamakina akomweko. Chida chothandizira chimakulolani kuti mupange ma code mu C kwa osamalira eBPF a mutu wosankhidwa (pakali pano ongogwira okha pa maukonde ndi ma fayilo omwe amalowetsa mafoni ku stack network ndipo mafayilo amathandizidwa). Kutengera ndi chimango chopangidwa, wopangayo amatha kugwiritsa ntchito mwachangu zomwe akufuna.

Mosiyana ndi BCC (BPF Compiler Collection), BumbleBee sichimangiriranso kachidindo kamtundu uliwonse wa Linux kernel (BCC imagwiritsa ntchito kuphatikizira pa ntchentche pogwiritsa ntchito Clang nthawi iliyonse pulogalamu ya eBPF ikakhazikitsidwa). Pofuna kuthetsa mavuto ndi kusuntha, zida za CO-RE ndi libbpf zikupangidwa, zomwe zimakupatsani mwayi wopanga kachidindo kamodzi kokha ndikugwiritsa ntchito chojambulira chapadera chapadziko lonse chomwe chimasinthira pulogalamu yodzaza kernel ndi BTF Type Format. BumbleBee ndiwowonjezera ku libbpf ndipo imapereka mitundu yowonjezereka yomasulira komanso kuwonetsetsa deta yomwe ili pamapu amtundu wa eBPF RingBuffer ndi HashMap.

Kuti mupange pulogalamu yomaliza ya eBPF ndikuisunga ngati chithunzi cha OCI, ingoyendetsani lamulo la "bee build file_with_code name:version", ndikuyendetsa lamulo la "bee run name: version". Mwachikhazikitso, zochitika zomwe zalandilidwa kuchokera kwa wothandizira zidzatuluka pawindo lazenera, koma ngati kuli kofunikira, mutha kupeza deta pogwiritsa ntchito ma curl kapena ma wget ku doko la netiweki lomwe limamangidwa kwa wothandizira. Ma Handler amatha kugawidwa kudzera m'malo osungira ogwirizana ndi OCI, mwachitsanzo, kuyendetsa chothandizira chakunja kuchokera ku ghcr.io repository (GitHub Container Registry), mutha kuyendetsa lamulo "bee run ghcr.io/solo-io/bumblebee/tcpconnect: $(mtundu wa njuchi)". Kuyika chogwirizira munkhokwe, lamulo la "bee push" likuperekedwa, ndikumanga mtundu, "bee tag".

Source: opennet.ru

Kuwonjezera ndemanga