Solo BumbleBee gjør Linux eBPF-programmering enklere

0
178

Steven Vaughan-Nichols Skrevet av Steven Vaughan-Nichols, Senior Contributing Editor Steven Vaughan-NicholsSteven Vaughan-Nichols Seniorbidragsredaktør

Steven J. Vaughan-Nichols, aka sjvn, har skrevet om teknologi og teknologivirksomhet siden CP/M-80 var banebrytende PC-operativsystem; 300bps var en rask Internett-tilkobling; WordStar var toppmoderne tekstbehandler; og vi likte det.

Full bio Publisert i Linux og åpen kildekode 6. januar 2022 | Emne: Enterprise Software

I 1992 ble Berkeley Packet Filter (BPF) introdusert i Unix-kretser som et nytt, forbedret nettverkspakkefilter. Fint, men ikke så stor sak. Så, i 2014, ble den endret og brakt inn i Linux-kjernen som utvidet BPF (eBPF). Igjen, det var greit. Bare greit. Like etterpå begynte utviklere å bruke den til å kjøre brukerromskode inne i en virtuell maskin (VM) på Linux-kjernen. Og så var det en stor avtale. Som Netflix-ekspert på datamaskinytelse Brendan Gregg sa, med eBPF, “superkrefter har endelig kommet til Linux.”

Hvilke superkrefter? eBPF gir deg muligheten til å kjøre programmer i Linux-kjernen uten å endre kjernekildekoden eller legge til tilleggsmoduler. Faktisk fungerer den som en lettvekt (VM) inne i Linux-kjernen. Der kjører programmer som kan kjøre i eBPF mye raskere, samtidig som de drar nytte av kjernefunksjoner som ikke er tilgjengelige for andre Linux-programmer på høyere nivå.

Selvfølgelig er det ikke lett å kjøre applikasjoner som er nær kjernen selv med eBPF. Det er her Solo.io, et applikasjonsnettverksselskap, kommer inn med sitt nye åpen kildekode-prosjekt, BumbleBee. BumbleBee forenkler bygging, pakking og distribusjon av eBPF-verktøy ved automatisk å generere standard brukerromskode for utvikling av eBPF-verktøy.

Hvis det høres litt ut som Docker, har du rett. Det er ved design. BumbleBees kode lar deg også koble programmene til andre Open Container Initiative (OCI) bildearbeidsflyter for publisering og distribusjon. Betyr dette at du kan inkorporere eBPF-programmer i en kontinuerlig integrasjon/kontinuerlig utvikling (CI/CD) arbeidsflyt? Ja det gjør det.

Vanligvis brukes eBPF som en sikker måte å forbedre kjernen med observerbarhet, nettverks- og sikkerhetsteknologier. Disse programmene kjører som svar på hendelser som ankommer nettverkspakker. Vanligvis er eBPF-programmer skrevet på et språk på høyere nivå, for eksempel C, og deretter Just in Time (JIT) kompilert i x86-montering for maksimal ytelse og sikkerhet.

eBPF-arkitekturen forventer at eBPF-programmer lastes inn som bytekode, og kjernen har datastrukturer og formater som er spesifikke for hver kjerneversjon. Det er ikke lett, med store bokstaver. I tillegg er pakking og distribusjon av disse binære programmene kjedelig, tidkrevende og utsatt for feil. BumbleBees mål er å forenkle utvikling, pakking og deling av eBPF-verktøy og fremskynde bruken av eBPF.

“På Solo.io ser vi eBPF som en kritisk muliggjørende teknologi som vil forbedre applikasjonsnettverk. Vi har jobbet i løpet av det siste året for å utnytte eBPF-teknologi med Gloo Mesh, vårt Istio-baserte tjenestenetttilbud for bedriften,” sa Idit Levine, Solo.ios grunnlegger og administrerende direktør. “Mens vi utviklet eBPF-utvidelser, har vi møtt mange tekniske utfordringer – og dette førte til at vi utviklet BumbleBee for å hjelpe til med å strømlinjeforme eBPF-innsatsen vår. Siden vi virkelig tror på fordelene med eBPF, er vi glade for å dele BumbleBee med fellesskapet for å akselerere eBPF-adopsjon. .”

BumbleBee inkluderer et kommandolinjegrensesnitt (CLI) som automatisk genererer brukerplasskoden for eBPF-programmer ved å eksponere kart automatisk som logger, beregninger og histogrammer. Utvikleren trenger bare å bekymre seg for å skrive eBPF-koden.

Solo.io bygde BumbleBee ved hjelp av libbpf, et nytt verktøysett for å bygge BPG-programmer. Med den kan du for eksempel skrive eBPF-sonder med null brukerromskode. BumbleBee oppdager og viser automatisk kart i programmet ditt som lar brukerplassen og kjerneplassprogrammene dele data. Dette oppnås gjennom bruk av spesielle BPF-konvensjoner og nøkkelord.

Hvis du jobber med eBPF, krever BumbleBee oppmerksomheten din. Selv på dette tidlige stadiet kan det hjelpe deg å skrive eBPF-programmer raskere og sikrere.

Relaterte historier:

Det mangefasetterte eBPF Linux-programmet får sitt eget grunnlag Porting av Linuxs eBPF til Windows 10 og Windows Server

Netflix: BPF er en ny type programvare vi bruker for å kjøre Linux-apper sikkert i kjernen

Linux | Sky | Big Data Analytics | Innovasjon | Teknikk og arbeid | Samarbeid