Desde hace varios años, el kernel de Linux ha incluido la extended Berkeley Packet Filter (eBPF), una máquina virtual que proporciona la capacidad de incorporar filtros en sockets específicos. Pero eBPF va mucho más allá del filtro de paquetes y permite disparar la ejecución de scripts personalizados en distintos puntos dentro del kernel con muy poca sobrecarga. Al permitirte ejecutar programas en un sandbox dentro del kernel del sistema operativo, los desarrolladores de aplicaciones pueden ejecutar programas eBPF para incorporar nuevas capacidades al sistema operativo en tiempo de ejecución. Algunos de nuestros proyectos requieren hacer diagnóstico y análisis de problemas a nivel de llamadas de sistema. Un nivel al que nuestros equipos han encontrado que herramientas como bcc y bpftrace facilitan su trabajo. La observabilidad e infraestructura de redes también se benefician de eBPF — por ejemplo, el proyecto Cilium implementa balanceo de carga de tráfico y observabilidad sin sobrecarga por sidecar en Kubernetes, y Hubble proporciona un extra de seguridad y observabilidad de tráfico adicional. El proyecto Falco usa eBPF para monitorización de seguridad y el proyecto Katran usa eBPF para crear un balanceo de carga L4 más eficiente. La comunidad de eBPF está creciendo rápidamente y vemos más y más sinergia en el campo de la observabilidad.
Desde hace varios años, el kernel de Linux incluye el filtro de paquetes Berkeley extendido (eBPF), una máquina virtual que ofrece la posibilidad de adjuntar filtros a determinados sockets. Pero eBPF va mucho más allá del filtrado de paquetes y permite activar scripts personalizados en varios puntos del kernel con muy poca sobrecarga. Aunque esta tecnología no es nueva, está cobrando importancia con el creciente uso de microservicios desplegados como contenedores orquestados. Los Kubernetes y la tecnología de malla de servicios (Services Mesh) como Istio se utilizan habitualmente, y emplean sidecars para implementar la funcionalidad de control. Con las nuevas herramientas, - Bumblebee en particular, hace que la construcción, ejecución y distribución de programas eBPF sea mucho más fácil - eBPF puede ser visto como una alternativa al sidecar tradicional. Un mantenedor de Cilium, una herramienta en este espacio, ha llegado a proclamar la desaparición del sidecar. Un enfoque basado en eBPF reduce parte de la sobrecarga de rendimiento y operación que conllevan los sidecars, pero no da soporte a funciones comunes como la terminación SSL.
Durante varios años, el núcleo de Linux ha incluido la máquina virtual extendida para el Filtro de Paquetes de Berkeley ( eBPF ) y ha proporcionado la posibilidad de adjuntar filtros eBPF a sockets concretos. Pero la extensión BPF va más allá del filtrado de paquetes y permite ejecutar scripts personalizados en varios puntos del kernel con muy poca sobrecarga. Aunque esta tecnología no es nueva, es ahora cuando se le puede sacar todo el partido con el incremento en el uso de microservicios desplegados como contenedores orquestados. Las comunicaciones servicio-servicio pueden ser complejas en estos sistemas, haciendo difícil relacionar problemas de latencia o rendimiento con una llamada a una API. Ahora estamos encontrando publicaciones de herramientas con scripts eBPF ya escritos para recolectar y visualizar tráfico de paquetes o informar sobre el uso de la CPU. Con el ascenso de Kubernetes, nos encontramos con una nueva generacion de aplicaciones de seguridad e instrumentación basadas en scripts eBPF para dominar la complejidad de grandes despliegues de microservicios.