solo.io, molnföretaget, mikrotjänster, sandlåde och serverlösa, avtäckte open source-projektet "BumbleBee". Det nya projektet förenklar utvecklarupplevelsen att bygga, paketera och distribuera eBPF-verktyg, enligt Solo.
Humla genererar automatiskt en användarutrymmeskod boilerplate för att utveckla eBPF-verktyg, förklarade företaget. Det ger också en Docker-liknande upplevelse att paketera ett eBPF-program. Detta gör att du kan ansluta till andra OCI-bildarbetsflöden för publicering och distribution.
Om BumbleBee
Humla gör det möjligt att paketera ett eBPF-program som en containerbild från Open Container Initiative (OCI) som kan köras på alla system utan att kompilera om eller använda ytterligare komponenter i användarutrymmet.
Interaktion med eBPF-koden i kärnan, inklusive bearbetning av data som kommer från eBPF-processorn, hanteras av BumbleBee, som automatiskt exporterar denna data i form av mått, histogram eller loggar, som kan nås t.ex. lockverktyget. Det föreslagna tillvägagångssättet tillåter utvecklaren att koncentrera sig på att skriva eBPF-kod. och inte bli distraherad av att organisera interaktion med den här koden från användarutrymme, montering och inläsning i kärnan.
VD för Solo.io, Idit Levine säger att:
Företaget utvecklade BumbleBee för att automatiskt generera koden för användarutrymmet som krävs för att komma åt eBPF-teknologier som körs på kärnnivå. BumbleBee inkluderar ett kommandoradsgränssnitt (CLI) som automatiskt genererar användarutrymmeskod för eBPF-program genom att automatiskt exponera kartor som loggar, mätvärden och histogram.
För att hantera eBPF-program, ett Docker-stil "bee"-verktyg tillhandahålls, med vilket du omedelbart kan ladda ner eBPF-drivrutinen av intresse från ett externt arkiv och kör det på det lokala systemet.
Verktygslådan låter dig skapa en C-kodram för eBPF-drivrutinerna för ett valt tema (för närvarande stöds endast fil- och nätverksdrivrutiner som avlyssnar anrop till nätverksstacken och filsystem). Baserat på det genererade ramverket kan utvecklaren snabbt implementera den funktionalitet som intresserar honom.
Till skillnad från BCC (BPF Compiler Collection), BumbleBee bygger inte om drivrutinskoden helt för varje kärnversion Linux (BCC använder on-the-fly kompilering med Clang varje gång eBPF-programmet körs).
För att lösa portabilitetsproblem, håller på att utvecklas verktygssatserna CO-RE och libbpf, som låter dig kompilera kod en gång och använd en speciell universell loader som anpassar det inlästa programmet till den aktuella kärnan och BTF (BPF Type Format) typer.
BumbleBee är en plugin ovanpå libbpf och tillhandahåller ytterligare typer för automatisk tolkning och visning av data placerad i standard RingBuffer och HashMap eBPF kartstrukturer.
För att bygga det slutliga eBPF-programmet och spara det som en OCI-bild, kör helt enkelt kommandot:
bee build file_with_code name:version
Och kör kommandot
bee run name:version
Som standard kommer händelser som tas emot från styrenheten att visas i terminalfönstret, men vid behov kan du hämta data genom att anropa verktygen för curl eller wget på nätverksporten som är bunden till styrenheten.
Drivrutiner kan distribueras genom OCI-kompatibla arkiv, till exempel för att köra en extern drivrutin från ghcr.io (GitHub Container Registry) arkivet kan du köra kommandot
bee run ghcr.io/solo-io/bumblebee/tcpconnect:$(bee version)
För att placera kontrollenheten i förvaret erbjuds kommandot
bee push
Och för att länka versionen
bee tag
Den största fördelen med eBPF är helt enkelt effektivitet. Den totala kostnaden för bearbetning av säkerhets-, nätverks- och lagringsplattformar bör minska i takt med att fler leverantörer drar fördel av deras möjligheter.
Nu, eBPF används ofta av webbskaliga företag som molntjänstleverantörer. Facebook använder det som den huvudsakliga mjukvarudefinierade lastbalanseraren i sina datacenter, medan Google använder Cilium-nätverksprogramvara med öppen källkod inom sina hanterade Kubernetes-erbjudanden.
Men framöver säger Levine att det nu bara är en tidsfråga innan eBPF blir mycket mer allmänt antagen eftersom fler operativsystem möjliggör kapaciteten.
Slutligen om du vill veta mer om detkan du kontrollera detaljerna I följande länk.