Булут системалары, микросервистер, обочолонгон контейнерлер жана серверсиз эсептөө үчүн продуктыларды иштеп чыгуучу Solo.io компаниясы ядронун ичиндеги атайын виртуалдык машинада иштеген eBPF программаларын даярдоону, жайылтууну жана аткарууну жөнөкөйлөтүүгө багытталган ачык булактуу BumbleBee куралдар топтомун жарыялады. Linux жана тармактык операцияларды иштетүүнү, кирүүнү башкарууну жана системаны көзөмөлдөөнү иштетүүгө мүмкүндүк берет. Код Go тилинде жазылган жана Apache 2.0 лицензиясынын астында таратылат.
BumbleBee eBPF программасын OCI (Open Container Initiative) форматындагы контейнер сүрөтү катары пакеттөө мүмкүнчүлүгүн берет, аны каалаган системада кайра компиляциясыз жана колдонуучу мейкиндигинде кошумча компоненттерди колдонбостон иштетүүгө болот. Негизги eBPF коду менен өз ара аракеттенүүнү, анын ичинде eBPF иштеткичинен келген маалыматтарды иштетүүнү BumbleBee өзүнө алат, ал бул маалыматтарды автоматтык түрдө метрика, гистограмма же журнал түрүндө экспорттойт, аларга, мисалы, curl утилитасы. Сунушталган ыкма иштеп чыгуучуга eBPF кодун жазууга көңүл бурууга жана бул код менен колдонуучу мейкиндигинен өз ара аракеттенүүнү уюштуруу, чогултуу жана ядрого жүктөө менен алаксыбоого мүмкүндүк берет.
eBPF программаларын башкаруу үчүн Докер стилиндеги “аары” утилитасы сунушталат, анын жардамы менен сиз кызыкдар болгон 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 file_with_code name:version” буйругун, ал эми “bee run name:version” буйругун иштетиңиз. Демейки боюнча, иштеткичтен алынган окуялар терминалдын терезесине чыгарылат, бирок керек болсо, иштеткичке туташтырылган тармак портуна curl же wget утилиталарын колдонуу менен маалыматтарды ала аласыз. Иштетүүчүлөр OCI шайкеш репозиторийлер аркылуу таркатылышы мүмкүн, мисалы, ghcr.io репозиторийинен (GitHub Контейнер Реестри) тышкы иштеткичти иштетүү үчүн, “bee run ghcr.io/solo-io/bumblebee/tcpconnect: $(аары версиясы)”. Репозиторийге иштеткичти жайгаштыруу үчүн "аарыларды түртүү" буйругу сунушталат, ал эми версияны байлоо үчүн "аары теги".
Source: opennet.ru
