Kompania Solo.io, e cila zhvillon produkte për sigurimin e funksionimit të sistemeve cloud, mikrosistemeve, konteinerëve të izoluar dhe llogaritjeve serverless, publikoi një vegël të hapur BumbleBee, e cila synon të thjeshtojë përgatitjen, shpërndarjen dhe fillimin e programeve eBPF, të cilat ekzekutohen në një makinë virtuale të veçantë brenda kernelit Linux dhe lejojnë përpunimin e operacioneve rrjetë, kontrollimin e aksesit dhe monitorimin e punës së 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 në formën e një imazhi konteineri në formatin OCI (Open Container Initiative), i cili mund të ekzekutohet në çdo sistem pa e rikonstruuar dhe pa përdorur komponentë të tjerë në hapësirën e përdoruesit. Bashkëveprimi me kodin eBPF në kernel, përfshirë përpunimin e të dhënave që vijnë nga trajtuesi eBPF, merret mbi vete nga BumbleBee, i cili automatikisht eksporton këto të dhëna në formën e metrikave, histogramëve ose log-ave, të cilat mund të aksesohen, për shembull, me anë të utilitetit curl. Qasja e propozuar lejon zhvilluesin të përqendrohet në shkruarjen e kodit eBPF dhe të mos shqetësohet për organizimin e bashkëveprimit me këtë kod nga hapësira e përdoruesit, ndërtimin dhe ngarkimin në kernel.
Për menaxhimin e programeve eBPF ofrohet një utilitet "bee" që funksionon në stilin Docker, me anë të të cilit mund të ngarkohet menjëherë eBPF përpunuesi nga një depo jashtme dhe të hapet në sistemin lokal. Ky mjet lejon gjenerimin e një skeleti kodi në gjuhën C për përpunuesit e eBPF të tematikës së zgjedhur (aktualisht mbështeten vetëm përpunuesit për operacionet rrjetë dhe skedarë, që kapin thirrjet e stakut rrjetor dhe sistemeve të skedarëve). Bazuar në skeletin e formuar, zhvilluesi mund të realizojë shpejt funksionalitetin që e intereson.
Në krahasim me BCC (BPF Compiler Collection), në BumbleBee nuk bëhet një rindërtim i plotë i kodit të përgjegjësit për çdo version të bërthamës Linux (BCC përdor kompilimin në flakë përmes Clang çdo herë që ekzekutohet një program eBPF). Për të zgjidhur problemet me portabilitetin po zhvillohen mjetet CO-RE dhe libbpf, të cilat lejojnë që kodi të kompilojë vetëm një herë dhe të përdorë një ngarkues universale të veçantë, i cili adapton programin e ngarkuar me bërthamën aktuale dhe llojet BTF (BPF Type Format). BumbleBee është një shtresë mbi libbpf dhe ofron lloje shtesë për interpretimin dhe shfaqjen automatikisht të të dhënave të vendosura në struktura standarde për eBPF map si RingBuffer dhe HashMap.
PĂ«r tĂ« ndĂ«rtuar programin pĂ«rfundimtar eBPF dhe ruajtur atĂ« si njĂ« imazh OCI, mjafton tĂ« ekzekutohet komanda "bee build file_me_kodin emri:version", dhe pĂ«r ta nisur komandĂ«n "bee run emri:version". Nga pĂ«rfundimi, ngjarjet qĂ« vijnĂ« nga pĂ«rpunuesi do tĂ« shfaqen nĂ« dritaren e terminalit, por nĂ«se nevojitet, mund tĂ« marrĂ«ni tĂ« dhĂ«nat duke iu drejtuar utiliteteve curl ose wget nĂ« portin rrjetor tĂ« lidhur me pĂ«rpunuesin. PĂ«rpunuesit mund tĂ« shpĂ«rndahen pĂ«rmes depozita OCI-pĂ«rputhĂ«se, pĂ«r shembull, pĂ«r tĂ« nisur njĂ« pĂ«rpunues tĂ« jashtĂ«m nga depoja ghcr.io (GitHub Container Registry) mund tĂ« ekzekutohet komanda "bee run ghcr.io/solo-io/bumblebee/tcpconnect:$(bee version)". PĂ«r tĂ« vendosur pĂ«rpunuesin nĂ« repozitĂ« propozohet komanda "bee push", dhe pĂ«r tĂ« lidhur versionin â "bee tag".
Burimi: opennet.ru
