Si sigues las últimas tendencias del cloud computing, seguro te has cruzado con el término eBPF más de una vez. Es difícil no notarlo. Veamos por qué.
¿Buscas una solución moderna de seguridad, observabilidad y monitoreo sin sacrificar el rendimiento? ¡eBPF puede ser la respuesta! En este artículo veremos por qué esta funcionalidad del kernel de Linux se ha convertido en una de las palabras de moda del stack nativo de la nube. También exploraremos una popular solución cloud lista para usar que se apoya en eBPF y cómo puede potenciar la seguridad, la observabilidad y el monitoreo de tu sistema en la nube. Así que démosle ruido a ese ruido.

Si ya conoces eBPF y te interesa leer sobre Cilium/Dataplane V2, salta directamente a la Parte 2 .
eBPF pertenece al espacio del kernel de Linux, un terreno por el que la mayoría no transitamos. Entonces, ¿por qué a alguien que vive "en la nube" debería importarle una funcionalidad de tan bajo nivel del kernel de Linux? Pues lo cierto es que eBPF es una especie de revolución. Tiene un impacto enorme tanto en áreas de bajo como de alto nivel.
Por ejemplo, supongamos que quieres escribir lógica personalizada que necesite inspeccionar de cerca todos los paquetes de red que viajan entre tus contenedores y dejar pasar únicamente los paquetes HTTP que cumplan ciertos criterios.
Es sabido que, si quieres combinar, inyectar o limitar tráfico de red, hay que estar en el espacio del kernel. El kernel de Linux es el lugar donde se manipula el funcionamiento interno del SO Linux y su enorme capa de red, diseñada para ofrecer rendimiento, seguridad y confiabilidad.
Antes de que llegara eBPF, había que escribir código del kernel de Linux (en lenguaje C). Esto se hacía modificando el código fuente del kernel o escribiendo un módulo de kernel cargable. Además de la complejidad inherente, eso introducía muchos riesgos, ya que un módulo de kernel es como una librería dinámica (similar a un archivo .DLL o .so) adjunta al kernel.
Un bug que provoque un crash en tu código podría desencadenar un kernel panic y tumbar todo el SO. Como usuario de la nube —y, en particular, si usas Kubernetes para desplegar microservicios— hay muchas otras razones para evitar escribir código de kernel personalizado: seguridad, velocidad de desarrollo, complejidad o incluso inviabilidad del entorno. Básicamente, es matar moscas a cañonazos.
Y entonces llegó eBPF 🐝
eBPF apareció y permitió inyectar lógica en el kernel sin tocar su código, es decir, desde el espacio de usuario. eBPF no solo simplifica este proceso, sino que también lo hace mucho más seguro. El proceso de verificación de eBPF se asegura de que el código eBPF que cargas en tu kernel sea seguro de ejecutar mediante controles de seguridad. Por ejemplo, valida y garantiza que:
- Tu código se ejecute de forma finita (sin bucles infinitos)
- Tu código no falle ni provoque bugs fatales que puedan dañar el sistema
- El proceso que carga tu código eBPF tenga los privilegios necesarios
- Exista un límite de tamaño para tu código
- No se permita código inalcanzable
Además de la verificación, existen ciertas restricciones que aplican a tu código; por ejemplo, eBPF te obliga a acceder a determinados recursos del kernel únicamente mediante llamadas a funciones helper especiales de eBPF. En resumen, eBPF te ofrece una red de seguridad, facilidad de desarrollo, despliegue fluido y mejor rendimiento. Muchas herramientas y motores ya aprovechan la tecnología eBPF para llevar nuevas funcionalidades a los workloads nativos de la nube, de forma transparente y eficiente.
Si quieres probar eBPF, mira este video .
Proyectos populares impulsados por eBPF 🔋
- Cilium — Networking, seguridad y observabilidad basados en eBPF para Kubernetes
- Falco — Seguridad en runtime nativa de la nube
- Tracee — Seguridad en runtime y análisis forense con eBPF
- Pixie — Plataforma de troubleshooting de aplicaciones para Kubernetes (¡échale un vistazo!)
Espero que esta información te resulte útil. En esta lista encontrarás más proyectos impulsados por eBPF. En la Parte 2 exploraremos Cilium como una solución popular de eBPF para K8s y descubriremos qué tiene que ver Dataplane V2 en todo esto.
¡Gracias por leer! Para no perderte nada, síguenos en el DoiT Engineering Blog , el canal de LinkedIn de DoiT y el canal de Twitter de DoiT . Para conocer nuestras oportunidades laborales, visita https://careers.doit-intl.com .