solo.io, компанія хмарних обчислень, мікросервіси, ізольовані та безсерверні, представив проект з відкритим вихідним кодом "BumbleBee". Новий проект спрощує роботу розробника для створення, упаковки та розповсюдження інструментів eBPF, за словами Соло.
BumbleBee автоматично створює код простору користувача шаблон для розробки інструментів eBPF, пояснили в компанії. Він також забезпечує досвід, схожий на Docker щоб упакувати програму eBPF. Це дозволяє підключатися до інших робочих процесів зображень OCI для публікації та розповсюдження.
Про BumbleBee
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 Type Format).
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 стане набагато ширше поширення, оскільки більше операційних систем забезпечить цю можливість.
В кінці кінців якщо ви хочете дізнатися більше про це, Ви можете перевірити деталі У наступному посиланні.