Бұлтты жүйелерге, микросервистерге, оқшауланған контейнерлерге және серверсіз есептеулерге арналған өнімдерді әзірлейтін Solo.io компаниясы ядро ішіндегі арнайы виртуалды машинада жұмыс істейтін eBPF бағдарламаларын дайындауды, таратуды және орындауды жеңілдетуге бағытталған ашық бастапқы кодты BumbleBee құралдар жинағын жариялады. Linux және желілік операцияларды өңдеуге, кіруді басқаруға және жүйені бақылауға мүмкіндік береді. Код Go тілінде жазылған және Apache 2.0 лицензиясы бойынша таратылады.
BumbleBee eBPF бағдарламасын OCI (Open Container Initiative) контейнер кескіні ретінде орау мүмкіндігін береді, оны кез келген жүйеде қайта құрастырусыз немесе қосымша пайдаланушы кеңістігі құрамдастарынсыз іске қосуға болады. Ядродағы eBPF кодымен өзара әрекеттесу, соның ішінде eBPF өңдеушісінен алынған деректерді өңдеуді BumbleBee өңдейді, ол бұл деректерді метрика, гистограмма немесе журнал ретінде автоматты түрде экспорттайды, мысалы, curl утилитасын пайдалану арқылы оларға қол жеткізуге болады. Бұл тәсіл әзірлеушіге eBPF кодын жазуға назар аударуға мүмкіндік береді және пайдаланушы кеңістігінен осы кодпен интерфейс жасау, оны құрастыру және ядроға жүктеу қажеттілігіне алаңдамауға мүмкіндік береді.
eBPF бағдарламаларын басқару үшін «ара» деп аталатын Docker стиліндегі қызметтік бағдарлама ұсынылады. Ол сыртқы репозиторийден қажетті eBPF өңдеушісін дереу жүктеп алуға және оны жергілікті жүйеде іске қосуға мүмкіндік береді. Құралдар жинағы берілген тақырыптағы eBPF өңдеушілері үшін C кодының қаңқасын жасауға мүмкіндік береді (қазіргі уақытта тек желілік стек пен файлдық жүйе қоңырауларын ұстайтын желілік және файлдық жұмыс өңдеушілеріне қолдау көрсетіледі). Бұл қаңқаны пайдалана отырып, әзірлеуші қажетті функционалдылықты жылдам жүзеге асыра алады.
BCC-ден (BPF Compiler Collection) айырмашылығы, BumbleBee әрбір ядро нұсқасы үшін өңдеуші кодын толық қайта құрмайды. Linux (BCC eBPF бағдарламасы іске қосылған сайын Clang көмегімен жедел компиляцияны пайдаланады.) Портативтілік мәселелерін шешу үшін CO-RE және libbpf құралдар жиынтығы әзірленуде, бұл кодты тек бір рет компиляциялауға мүмкіндік береді және жүктелген бағдарламаны ағымдағы ядро мен BTF (BPF Type Format) түрлеріне бейімдейтін арнайы әмбебап жүктеушіні пайдаланады. BumbleBee - libbpf қосымшасы және стандартты eBPF карта құрылымдарында, RingBuffer және HashMap-та сақталған деректерді автоматты түрде түсіндіру және көрсету үшін қосымша түрлерді ұсынады.
Соңғы eBPF бағдарламасын құру және оны OCI кескіні ретінде сақтау үшін оны іске қосу үшін "bee build code_file name:version" және "bee run name:version" іске қосыңыз. Әдепкі бойынша өңдеушіден алынған оқиғалар терминал терезесіне шығарылады, бірақ өңдеушіге байланыстырылған желі портына curl немесе wget пайдалану арқылы деректерді шығарып алуға болады. Өңдеушілер OCI-үйлесімді репозиторийлер арқылы таратылуы мүмкін. Мысалы, ghcr.io репозиторийінен (GitHub контейнер тізілімі) сыртқы өңдегішті іске қосу үшін "bee run ghcr.io/solo-io/bumblebee/tcpconnect:$(bee нұсқасы)" іске қосуға болады. Өңдеушіні репозиторийге итеру үшін «bee push» және нұсқаны белгілеу үшін «bee тегін» пайдаланыңыз.
Ақпарат көзі: opennet.ru
