BumbleBee - маҷмӯи асбобҳо барои содда кардани эҷод ва паҳнкунии барномаҳои eBPF

Solo.io, як ширкате, ки маҳсулотро барои идора кардани системаҳои абрӣ, микросервисҳо, контейнерҳои ҷудошуда ва компютерҳои бе сервер таҳия мекунад, BumbleBee-ро нашр кард, ки асбоби кушодаасосро барои содда кардани омодасозӣ, паҳнкунӣ ва оғози барномаҳои eBPF, ки дар як мошини махсуси виртуалӣ кор мекунанд, нашр кард. ядрои Linux ва иҷозати коркарди амалиёти шабакавӣ, назорати дастрасӣ ва системаҳои мониторинг. Рамз дар Go навишта шудааст ва таҳти иҷозатномаи Apache 2.0 паҳн карда мешавад.

BumbleBee имкон медиҳад, ки барномаи eBPF-ро ҳамчун тасвири контейнерӣ дар формати OCI (Open Container Initiative) бастабандӣ кунед, ки онро дар ҳама гуна система бе такрор ва истифодаи ҷузъҳои иловагӣ дар фазои корбар иҷро кардан мумкин аст. Ҳамкорӣ бо рамзи eBPF дар ядро, аз ҷумла коркарди маълумоте, ки аз коркардкунандаи eBPF меояд, аз ҷониби BumbleBee гирифта мешавад, ки ин маълумотро ба таври худкор дар шакли метрика, гистограммаҳо ё гузоришҳо содир мекунад, ки ба онҳо, масалан, бо истифода аз утилитаи curl. Усули пешниҳодшуда ба таҳиягар имкон медиҳад, ки диққати худро ба навиштани рамзи eBPF равона кунад ва аз ташкили ҳамкорӣ бо ин код аз фазои корбар, васлкунӣ ва боркунӣ ба ядро ​​парешон нашавад.

Барои идоракунии барномаҳои eBPF, як утилитаи навъи Docker "bee" пешниҳод карда мешавад, ки бо он шумо метавонед фавран коркардкунандаи eBPF-ро аз анбори беруна зеркашӣ кунед ва онро дар системаи маҳаллӣ иҷро кунед. Маҷмӯаи абзор ба шумо имкон медиҳад, ки чаҳорчӯбаи кодро дар C барои коркардкунандагони eBPF-и мавзӯи интихобшуда эҷод кунед (дар айни замон танҳо коркардкунандагон барои амалиёти шабакавӣ ва файлӣ, ки зангҳоро ба стеки шабака ва системаҳои файлӣ халалдор мекунанд, дастгирӣ мешаванд). Дар асоси чаҳорчӯбаи тавлидшуда, таҳиякунанда метавонад функсияи ба ӯ таваҷҷӯҳ доштаро зуд амалӣ созад.

Баръакси BCC (Collection Compiler BPF), BumbleBee рамзи коркардкунандаро барои ҳар як версияи ядрои Linux пурра аз нав барқарор намекунад (BCC ҳар боре, ки барномаи eBPF оғоз мешавад, компиляцияи фаврӣ бо истифода аз Clang истифода мебарад). Барои ҳалли мушкилот бо интиқол, асбобҳои CO-RE ва libbpf таҳия карда мешаванд, ки ба шумо имкон медиҳанд, ки танҳо як маротиба код созед ва як боркунаки махсуси универсалиро истифода баред, ки барномаи боршударо ба ядрои ҷорӣ ва формати BTF мутобиқ мекунад. BumbleBee як замимаи libbpf буда, намудҳои иловагиро барои тафсири худкор ва намоиши додаҳо дар сохторҳои стандартии харитаи eBPF RingBuffer ва HashMap таъмин менамояд.

Барои сохтани барномаи ниҳоии eBPF ва захира кардани он ҳамчун тасвири OCI, танҳо фармони "bee build file_with_code name:version" -ро иҷро кунед ва фармони "bee run name:version" -ро иҷро кунед. Бо нобаёнӣ, рӯйдодҳои аз коркардкунанда гирифташуда ба равзанаи терминал бароварда мешаванд, аммо агар лозим бошад, шумо метавонед маълумотро бо истифода аз утилитаҳои curl ё wget ба порти шабакавӣ, ки ба коркардкунанда вобаста аст, гиред. Ҳедлерҳоро тавассути анборҳои мувофиқи OCI тақсим кардан мумкин аст, масалан, барои иҷро кардани коркарди беруна аз анбори ghcr.io (Registr Container GitHub), шумо метавонед фармони "bee run ghcr.io/solo-io/bumblebee/tcpconnect -ро иҷро кунед: $(версияи занбӯри асал)». Барои ҷойгир кардани коркардкунанда дар анбор, фармони "bee push" пешниҳод карда мешавад ва барои пайваст кардани версияи "bee tag".

Манбаъ: opennet.ru

Илова Эзоҳ