![Os três paradoxos da engenharia de plataforma nativa da nuvem](https://optimuscloud.com.br/wp-content/uploads/2024/01/1706059599_Os-tres-paradoxos-da-engenharia-de-plataforma-nativa-da-nuvem-150x150.jpg)
Os três paradoxos da engenharia de plataforma nativa da nuvem
23 de janeiro de 2024![Como truques de hacking ético podem proteger suas APIs e aplicativos](https://optimuscloud.com.br/wp-content/uploads/2024/01/1706061309_Como-truques-de-hacking-etico-podem-proteger-suas-APIs-e-150x150.png)
Como truques de hacking ético podem proteger suas APIs e aplicativos
23 de janeiro de 2024Uma ferramenta de código aberto, o BumbleBee amplia o alcance do eBPF e aprimora sua adaptabilidade para operar em diversos ambientes, graças ao uso da especificação de imagem Open Container Initiative (OCI).
O BumbleBee de código aberto amplia o alcance do Extended Berkeley Packet Filter (eBPF).
Em essência, o BumbleBee simplifica o processo de construção e execução de programas eBPF distribuídos, encapsulando-os como imagens OCI e publicando-os em um registro compatível com OCI.
Ele também permite expor eventos como métricas, facilitando a conexão e a visualização de suas métricas junto com outras ferramentas de observabilidade.
Lin Sun, diretor sênior de código aberto e membro do comitê de supervisão técnica do Istio, liderou um workshop no Open Source Summit em Bilbao em setembro passado para mostrar como a tecnologia poderia ser usada.
A Sun demonstrou que o BumbleBee usa BPF (Berkeley Packet Filter), um código de espaço do kernel e transforma o código existente em métricas.
Com o BumbleBee, você tem a capacidade de facilitar a implantação de tempos de execução com eBPF, inclusive em vários kernels, executando programas eBPF distribuídos usando imagens OCI. Especificamente, durante o workshop prático, os participantes puderam usar o BumbleBee para portar o código do espaço do kernel eBPF em métricas e realizar outras tarefas.
Como Docker, mas para eBPF
O BumbleBee foi projetado para oferecer a experiência Docker para desenvolvedores eBPF, disse Sun.
Com o BumbleBee, os usuários podem criar programas eBPF como imagens OCI e publicar seus programas eBPF como imagens OCI em qualquer registro compatível com OCI. Você também pode executar seus programas eBPF como imagens OCI.
“Essa é exatamente a experiência Docker favorita com a qual você está familiarizado: você constrói suas imagens, envia-as para o registro e então pode executar suas imagens Docker”, disse Sun. Então, é por isso que acreditamos que o BumbleBee realmente fornece à comunidade eBPF essa experiência semelhante ao Docker, permitindo que você aprenda, construa e publique para que seus amigos, familiares e colegas de trabalho consumam seus programas eBPF.
O BumbleBee usa o código de espaço do kernel libBPF e transforma o código de espaço do kernel eBPF existente em métricas, conforme mencionado acima.
Escreva uma vez e execute em qualquer lugar
O BumbleBee faz uso da estrutura compilar uma vez – executar em qualquer lugar (CO-RE), então você deve executar o BumbleBee em kernels Linux mais recentes que suportam CO-RE. Você também pode migrar alguns dos programas eBPF existentes originalmente escritos para funcionar com ferramentas bcc-to-libBPF associadas a kernels mais antigos para funcionar com BumbleBee (Linux 5.8 e versões mais recentes do Linux são os requisitos para usar buffer de anel).
Aqui está o que foi abordado no workshop: Primeiramente, um aplicativo foi construído e implantado com o BumbleBee. Isso envolveu a criação do aplicativo usando o BumbleBee e o envio para o registro OCI.
Além disso, os participantes puderam testemunhar, por meio da interface de usuário (UI) do Prometheus, as métricas do kernel que o BumbleBee coletou. Os participantes do workshop também viram como agrupar vários componentes de código do espaço do kernel e empacotá-los como uma única imagem OCI.
O projeto do primeiro workshop – o único abordado aqui – era detectar programas “oomkills” com falta de memória que encerravam programas que estendiam demais suas cotas de memória. Neste programa, com bcc, você normalmente tem o código do espaço do usuário e o código do espaço do kernel para que haja dois arquivos por ferramenta, como:
oomkill.c oomkill.bpf.c
O programa foi originalmente escrito para usar HashMap, que não funciona tão bem quanto o ring buffer. Sun explicou a necessidade de migrar o HashMap para o ring buffer. Durante o workshop, o programa também foi migrado do buffer perf para o buffer ring. Isso ocorre porque o buffer de anel permite um melhor uso dos recursos no nível da CPU, disse Sun.
O OOM foi usado pela primeira vez durante os primeiros dias do Linux para detectar quando a memória do aplicativo estava acabando. Para Kubernetes, o OOM é executado para garantir que o código em execução nos clusters não fique sem memória e, se estiver, as instâncias mais antigas substituem as atuais em execução no cluster. No entanto, testes estão sendo realizados para determinar a viabilidade da troca.
Um pod geralmente é “oomkilled” se não tiver a memória necessária para executar o código ou se for supercomprometido. Novamente, o eBPF foi usado neste workshop para detectar oomkills.
Com o comando “Bee Build”, primeiro compilei com sucesso “oomkill.c” e depois gravei-o em “oomkill.o” e salvei a imagem eBPF OCI no host local:
Eventos Oomkill revelados com BumbleBee:
Prometheus oferece suas informações de observabilidade para oomkills detectados com eBPF:
Conclusão
Baixar o BumbleBee do GitHub e instalá-lo localmente pode representar mais desafios do que simplesmente executá-lo pré-instalado a partir de uma máquina virtual na nuvem. No entanto, presumo que seja muito factível.
Depois que tudo estiver instalado, fazê-lo funcionar foi relativamente fácil. Consegui executar com sucesso o BumbleBee, que é usado para pegar o código eBPF e enviá-lo para um registro OCI, fornecendo dados de observabilidade por meio de monitoramento.
Isso incluiu dados “oomkill” e também foi acompanhado pelo Prometheus. Tudo isso foi realizado sem problemas.
Além disso, o eBPF se estende a diversas áreas e abrange uma ampla gama de casos de uso crescentes, incluindo observabilidade e segurança. Como os fabricantes de ferramentas estão se baseando no eBPF, usando dados de observabilidade para detectar vulnerabilidades de segurança, oferecendo maneiras de mitigar e resolver essas vulnerabilidades e até mesmo abordar ataques em alguns casos, a adoção do eBPF está se tornando cada vez mais válida.
A postagem Como o BumbleBee facilita a observabilidade do eBPF com OCI apareceu pela primeira vez no The New Stack.