Seit 1992 gibt es den Berkeley Packet Filter (BPF) für Unix als verbesserten Netzwerk-Paketfilter. Im Jahr 2014 wurde er geändert und als erweiterter BPF (eBPF) in den Linux-Kernel aufgenommen. Bald darauf begannen Entwickler jedoch, es zur Ausführung von Userspace-Code innerhalb einer virtuellen Maschine (VM) auf dem Linux-Kernel zu verwenden. Und dann war es eine große Sache. Wie der Netflix-Experte für Computerleistung, Brendan Gregg, sagte, sind mit eBPF „die Supermächte endlich zu Linux gekommen“.
Welche Superkräfte? eBPF gibt Ihnen die Möglichkeit, Programme im Linux-Kernel auszuführen, ohne den Kernel-Quellcode zu verändern oder zusätzliche Module hinzuzufügen. Es handelt sich dabei um eine leichtgewichtige Umgebung (VM) innerhalb des Linux-Kernels. Programme, die in eBPF ausgeführt werden können, laufen viel schneller und profitieren von Kernel-Funktionen, die anderen Linux-Programmen auf höherer Ebene nicht zur Verfügung stehen.
Natürlich ist es nicht einfach, Anwendungen so nah am Kernel auszuführen, selbst mit eBPF. An dieser Stelle kommt Solo.io, ein Unternehmen für Anwendungsnetzwerke, mit seinem neuen Open-Source-Projekt BumbleBee ins Spiel. BumbleBee vereinfacht das Erstellen, Verpacken und Verteilen von eBPF-Tools durch die automatische Generierung von Boilerplate-User-Space-Code für die Entwicklung von eBPF-Tools.
Es gibt dabei Ähnlichkeiten zu Docker. Das ist so gewollt. Der Code von BumbleBee ermöglicht es Ihnen auch, seine Programme in andere Image-Workflows der Open Container Initiative (OCI) zur Veröffentlichung und Verteilung einzubinden. Das bedeutet, dass Sie eBPF-Programme in einen Continuous Integration/Continuous Development (CI/CD)-Workflow einbinden können.
Normalerweise wird eBPF als sicherer Weg verwendet, um den Kernel mit Beobachtbarkeit, Netzwerk- und Sicherheitstechnologien zu erweitern. Diese Programme werden als Reaktion auf Ereignisse wie eintreffende Netzwerkpakete ausgeführt. eBPF-Programme werden in der Regel in einer höheren Sprache, wie beispielsweise C, geschrieben und dann Just in Time (JIT) in x86-Assembler kompiliert, um maximale Leistung und Sicherheit zu gewährleisten.
Die eBPF-Architektur erwartet, dass eBPF-Programme als Bytecode geladen werden, und der Kernel hat Datenstrukturen und Formate, die für jede Kernelversion spezifisch sind. Das ist, in Großbuchstaben, nicht einfach. Darüber hinaus ist das Verpacken und Verteilen dieser Binärprogramme mühsam, zeitaufwändig und fehleranfällig. Das Ziel von BumbleBee ist es, die Entwicklung, die Paketierung und den Austausch von eBPF-Tools zu vereinfachen und die Verbreitung von eBPF zu beschleunigen.
„Bei Solo.io sehen wir eBPF als eine entscheidende Technologie, die die Vernetzung von Anwendungen verbessern wird. Wir haben im letzten Jahr daran gearbeitet, die eBPF-Technologie mit Gloo Mesh zu nutzen, unserem Istio-basierten Service-Mesh-Angebot für Unternehmen“, erklärt Idit Levine, Gründer und CEO von Solo.io. „Während der Entwicklung von eBPF-Erweiterungen sahen wir uns mit vielen technischen Herausforderungen konfrontiert, was uns dazu brachte, BumbleBee zu entwickeln, um unsere eBPF-Bemühungen zu rationalisieren. Da wir von den Vorteilen von eBPF überzeugt sind, freuen wir uns, BumbleBee mit der Community zu teilen, um die Einführung von eBPF zu beschleunigen.“
BumbleBee enthält eine Befehlszeilenschnittstelle (CLI), die automatisch den User-Space-Code für eBPF-Programme generiert, indem sie die Maps automatisch als Logs, Metriken und Histogramme darstellt. Der Entwickler muss sich nur um das Schreiben des eBPF-Codes kümmern.
Solo.io hat BumbleBee unter Verwendung von libbpf entwickelt, einem neuen Toolset für die Erstellung von BPG-Programmen. Damit können Sie zum Beispiel eBPF-Sonden mit null Userspace-Code schreiben. BumbleBee erkennt und zeigt automatisch Karten in Ihrem Programm an, die es dem User-Space- und dem Kernel-Space-Programm ermöglichen, Daten gemeinsam zu nutzen. Dies wird durch die Verwendung von speziellen BPF-Konventionen und Schlüsselwörtern erreicht.
Wenn Sie mit eBPF arbeiten, verdient BumbleBee Ihre Aufmerksamkeit. Selbst in diesem frühen Stadium kann es Ihnen helfen, eBPF-Programme schneller und sicherer zu schreiben.
Neueste Kommentare
Noch keine Kommentare zu Solo BumbleBee erleichtert Linux eBPF-Programmierung
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.