Solo.io, компанија која развија производе за cloud системе, микросервисе, изоловане контејнере и рачунарство без сервера, објавила је BumbleBee алат отвореног кода, чији је циљ поједностављење припреме, дистрибуције и извршавања eBPF програма који се покрећу у посебној виртуелној машини унутар језгра. Linux и омогућавају обраду мрежних операција, контролу приступа и праћење система. Код је написан у програмском језику Go и дистрибуиран је под Apache 2.0 лиценцом.
БумблеБее омогућава паковање еБПФ програма као слике контејнера у ОЦИ (Опен Цонтаинер Инитиативе) формату, који се може покренути на било ком систему без поновне компилације и употребе додатних компоненти у корисничком простору. Интеракцију са еБПФ кодом у језгру, укључујући обраду података који долазе из еБПФ руковаоца, преузима БумблеБее, који аутоматски извози ове податке у облику метрике, хистограма или евиденције, којима се може приступити, на пример, помоћу цурл утилити. Предложени приступ омогућава програмеру да се фокусира на писање еБПФ кода и да га не омета организовање интеракције са овим кодом из корисничког простора, склапања и учитавања у кернел.
Да бисте управљали еБПФ програмима, нуди се услужни програм „пчеле“ у стилу Доцкер-а, помоћу којег можете одмах преузети еБПФ обрађивач од интереса из екстерног спремишта и покренути га на локалном систему. Комплет алата вам омогућава да генеришете оквир кода у Ц-у за еБПФ руковаоце изабране теме (тренутно су подржани само руковаоци за мрежне операције и операције датотека које пресрећу позиве мрежном стеку и системима датотека). На основу генерисаног оквира, програмер може брзо да имплементира функционалност за коју је заинтересован.
За разлику од BCC (BPF Compiler Collection), BumbleBee не врши потпуну реконструкцију кода за руковање за сваку верзију кернела. Linux (BCC користи компилацију у ходу са Clang-ом сваки пут када се покрене eBPF програм.) Да би се решили проблеми преносивости, развијају се CO-RE и libbpf алати, који омогућавају да се код компајлира само једном и користе посебан универзални програм за учитавање који прилагођава учитани програм тренутном језгру и BTF (BPF Type Format) типовима. BumbleBee је додатак libbpf-у и пружа додатне типове за аутоматско тумачење и приказивање података сачуваних у стандардним eBPF структурама мапа, RingBuffer и HashMap.
Да бисте направили коначни еБПФ програм и сачували га као ОЦИ слику, само покрените команду „бее буилд филе_витх_цоде наме:версион“ и да покренете команду „бее рун наме:версион“. Подразумевано, догађаји примљени од руковаоца биће излазни у прозор терминала, али ако је потребно, можете добити податке помоћу цурл или вгет услужних програма на мрежни порт везан за руковалац. Руковаоци се могу дистрибуирати кроз ОЦИ компатибилна спремишта, на пример, да бисте покренули спољни руковалац из гхцр.ио спремишта (ГитХуб Цонтаинер Регистри), можете покренути команду „бее рун гхцр.ио/соло-ио/бумблебее/тцпцоннецт: $(бее верзија)”. За постављање руковаоца у спремиште, предложена је команда „бее пусх“, а за повезивање верзије „бее таг“.
Извор: опеннет.ру
