BumbleBee — njĂ« mjet pĂ«r thjeshtimin e krijimit dhe shpĂ«rndarjes sĂ« programeve eBPF

Kompania Solo.io, që zhvillon produkte për sigurimin e funksionimit të sistemeve në cloud, mikroshërbimeve, kontejnerëve të izoluar dhe llogaritjeve pa server, publikoi një toolkit të hapur BumbleBee, i orientuar për thjeshtimin e përgatitjes, shpërndarjes dhe nisjes së programeve eBPF, që ekzekutohen në një makinë virtuale speciale brenda bërthamës Linux dhe lejojnë përpunimin e operacioneve rrjetësore, kontrollin e aksesit dhe monitorimin e funksionimit të sistemeve. Kodi është shkruar në gjuhën Go dhe shpërndahet nën licencën Apache 2.0.

BumbleBee ofron mundësinë për të paketuar një program eBPF si një imazh kontejneri në formatin OCI (Open Container Initiative), i cili mund të ekzekutohet në çdo sistem pa ripaketim dhe pa nevojën për komponentë të tjerë në hapësirën e përdoruesit. Ndërveprimi me kodin eBPF në bërthamë, përfshirë përpunimin e të dhënave që vijnë nga trajtuesit e eBPF, merret nga BumbleBee, i cili automatikisht eksporton këto të dhëna si metrika, histogramë ose skeda, të cilat mund të aksesohen, për shembull, me ndihmën e mjetit curl. Qasja e propozuar i lejon zhvilluesit të përqendrohen në shkruajten e kodit eBPF dhe të mos shpërqendrohen nga organizimi i ndërveprimit me këtë kod nga hapësira e përdoruesit, ndërtimin dhe ngarkimin në bërthamë.

Për menaxhimin e programeve eBPF, ofrohet një mjet me stil Docker i quajtur "bee", me anë të cilit mund të ngarkohet menjëherë një trajtues eBPF nga një depo e jashtme dhe të fillohet në sistemin lokal. Ky tooling lejon gjenerimin e një kornize kodi në gjuhën C për trajtuesit e eBPF të tematikave të zgjedhura (aktualisht mbështeten vetëm trajtuesit e operacioneve rrjetësore dhe të skedarëve, të cilët kapin thirrjet e grackave të rrjetit dhe sistemeve të skedarëve). Në bazë të kornizës së formuar, zhvilluesi mund të realizojë shpejt funksionalitetin që e intereson.

Ndryshe nga BCC (BPF Compiler Collection), në BumbleBee nuk kryhet rikonstruim i plotë i kodit të përpunuesve për çdo version të kernel-it Linux (BCC përdor kompilimin në kohë reale me Clang për çdo hapje të programit eBPF). Për të zgjidhur problemet e portabilitetit, janë zhvilluar mjete CO-RE dhe libbpf, që lejojnë krijimin e kodit vetëm një herë dhe përdorimin e një ngarkuesi universal të veçantë, i cili përshtat programin e ngarkuar për kernel-in aktual dhe llojet BTF (BPF Type Format). BumbleBee është një shtresë mbi libbpf dhe ofron lloje shtesë për interpretimin dhe paraqitjen automatike të të dhënave, të vendosura në struktura të map-eve standarde për eBPF, siç janë RingBuffer dhe HashMap.

PĂ«r tĂ« ndĂ«rtuar programin pĂ«rfundimtar eBPF dhe pĂ«r ta ruajtur si njĂ« imazh OCI, mjafton tĂ« ekzekutoni komandĂ«n "bee build file_me_code emri:version", dhe pĂ«r ta lancuar komandĂ«n "bee run emri:version". Siç Ă«shtĂ« e zakonshme, tĂ« dhĂ«nat e marra nga trajtuesi i ngjarjeve do tĂ« shfaqen nĂ« dritaren e terminalit, por nĂ«se Ă«shtĂ« e nevojshme, mund tĂ« merrni tĂ« dhĂ«nat duke pĂ«rdorur utilitat curl ose wget drejt portit tĂ« rrjetit tĂ« lidhur me trajtuesin. Trajtuesit mund tĂ« shpĂ«rndahen pĂ«rmes depozita tĂ« pĂ«rputhshme me OCI, pĂ«r shembull, pĂ«r tĂ« ekzekutuar njĂ« trajtues tĂ« jashtĂ«m nga depozitĂ« ghcr.io (GitHub Container Registry), mund tĂ« ekzekutoni komandĂ«n "bee run ghcr.io/solo-io/bumblebee/tcpconnect:$(bee version)". PĂ«r tĂ« vendosur trajtuesin nĂ« depo, komanda e propozuar Ă«shtĂ« "bee push", dhe pĂ«r tĂ« lidhur versionin — "bee tag".

Burimi: opennet.ru

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster