Netflix sempre più interessata all’utilizzo di BPF

BPF è l’acronimo di Berkley Packet Filter, ed è un sistema ben noto tra i network engineer, molto utilizzato per fare analisi del traffico. È anche usato per il packet filtering.

Dopo Facebook, che lo utilizza già come parte dei suoi load balancer, anche Netflix si dimostra particolarmente interessata a questa tecnologia.

Secondo Brendan Gregg, senior performance architect in Netflix:

BPF promises to make “a fundamental change to a 50-year-old kernel model by introducing a new interface for applications to make kernel requests, alongside syscalls”.

BPF promette di introddure un cambiamento significativo ad un modello di Kernel vecchio di 50 anni, introducendo una nuova interfaccia per le applicazioni per effettuare richieste al kernel, oltre alle syscall.

Syscall? Applications? Sì, perché nel 2019, BPF non ha più solo a che fare con il network, ma è ormai un “generic kernel execution engine“, per la precisione eBPF (extended BPF), una macchina virtuale che può essere utilizzata per scopi non inerenti al networking.

In Netflix, BPF è utilizzato per capire perché un software stia limitando le performance, tramite l’utilizzo delle BFP Helper Calls, equivalenti delle API call di sistema al kernel nelle applicazioni user-mode.

Secondo Gregg, la differenza fondamentale è tra il trovarsi a scrivere un’applicazione BPF, che può accedere alle risorse, dare migliori performance e garantire la sicurezza e trovarsi a scrivere un modulo per il kernel che ha accesso diretto all’hardware, mettendo a rischio la sicurezza.

Piccola nota: al momento, tutte le applicazioni BPF sono scritte in C ed Assembly, linguaggi non propriamente “di moda” tra i giovani sviluppatori.

Affascinata sin da piccola dai computer (anche se al massimo avevo un cluster di Mio Caro Diario), sono un'opensourcer per caso, da quando sono incappata in Mandrake. Legacy dentro. Se state leggendo un articolo amarcord, probabilmente l'ho scritto io.

Tags: ,