BumbleBee - yon bwat zouti pou senplifye kreyasyon ak distribisyon pwogram eBPF

Solo.io, yon konpayi ki devlope pwodwi pou kouri sistèm nwaj, mikwosèvis, resipyan izole ak òdinatè san sèvè, te pibliye BumbleBee, yon zouti sous louvri ki vize pou senplifye preparasyon, distribisyon ak lansman pwogram eBPF ki kouri nan yon machin vityèl espesyal andedan. nwayo a Linux ak pèmèt operasyon rezo pwosesis, aksè kontwòl ak kontwole sistèm. Kòd la ekri nan Go epi distribye anba lisans Apache 2.0.

BumbleBee fè li posib pou pake yon pwogram eBPF kòm yon imaj veso nan fòma OCI (Open Container Initiative), ki ka kouri sou nenpòt sistèm san yo pa rekonpilasyon ak itilizasyon eleman adisyonèl nan espas itilizatè. Entèraksyon ak kòd eBPF nan nwayo a, ki gen ladan pwosesis done ki soti nan moun k ap okipe eBPF a, se BumbleBee ki pran sou, ki otomatikman ekspòte done sa yo nan fòm metrik, istogram oswa mòso bwa, ki ka jwenn aksè, pou egzanp, lè l sèvi avèk la. boukl sèvis piblik. Apwòch yo pwopoze a pèmèt pwomotè a konsantre sou ekri kòd eBPF epi yo pa distrè pa òganize entèraksyon ak kòd sa a soti nan espas itilizatè, asanble ak chaje nan nwayo a.

Pou jere pwogram eBPF, yo ofri yon sèvis piblik Docker-style "myèl", ak ki ou ka imedyatman telechaje moun kap okipe eBPF ki enterese nan yon depo ekstèn epi kouri li sou sistèm lokal la. Zouti a pèmèt ou jenere yon fondasyon kòd nan C pou moun k ap okipe eBPF nan yon sijè chwazi (kounye a se sèlman moun k ap okipe rezo ak operasyon dosye ki entèsepte apèl nan pil rezo a ak sistèm dosye yo sipòte). Ki baze sou fondasyon an pwodwi, pwomotè a ka byen vit aplike fonksyonalite li enterese nan.

Kontrèman ak BCC (BPF Compiler Collection), BumbleBee pa konplètman rekonstwi kòd moun k ap okipe a pou chak vèsyon nwayo Linux la (BCC sèvi ak konpilasyon sou vole lè l sèvi avèk Clang chak fwa pwogram eBPF lanse). Pou rezoud pwoblèm ak portabilite, zouti CO-RE ak libbpf yo ap devlope, ki pèmèt ou bati kòd sèlman yon fwa epi sèvi ak yon chajè espesyal inivèsèl ki adapte pwogram ki chaje ak nwayo aktyèl la ak fòma BTF Kalite. BumbleBee se yon sipleman libbpf epi li bay lòt kalite pou entèpretasyon otomatik ak ekspozisyon done ki sitiye nan estrikti kat estanda eBPF RingBuffer ak HashMap.

Pou konstwi pwogram eBPF final la epi sove li kòm yon imaj OCI, jis kouri kòmandman "bee build file_with_code name:version", epi kouri kòmandman "bee run name:version". Pa default, evènman yo resevwa nan men moun k ap okipe a pral soti nan fenèt tèminal la, men si sa nesesè, ou ka jwenn done lè w sèvi ak sèvis piblik curl oswa wget nan pò rezo ki mare nan moun k ap okipe a. Moun kap okipe yo ka distribye atravè depo OCI-konpatib, pou egzanp, pou kouri yon moun kap okipe ekstèn soti nan depo ghcr.io (GitHub Container Registry), ou ka kouri lòd "bee run ghcr.io/solo-io/bumblebee/tcpconnect: $(vèsyon myèl)". Pou mete yon moun kap okipe nan depo a, yo pwopoze kòmandman "bee push" la, epi mare yon vèsyon, "bee tag".

Sous: opennet.ru

Add nouvo kòmantè