BumbleBee - eBPF پروگراموں کی تخلیق اور تقسیم کو آسان بنانے کے لیے ایک ٹول کٹ

Solo.io، ایک کمپنی جو کلاؤڈ سسٹم، مائیکرو سروسز، الگ تھلگ کنٹینرز اور سرور لیس کمپیوٹنگ چلانے کے لیے پروڈکٹس تیار کرتی ہے، نے BumbleBee شائع کیا ہے، ایک اوپن سورس ٹول کٹ جس کا مقصد eBPF پروگراموں کی تیاری، تقسیم اور لانچ کو آسان بنانا ہے جو کہ اندر ایک خاص ورچوئل مشین میں چلتے ہیں۔ لینکس کرنل اور پروسیسنگ نیٹ ورک آپریشنز، کنٹرول رسائی اور مانیٹر سسٹم کی اجازت دیتا ہے۔ کوڈ گو میں لکھا گیا ہے اور اپاچی 2.0 لائسنس کے تحت تقسیم کیا گیا ہے۔

BumbleBee ایک eBPF پروگرام کو OCI (اوپن کنٹینر انیشی ایٹو) فارمیٹ میں ایک کنٹینر امیج کے طور پر پیک کرنا ممکن بناتا ہے، جسے کسی بھی سسٹم پر بغیر کمپائلیشن اور صارف کی جگہ میں اضافی اجزاء کے استعمال کے چلایا جا سکتا ہے۔ کور میں ای بی پی ایف کوڈ کے ساتھ تعامل، بشمول ای بی پی ایف ہینڈلر سے آنے والے ڈیٹا کی پروسیسنگ، کو بومبل بی نے سنبھال لیا ہے، جو خود بخود اس ڈیٹا کو میٹرکس، ہسٹوگرامس یا لاگز کی شکل میں برآمد کرتا ہے، جس تک رسائی حاصل کی جاسکتی ہے، مثال کے طور پر، استعمال کرتے ہوئے curl افادیت. مجوزہ نقطہ نظر ڈویلپر کو eBPF کوڈ لکھنے پر توجہ مرکوز کرنے کی اجازت دیتا ہے اور صارف کی جگہ، اسمبلی اور کرنل میں لوڈ کرنے سے اس کوڈ کے ساتھ تعامل کو منظم کرکے مشغول نہیں ہوتا ہے۔

ای بی پی ایف پروگراموں کو منظم کرنے کے لیے، ایک ڈاکر طرز کی "مکھی" کی افادیت پیش کی جاتی ہے، جس کے ساتھ آپ فوری طور پر بیرونی ذخیرے سے دلچسپی کے ای بی پی ایف ہینڈلر کو ڈاؤن لوڈ کر سکتے ہیں اور اسے مقامی نظام پر چلا سکتے ہیں۔ ٹول کٹ آپ کو منتخب موضوع کے ای بی پی ایف ہینڈلرز کے لیے سی میں ایک کوڈ فریم ورک بنانے کی اجازت دیتی ہے (فی الحال صرف نیٹ ورک اور فائل آپریشنز کے لیے ہینڈلرز جو نیٹ ورک اسٹیک پر کال کو روکتے ہیں اور فائل سسٹم سپورٹ ہوتے ہیں)۔ تیار کردہ فریم ورک کی بنیاد پر، ڈویلپر اس فعالیت کو تیزی سے نافذ کر سکتا ہے جس میں وہ دلچسپی رکھتا ہے۔

BCC (BPF Compiler Collection) کے برعکس، BumbleBee لینکس کرنل کے ہر ورژن کے لیے ہینڈلر کوڈ کو مکمل طور پر دوبارہ نہیں بناتا ہے (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 ریپوزٹری (GitHub کنٹینر رجسٹری) سے ایک بیرونی ہینڈلر چلانے کے لیے، آپ "bee run ghcr.io/solo-io/bumblebee/tcpconnect:" کمانڈ چلا سکتے ہیں۔ $(مکھی ورژن)"۔ ریپوزٹری میں ہینڈلر رکھنے کے لیے، "بی پش" کمانڈ تجویز کی گئی ہے، اور ایک ورژن کو باندھنے کے لیے، "بی ٹیگ"۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں