Solo BumbleBee gør Linux eBPF-programmering lettere

0
164

Steven Vaughan-Nichols Skrevet af Steven Vaughan-Nichols, Senior Contributing Editor Steven Vaughan-NicholsSteven Vaughan-Nichols Senior bidragende redaktør

Steven J. Vaughan-Nichols, aka sjvn, har skrevet om teknologi og teknologiens forretning, siden CP/M-80 var det banebrydende pc-operativsystem; 300bps var en hurtig internetforbindelse; WordStar var den nyeste tekstbehandler; og vi kunne lide det.

Fuld biografi Udgivet i Linux og Open Source den 6. januar 2022 | Emne: Enterprise Software

I 1992 blev Berkeley Packet Filter (BPF) introduceret i Unix-kredse som et nyt, forbedret netværkspakkefilter. Dejligt, men ikke så stor en sag. Så, i 2014, blev det ændret og bragt ind i Linux-kernen som udvidet BPF (eBPF). Igen, det var okay. Bare okay. Kort efter begyndte udviklere dog at bruge det til at køre brugerrumskode inde i en virtuel maskine (VM) på Linux-kernen. Og så var det en kæmpe aftale. Som Netflix-computerydeekspert Brendan Gregg sagde med eBPF, “er der endelig kommet superkræfter til Linux.”

Hvilke superkræfter? eBPF giver dig mulighed for at køre programmer i Linux-kernen uden at ændre kernekildekoden eller tilføje yderligere moduler. Faktisk fungerer det som en letvægts (VM) inde i Linux-kernerummet. Der kører programmer, der kan køre i eBPF, meget hurtigere, mens de udnytter kernefunktioner, der ikke er tilgængelige for andre Linux-programmer på højere niveau.

Selvfølgelig er det ikke let at køre programmer, der er tæt på kernen, selv med eBPF. Det er her Solo.io, en applikationsnetværksvirksomhed, kommer ind med sit nye open source-projekt, BumbleBee. BumbleBee forenkler bygning, emballering og distribution af eBPF-værktøjer ved automatisk at generere kedel-brugerpladskode til udvikling af eBPF-værktøjer.

Hvis det lyder lidt som Docker, har du ret. Det er ved design. BumbleBee's kode giver dig også mulighed for at tilslutte dets programmer til andre Open Container Initiative (OCI) billedworkflows til publicering og distribution. Betyder det, at du kan inkorporere eBPF-programmer i en kontinuerlig integration/kontinuerlig udvikling (CI/CD) arbejdsgang? Ja det gør.

Typisk bruges eBPF som en sikker måde at forbedre kernen med observerbarhed, netværk og sikkerhedsteknologier. Disse programmer kører som reaktion på begivenheder, såsom netværkspakker, der ankommer. Typisk er eBPF-programmer skrevet på et højere niveau sprog, såsom C, og derefter Just in Time (JIT) kompileret i x86 assembly for maksimal ydeevne og sikkerhed.

eBPF-arkitekturen forventer, at eBPF-programmer indlæses som bytekode, og kernen har datastrukturer og formater, der er specifikke for hver kerneversion. Det er ikke nemt med store bogstaver. Derudover er pakning og distribution af disse binære programmer kedeligt, tidskrævende og fejludsat. BumbleBees mål er at forenkle udviklingen, pakningen og delingen af ​​eBPF-værktøjer og fremskynde eBPF's indførelse.

“Hos Solo.io ser vi eBPF som en kritisk muliggørende teknologi, der vil forbedre applikationsnetværk. Vi har arbejdet i løbet af det sidste år på at udnytte eBPF-teknologien med Gloo Mesh, vores Istio-baserede service-mesh-tilbud til virksomheden,” sagde Idit Levine, Solo.ios grundlægger og administrerende direktør. “Mens vi udviklede eBPF-udvidelser, har vi stået over for mange tekniske udfordringer – og det fik os til at udvikle BumbleBee for at hjælpe med at strømline vores eBPF-indsats. Da vi virkelig tror på fordelene ved eBPF, er vi glade for at dele BumbleBee med fællesskabet for at accelerere eBPF-adoptionen. .”

BumbleBee inkluderer en kommandolinjegrænseflade (CLI), der automatisk genererer brugerpladskoden til eBPF-programmer ved at eksponere kort automatisk som logfiler, metrikker og histogrammer. Udvikleren skal kun bekymre sig om at skrive eBPF-koden.

Solo.io byggede BumbleBee ved hjælp af libbpf, et nyt værktøjssæt til at bygge BPG-programmer. Med den kan du for eksempel skrive eBPF-sonder med nul brugerrumskode. BumbleBee registrerer og viser automatisk kort i dit program, der tillader brugerplads- og kernelrumsprogrammer at dele data. Dette opnås ved brug af særlige BPF-konventioner og nøgleord.

Hvis du arbejder med eBPF, kræver BumbleBee din opmærksomhed. Selv på dette tidlige stadium kan det hjælpe dig med at skrive eBPF-programmer hurtigere og mere sikkert.

Relaterede historier:

Det mangefacetterede eBPF Linux-program får sit eget grundlag. Porting af Linuxs eBPF til Windows 10 og Windows Server

Netflix: BPF er en ny type software, vi bruger til at køre Linux-apps sikkert i kernen

Linux | Sky | Big Data Analytics | Innovation | Teknik og arbejde | Samarbejde