BumbleBee, um excelente projeto para simplificar a criação e distribuição de programas eBPF

solo.io, a empresa de computação em nuvem, microsserviços, sandboxed e serverless, lançou o projeto de código aberto "BumbleBee". O novo projeto simplifica a experiência do desenvolvedor para construir, empacotar e distribuir ferramentas eBPF, segundo Sol.

BumbleBee gera automaticamente um código de espaço do usuário clichê para desenvolver ferramentas eBPF, explicou a empresa. Ele também fornece uma experiência semelhante ao Docker para empacotar um programa eBPF. Isso permite que você se conecte a outros fluxos de trabalho de imagem OCI para publicação e distribuição.

Sobre o BumbleBee

BumbleBee torna possível empacotar um programa eBPF como uma imagem de contêiner da Open Container Initiative (OCI) que pode ser executado em qualquer sistema sem recompilar ou usar componentes adicionais no espaço do usuário.

A interação com o código eBPF no kernel, incluindo o processamento de dados provenientes do processador eBPF, é feita pelo BumbleBee, que exporta automaticamente esses dados na forma de métricas, histogramas ou logs, que podem ser acessados, por exemplo, usando o utilitário curl. A abordagem proposta permite que o desenvolvedor se concentre em escrever código eBPF. e não se distraia organizando a interação com esse código do espaço do usuário, montagem e carregamento no kernel.

O CEO da Solo.io, Idit Levine diz que:

A empresa desenvolveu o BumbleBee para gerar automaticamente o código padrão do espaço do usuário necessário para acessar as tecnologias eBPF que são executadas no nível do kernel. O BumbleBee inclui uma interface de linha de comando (CLI) que gera automaticamente código de espaço do usuário para programas eBPF expondo automaticamente mapas como logs, métricas e histogramas.

Para gerenciar programas eBPF, é fornecido um utilitário "bee" no estilo Docker, com o qual você pode baixar imediatamente o driver eBPF de interesse de um repositório externo e executá-lo no sistema local.

O kit de ferramentas permite que você gere uma estrutura de código C para os drivers eBPF de um tópico selecionado (atualmente, apenas os drivers de arquivo e de rede que interceptam chamadas para a pilha de rede e sistemas de arquivos são suportados). Com base no framework gerado, o desenvolvedor pode implementar rapidamente a funcionalidade que lhe interessa.

Ao contrário do BCC (BPF Compiler Collection), BumbleBee não reconstrói totalmente o código do driver para cada versão do kernel Linux (o BCC usa compilação dinâmica com Clang toda vez que o programa eBPF é executado).

Para resolver problemas de portabilidade, Estão se desenvolvendo os kits de ferramentas CO-RE e libbpf, que permitem compilar o código uma vez e use um carregador universal especial que adapta o programa carregado ao kernel atual e aos tipos BTF (BPF Type Format).

BumbleBee é um plugin em cima do libbpf e fornece tipos adicionais para interpretação automática e exibição de dados colocados em estruturas de mapa padrão eBPF RingBuffer e HashMap.

Para construir o programa eBPF final e salvá-lo como uma imagem OCI, basta executar o comando:

bee build file_with_code name:version

E execute o comando

bee run name:version

Por padrão, os eventos recebidos do controlador serão exibidos na janela do terminal, mas, se necessário, você pode obter os dados chamando os utilitários curl ou wget na porta de rede vinculada ao controlador.

Os drivers podem ser distribuídos por meio de repositórios compatíveis com OCI, por exemplo, para executar um driver externo do repositório ghcr.io (GitHub Container Registry), você pode executar o comando

bee run ghcr.io/solo-io/bumblebee/tcpconnect:$(bee version)

Para colocar o controlador no repositório, o comando é oferecido

bee push

E para vincular a versão

bee tag

O maior benefício do eBPF é simplesmente a eficiência. O custo total de processamento para plataformas de segurança, rede e armazenamento deve diminuir à medida que mais provedores aproveitam seus recursos. 

Atualmente a, o eBPF é amplamente utilizado por empresas de escala web, como provedores de serviços em nuvem. O Facebook o está usando como o principal balanceador de carga definido por software em seus data centers, enquanto o Google está usando o software de rede Cilium de código aberto em suas ofertas gerenciadas de Kubernetes. 

No futuro, porém, Levine diz que agora é apenas uma questão de tempo até que o eBPF se torne muito mais amplamente adotado à medida que mais sistemas operacionais habilitam o recurso.

Finalmente se você quiser saber mais sobre isso, você pode verificar os detalhes no link a seguir.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.