Solo BumbleBee gör Linux eBPF-programmering enklare

0
164

Steven Vaughan-Nichols Skrivet av Steven Vaughan-Nichols, senior bidragsredaktör Steven Vaughan-NicholsSteven Vaughan-Nichols Senior bidragande redaktör

Steven J. Vaughan-Nichols, alias sjvn, har skrivit om teknologi och teknikens verksamhet sedan CP/M-80 var det banbrytande PC-operativsystemet; 300 bps var en snabb Internetanslutning; WordStar var den senaste ordbehandlaren; och vi gillade det.

Fullständig biografi Publicerad i Linux och öppen källkod den 6 januari 2022 | Ämne: Företagsprogramvara

1992 introducerades Berkeley Packet Filter (BPF) i Unix-kretsar som ett nytt, förbättrat nätverkspaketfilter. Trevligt, men inte så stor sak. Sedan, 2014, ändrades den och togs in i Linux-kärnan som utökad BPF (eBPF). Återigen, det var okej. Bara okej. Kort därefter började utvecklare dock använda den för att köra användarutrymmeskod inuti en virtuell maskin (VM) på Linux-kärnan. Och då var det en stor affär. Som Netflix datorprestandaexpert Brendan Gregg sa med eBPF, “superkrafter har äntligen kommit till Linux.”

Vilka superkrafter? eBPF ger dig möjlighet att köra program i Linux-kärnan utan att ändra kärnans källkod eller lägga till ytterligare moduler. I själva verket fungerar den som en lättvikts (VM) inuti Linux-kärnan. Där körs program som kan köras i eBPF mycket snabbare, samtidigt som de drar fördel av kärnfunktioner som inte är tillgängliga för andra Linux-program på högre nivå.

Naturligtvis är det inte lätt att köra applikationer som ligger nära kärnan även med eBPF. Det är där Solo.io, ett applikationsnätverksföretag, kommer in med sitt nya open source-projekt, BumbleBee. BumbleBee förenklar att bygga, paketera och distribuera eBPF-verktyg genom att automatiskt generera kod för användarutrymme för att utveckla eBPF-verktyg.

Om det låter lite som Docker så har du rätt. Det är designat. BumbleBees kod gör det också möjligt för dig att koppla in dess program till andra Open Container Initiative (OCI) bildarbetsflöden för publicering och distribution. Betyder detta att du kan integrera eBPF-program i ett arbetsflöde för kontinuerlig integration/kontinuerlig utveckling (CI/CD)? Ja det gör det.

Typiskt används eBPF som ett säkert sätt att förbättra kärnan med observerbarhet, nätverks- och säkerhetsteknik. Dessa program körs som svar på händelser som nätverkspaket som anländer. Vanligtvis är eBPF-program skrivna på ett språk på högre nivå, som C, och sedan Just in Time (JIT) kompilerade till x86-sammansättning för maximal prestanda och säkerhet.

eBPF-arkitekturen förväntar sig att eBPF-program laddas som bytekod, och kärnan har datastrukturer och format som är specifika för varje kärnversion. Det är inte lätt, med stora bokstäver. Dessutom är det tråkigt, tidskrävande och felbenäget att paketera och distribuera dessa binära program. BumbleBees mål är att förenkla utveckling, paketering och delning av eBPF-verktyg och påskynda införandet av eBPF.

“På Solo.io ser vi eBPF som en viktig möjliggörande teknologi som kommer att förbättra applikationsnätverk. Vi har arbetat under det senaste året för att dra nytta av eBPF-teknologin med Gloo Mesh, vårt Istio-baserade servicenäterbjudande för företaget,” sa Idit Levine, Solo.io:s grundare och VD. “Medan vi utvecklade eBPF-tillägg har vi ställts inför många tekniska utmaningar – och detta ledde till att vi utvecklade BumbleBee för att hjälpa till att effektivisera våra eBPF-ansträngningar. Eftersom vi verkligen tror på fördelarna med eBPF, delar vi gärna BumbleBee med communityn för att påskynda eBPF-anpassningen .”

BumbleBee inkluderar ett kommandoradsgränssnitt (CLI) som automatiskt genererar användarutrymmeskoden för eBPF-program genom att exponera kartor automatiskt som loggar, mätvärden och histogram. Utvecklaren behöver bara oroa sig för att skriva eBPF-koden.

Solo.io byggde BumbleBee med libbpf, en ny verktygsuppsättning för att bygga BPG-program. Med den kan du till exempel skriva eBPF-sonder med noll användarutrymmeskod. BumbleBee upptäcker och visar automatiskt kartor i ditt program som låter användarutrymmet och kärnutrymmets program dela data. Detta uppnås genom att använda speciella BPF-konventioner och nyckelord.

Om du arbetar med eBPF kräver BumbleBee din uppmärksamhet. Redan i detta tidiga skede kan det hjälpa dig att skriva eBPF-program snabbare och säkrare.

Relaterade berättelser:

Det mångfacetterade eBPF Linux-programmet får sin egen grundPorting Linuxs eBPF till Windows 10 och Windows Server

Netflix: BPF är en ny typ av programvara som vi använder för att köra Linux-appar säkert i kärnan

Linux | Moln | Big Data Analytics | Innovation | Teknik och arbete | Samarbete