BumbleBee - مجموعة أدوات لتبسيط إنشاء وتوزيع برامج eBPF

قامت شركة Solo.io، وهي شركة تقوم بتطوير منتجات لأنظمة الحوسبة السحابية والخدمات المصغرة والحاويات المعزولة والحوسبة بدون خادم، بنشر مجموعة أدوات BumbleBee مفتوحة المصدر، والتي تهدف إلى تبسيط إعداد وتوزيع وتنفيذ برامج eBPF التي تعمل في آلة افتراضية خاصة داخل النواة. Linux ويتيح ذلك معالجة عمليات الشبكة، والتحكم في الوصول، ومراقبة النظام. كُتب الكود بلغة Go ويُوزع بموجب ترخيص Apache 2.0.

يتيح لك BumbleBee حزم برنامج eBPF كصورة حاوية OCI (مبادرة الحاويات المفتوحة) يمكن تشغيلها على أي نظام دون الحاجة إلى إعادة تجميع أو مكونات إضافية لمساحة المستخدم. يتولى BumbleBee التفاعل مع شيفرة eBPF في النواة، بما في ذلك معالجة البيانات الواردة من معالج eBPF، حيث يُصدر هذه البيانات تلقائيًا كمقاييس أو رسوم بيانية أو سجلات، والتي يمكن الوصول إليها، على سبيل المثال، باستخدام أداة curl. يتيح النهج المقترح للمطور التركيز على كتابة شيفرة eBPF دون تشتيت انتباهه بتنظيم التفاعل مع هذه الشيفرة من مساحة المستخدم، وتجميعها، وتحميلها إلى النواة.

لإدارة برامج eBPF، تُقدّم أداة مساعدة شبيهة بـ Docker تُسمى "bee"، والتي تُمكّنك من تنزيل مُعالج eBPF المطلوب فورًا من مستودع خارجي وتشغيله على النظام المحلي. تُتيح لك هذه الأداة إنشاء هيكل برمجي بلغة C لمعالجات eBPF للموضوع المُختار (حاليًا، لا يُدعم سوى مُعالجات عمليات الشبكة والملفات التي تعترض استدعاءات مكدس الشبكة وأنظمة الملفات). بناءً على الهيكل المُولّد، يُمكن للمطور تنفيذ الوظيفة المطلوبة بسرعة.

على عكس BCC (مجموعة مترجمات BPF)، لا يقوم BumbleBee بإعادة بناء كاملة لرمز المعالج لكل إصدار من النواة. Linux (يستخدم BCC الترجمة الفورية باستخدام Clang في كل مرة يتم فيها تشغيل برنامج eBPF). ولمعالجة مشكلات قابلية النقل، يجري تطوير مجموعتي أدوات CO-RE وlibbpf، مما يسمح بترجمة الكود مرة واحدة فقط باستخدام مُحمِّل عام خاص يُكيِّف البرنامج المُحمَّل مع النواة الحالية وأنواع BTF (تنسيق نوع BPF). 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 version)". لوضع المُعالِج في المستودع، استخدم الأمر "bee push"، ولربط الإصدار، استخدم الأمر "bee tag".

المصدر: opennet.ru

شراء استضافة موثوقة للمواقع مع حماية DDoS وخوادم VPS VDS 🔥 اشترِ استضافة مواقع ويب موثوقة مع حماية من هجمات DDoS، وخوادم VPS وVDS | ProHoster