Соло ио, компания облачных вычислений, микросервисы, изолированные и бессерверные, представил проект с открытым исходным кодом «Шмель». Новый проект упрощает работу разработчиков создавать, упаковывать и распространять инструменты eBPF, по словам Соло.
BumbleBee автоматически генерировать код пространства пользователя Компания пояснила, что постоянно разрабатывает инструменты eBPF. Он также обеспечивает работу в стиле Docker. для упаковки программы eBPF. Это позволяет подключаться к другим рабочим процессам изображений OCI для публикации и распространения.
О Бамблби
BumbleBee позволяет упаковать программу eBPF в виде образа контейнера Open Container Initiative (OCI), которую можно запустить в любой системе без перекомпиляции и использования дополнительных компонентов в пространстве пользователя.
Взаимодействием с кодом eBPF в ядре, включая обработку данных, поступающих от процессора eBPF, занимается BumbleBee, который автоматически экспортирует эти данные в виде метрик, гистограмм или логов, доступ к которым можно получить, например, с помощью утилита curl. Предлагаемый подход позволяет разработчику сосредоточиться на написании кода eBPF. и не отвлекаться на организацию взаимодействия с этим кодом из пространства пользователя, сборку и загрузку в ядро.
Генеральный директор Solo.io, Идит Левин говорит, что:
Компания разработала BumbleBee для автоматического создания повторяющегося кода пользовательского пространства, необходимого для доступа к технологиям eBPF, работающим на уровне ядра. BumbleBee включает в себя интерфейс командной строки (CLI), который автоматически генерирует код пользовательского пространства для программ eBPF, автоматически предоставляя карты, такие как журналы, метрики и гистограммы.
Для управления программами eBPF, предусмотрена утилита "пчела" в стиле Docker, с помощью которой можно сразу скачать драйвер eBPF из внешнего репозитория и запустить его в локальной системе.
Инструментарий позволяет генерировать кадр кода C для драйверов eBPF для выбранной темы (в настоящее время поддерживаются только файловые и сетевые драйверы, перехватывающие вызовы сетевого стека и файловые системы). На основе сгенерированного фреймворка разработчик может быстро реализовать интересующий его функционал.
В отличие от BCC (коллекция компиляторов BPF), BumbleBee не полностью перестраивает код драйвера для каждой версии ядра. Linux (BCC использует компиляцию на лету с Clang каждый раз, когда запускается программа eBPF).
Чтобы решить проблемы с переносимостью, Развиваются наборы инструментов CO-RE и libbpf, которые позволяют компилировать код один раз и использовать специальный универсальный загрузчик, который адаптирует загружаемую программу под текущее ядро и типы BTF (формат типа BPF).
BumbleBee является надстройкой над libbpf и предоставляет дополнительные типы для автоматической интерпретации и визуализации данных, размещенных в стандартных структурах карты RingBuffer и HashMap eBPF.
Чтобы собрать окончательную программу eBPF и сохранить ее как образ OCI, просто выполните команду:
bee build file_with_code name:version
И запустите команду
bee run name:version
По умолчанию события, полученные от контроллера, будут отображаться в окне терминала, но при необходимости вы можете получить данные, вызвав утилиты curl или wget на сетевой порт, привязанный к контроллеру.
Драйверы можно распространять через репозитории, совместимые с OCI, например, чтобы запустить внешний драйвер из репозитория ghcr.io (GitHub Container Registry), вы можете запустить команду
bee run ghcr.io/solo-io/bumblebee/tcpconnect:$(bee version)
Для помещения контроллера в репозиторий предлагается команда
bee push
И связать версию
bee tag
Самым большим преимуществом eBPF является просто эффективность. Общая стоимость обработки для платформ безопасности, сетей и хранения данных должна снижаться по мере того, как все больше поставщиков используют их возможности.
Сейчас, eBPF широко используется веб-компаниями, такими как поставщики облачных услуг. Facebook использует его в качестве основного программно-определяемого балансировщика нагрузки в своих центрах обработки данных, в то время как Google использует сетевое программное обеспечение Cilium с открытым исходным кодом в своих управляемых предложениях Kubernetes.
Однако в будущем, по словам Левин, это только вопрос времени, когда eBPF получит гораздо более широкое распространение, поскольку все больше операционных систем обеспечивают эту емкость.
В конце концов если вы хотите узнать об этом больше, вы можете проверить подробности По следующей ссылке.