BumbleBee — uno strumento per semplificare la creazione e la distribuzione di programmi eBPF

L'azienda Solo.io, che sviluppa prodotti per supportare il funzionamento di sistemi cloud, microservizi, container isolati e calcolo serverless, ha pubblicato un toolbox open source chiamato BumbleBee, progettato per semplificare la preparazione, distribuzione e avvio di programmi eBPF eseguiti in una macchina virtuale speciale all'interno del kernel di Linux, che consentono di elaborare operazioni di rete, controllare l'accesso e monitorare il funzionamento dei sistemi. Il codice è scritto in linguaggio Go e distribuito sotto licenza Apache 2.0.

BumbleBee consente di impacchettare un programma eBPF come immagine di container nel formato OCI (Open Container Initiative), che può essere eseguita su qualsiasi sistema senza ricompilazione e senza l'uso di componenti aggiuntivi nello spazio utente. BumbleBee gestisce l'interazione con il codice eBPF nel kernel, inclusa l'elaborazione dei dati provenienti dagli handler eBPF, esportando automaticamente questi dati come metriche, istogrammi o log, accessibili, ad esempio, utilizzando l'utilità curl. L'approccio proposto consente agli sviluppatori di concentrarsi sulla scrittura del codice eBPF senza distrarsi con l'organizzazione dell'interazione con tale codice dallo spazio utente, né con la compilazione e il caricamento nel kernel.

Per la gestione dei programmi eBPF è disponibile un'utilità "bee" che funziona in stile Docker, tramite la quale è possibile caricare immediatamente l'handler eBPF di interesse da un repository esterno e avviarlo sul sistema locale. Il toolkit consente di generare un framework di codice in linguaggio C per gli handler eBPF di un tema scelto (attualmente sono supportati solo handler per operazioni di rete e file, che intercettano le chiamate dello stack di rete e dei file system). Sulla base del framework generato, il developer può rapidamente implementare la funzionalità di suo interesse.

A differenza del BCC (BPF Compiler Collection), in BumbleBee non viene eseguita una ricompilazione completa del codice del gestore per ogni versione del kernel Linux (BCC utilizza la compilazione just-in-time con Clang ad ogni esecuzione del programma eBPF). Per affrontare i problemi di portabilità, vengono sviluppati strumenti CO-RE e libbpf, che consentono di compilare il codice solo una volta e di utilizzare un caricatore universale specifico, che adatta il programma caricato al kernel corrente e ai formati BTF (BPF Type Format). BumbleBee è un'estensione di libbpf e fornisce tipi aggiuntivi per l'interpretazione automatica e la visualizzazione dei dati archiviati nelle strutture map standard eBPF RingBuffer e HashMap.

Per compilare il programma eBPF finale e salvarlo come immagine OCI, è sufficiente eseguire il comando «bee build nome_file codice nome:versione», mentre per avviarlo utilizzare «bee run nome:versione». Di default, gli eventi generati dal gestore verranno visualizzati nella finestra del terminale, ma se necessario è possibile accedere ai dati utilizzando gli strumenti curl o wget collegandosi alla porta di rete assegnata al gestore. I gestori possono essere distribuiti tramite repository compatibili con OCI; ad esempio, per avviare un gestore esterno dal repository ghcr.io (GitHub Container Registry), si può eseguire il comando «bee run ghcr.io/solo-io/bumblebee/tcpconnect:$(bee version)». Per caricare un gestore nel repository, è disponibile il comando «bee push», mentre per contrassegnare una versione c'è «bee tag».

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster