BumbleBee - pecyn cymorth i symleiddio'r broses o greu a dosbarthu rhaglenni eBPF

Mae Solo.io, cwmni sy'n datblygu cynhyrchion ar gyfer rhedeg systemau cwmwl, microwasanaethau, cynwysyddion ynysig a chyfrifiadura di-weinydd, wedi cyhoeddi BumbleBee, pecyn cymorth ffynhonnell agored gyda'r nod o symleiddio'r broses o baratoi, dosbarthu a lansio rhaglenni eBPF sy'n rhedeg mewn peiriant rhithwir arbennig y tu mewn. y cnewyllyn Linux a chaniatáu gweithrediadau rhwydwaith prosesu, rheoli mynediad a monitro systemau. Mae'r cod wedi'i ysgrifennu yn Go a'i ddosbarthu o dan drwydded Apache 2.0.

Mae BumbleBee yn ei gwneud hi'n bosibl pecynnu rhaglen eBPF fel delwedd cynhwysydd yn y fformat OCI (Open Container Initiative), y gellir ei rhedeg ar unrhyw system heb ei hail-grynhoi a defnyddio cydrannau ychwanegol yn y gofod defnyddiwr. Mae rhyngweithio â’r cod eBPF yn y craidd, gan gynnwys prosesu data sy’n dod o’r trafodwr eBPF, yn cael ei gymryd drosodd gan BumbleBee, sy’n allforio’r data hwn yn awtomatig ar ffurf metrigau, histogramau neu logiau, y gellir eu cyrchu, er enghraifft, gan ddefnyddio’r cyfleustodau cyrl. Mae'r dull arfaethedig yn caniatáu i'r datblygwr ganolbwyntio ar ysgrifennu cod eBPF a pheidio â chael ei dynnu sylw trwy drefnu rhyngweithio â'r cod hwn o ofod y defnyddiwr, cydosod a llwytho i'r cnewyllyn.

Er mwyn rheoli rhaglenni eBPF, cynigir cyfleuster “gwenyn” arddull Docker, y gallwch ei ddefnyddio ar unwaith i lawrlwytho'r trafodwr o ddiddordeb eBPF o ystorfa allanol a'i redeg ar y system leol. Mae'r pecyn cymorth yn eich galluogi i gynhyrchu fframwaith cod yn C ar gyfer y rhai sy'n trin eBPF pwnc dethol (ar hyn o bryd dim ond trinwyr ar gyfer gweithrediadau rhwydwaith a ffeil sy'n rhyng-gipio galwadau i'r pentwr rhwydwaith a systemau ffeiliau a gefnogir). Yn seiliedig ar y fframwaith a gynhyrchir, gall y datblygwr weithredu'r ymarferoldeb y mae ganddo ddiddordeb ynddo yn gyflym.

Yn wahanol i BCC (BPF Compiler Collection), nid yw BumbleBee yn ailadeiladu'r cod trin ar gyfer pob fersiwn o'r cnewyllyn Linux yn llwyr (mae BCC yn defnyddio casgliad ar-y-hedfan gan ddefnyddio Clang bob tro y caiff rhaglen eBPF ei lansio). Er mwyn datrys problemau gyda hygludedd, mae'r offer CO-RE a libbpf yn cael eu datblygu, sy'n eich galluogi i adeiladu cod unwaith yn unig a defnyddio llwythwr cyffredinol arbennig sy'n addasu'r rhaglen lwytho i'r cnewyllyn cyfredol a Fformat Math BTF. Mae BumbleBee yn ychwanegiad i libbpf ac mae'n darparu mathau ychwanegol ar gyfer dehongli ac arddangos data yn awtomatig sydd wedi'u lleoli yn strwythurau map safonol eBPF RingBuffer a HashMap.

I adeiladu'r rhaglen eBPF derfynol a'i chadw fel delwedd OCI, rhedwch y gorchymyn “bee build file_with_code name: version”, ac i redeg y gorchymyn “bee run name: version”. Yn ddiofyn, bydd digwyddiadau a dderbynnir gan y triniwr yn cael eu hallbynnu i ffenestr y derfynell, ond os oes angen, gallwch gael data trwy ddefnyddio cyfleustodau curl neu wget i'r porthladd rhwydwaith sy'n rhwym i'r triniwr. Gellir dosbarthu trinwyr trwy ystorfeydd sy'n gydnaws â OCI, er enghraifft, i redeg triniwr allanol o'r ystorfa ghcr.io (Cofrestrfa Cynhwysydd GitHub), gallwch redeg y gorchymyn “bee run ghcr.io/solo-io/bumblebee/tcpconnect: $ (fersiwn gwenyn)”. Er mwyn gosod triniwr yn y gadwrfa, cynigir y gorchymyn “gwthio gwenyn”, ac i rwymo fersiwn, “tag gwenyn”.

Ffynhonnell: opennet.ru

Ychwanegu sylw