O OpenStack é uma plataforma poderosa e flexível para a construção de nuvens privadas e públicas, mas também pode ser complexo de gerenciar, especialmente quando se trata de redes e observabilidade. Neste post, exploraremos como o eBPF está sendo usado para potencializar o OpenStack, proporcionando melhorias significativas no desempenho, redes e rastreamento.

O Desafio: Redes e Observabilidade no OpenStack

As redes tradicionais em ambientes virtualizados geralmente dependem de redes overlay, que podem introduzir sobrecarga de desempenho devido ao encapsulamento. Da mesma forma, obter visibilidade profunda do comportamento dos muitos microsserviços do OpenStack pode ser um desafio com as ferramentas de monitoramento tradicionais.

É aqui que o eBPF entra. Ao executar programas em sandbox diretamente no kernel do Linux, o eBPF pode fornecer um nível de desempenho e visibilidade que é difícil de alcançar com outros métodos.

Redes Aceleradas com eBPF e XDP

Uma das aplicações mais empolgantes do eBPF no OpenStack está na área de redes. O eBPF, combinado com o XDP (eXpress Data Path), pode ser usado para criar um plano de dados de alto desempenho que pode acelerar significativamente o tráfego de rede.

Por exemplo, uma prova de conceito de Luis Tomás demonstra como usar eBPF/XDP para acelerar o roteamento BGP em um ambiente OpenStack. Ao substituir as tradicionais ip rules e ip routes por um programa eBPF, o tráfego pode ser redirecionado para o overlay OVN no nível do kernel, ou até mesmo descarregado para a placa de rede para o máximo desempenho.

Esta abordagem pode levar a:

  • Latência reduzida: Ao contornar partes da pilha de rede do kernel.
  • Maior taxa de transferência: Ao processar pacotes de forma mais eficiente.
  • Menor utilização da CPU: Ao descarregar o trabalho da CPU principal.

Projetos como Cilium e Calico, que podem ser usados como plugins de rede para OpenStack, também aproveitam o eBPF para fornecer um plano de dados de alto desempenho. Ao rodar em bare metal, essas soluções podem eliminar o problema de “encapsulamento duplo” encontrado em muitos ambientes virtualizados, levando a ganhos de desempenho ainda maiores.

Análise e Rastreamento no Kernel

O eBPF não é apenas para redes. É também uma ferramenta poderosa para análise e rastreamento no kernel, que pode ser usada para melhorar a segurança e a observabilidade das nuvens OpenStack.

Uma apresentação da Cúpula do OpenStack em Vancouver 2023 mostrou como o eBPF pode ser usado para construir perfis de segurança dos serviços do OpenStack como Nova, Neutron e Keystone. Ao monitorar chamadas de API e acesso ao sistema de arquivos no nível do kernel, é possível detectar anomalias e ameaças de segurança em potencial, como ataques de força bruta ou injeção de SQL, com alta precisão.

Este nível profundo de visibilidade também pode ser usado para:

  • Solução de problemas de desempenho: Identificando gargalos e regressões de desempenho nos serviços OpenStack.
  • Contabilidade de recursos: Obtendo informações detalhadas sobre o uso de recursos por diferentes inquilinos e serviços.
  • Conformidade e auditoria: Criando uma trilha de auditoria detalhada de toda a atividade na nuvem.

Começando com eBPF no OpenStack

Se você estiver interessado em explorar os benefícios do eBPF em seu próprio ambiente OpenStack, aqui estão alguns recursos para começar:

  • Calico para OpenStack: A documentação do Calico fornece instruções detalhadas sobre como implantar o Calico com o OpenStack, incluindo os requisitos para usar o plano de dados eBPF.
  • Cilium: Embora não seja um projeto exclusivo do OpenStack, os poderosos recursos de rede e segurança baseados em eBPF do Cilium podem ser integrados ao OpenStack.
  • eBPF.io: O site oficial do eBPF é o melhor lugar para aprender mais sobre o eBPF e encontrar uma riqueza de recursos, incluindo tutoriais, documentação e uma lista de projetos relacionados.

À medida que as comunidades OpenStack e eBPF continuam a colaborar, podemos esperar ver usos ainda mais emocionantes e inovadores desta poderosa tecnologia no futuro.