osman@dagli:~$

Frame 1 · catturato adesso · uptime 0s

Osman Bugra Dagli

DevOps engineer a cui piacciono i livelli sottostanti.

Sono un DevOps engineer a Milano. Tengo in piedi l’infrastruttura e mi piace scoprire come funziona sotto: Linux, il networking e il kernel.

tcpdump -i eth0 -nn 'host osman' 0 pacchetti

L1 Fisico · l’hardware vero e proprio

whoami

Sono un DevOps engineer e un CKA. In Turkish Aerospace (TUSAS) ho costruito e gestito infrastruttura containerizzata su Kubernetes, ho guidato la migrazione di application server come Tomcat dalle VM tradizionali e ho ottimizzato le pipeline GitLab CI/CD che portavano tutto in produzione. Prima ancora, in ASELSAN, ho fatto girare su Kubernetes, con KubeVirt, software legacy che non si poteva containerizzare.

Credo che i migliori ingegneri ops conoscano il livello sotto quello che gestiscono, quindi ci sono andato di proposito. Ho scritto un container runtime partendo da namespace e cgroup nudi, e un connection tracker in eBPF/XDP. Ho anche compilato un kernel RTOS embedded con ASPIS, uno strumento basato su LLVM che protegge il codice dai bit flip causati dalle radiazioni. Ora sto concludendo una tesi magistrale sul networking kernel-bypass al Politecnico di Milano.

Lontano dal terminale gioco a tennistavolo con l’AON Milano Sport nel campionato italiano.

ruolo
DevOps engineer
studio
Laurea magistrale, Politecnico di Milano
lang
Go · Python · Bash
passioni
XDP, AF_XDP, eBPF, QUIC
sede
Milano · disponibile a trasferirmi
stato
disponibile
cerco
DevOps · platform · SRE
anche
software di rete

L2 Collegamento dati · ciò che unisce tutto

lsmod

I moduli caricati in questo ingegnere. Cliccane uno per vedere dove l’ho usato, al lavoro o nei progetti.

L3 Rete · come sono arrivato qui

traceroute osman

traceroute to osman (present), 30 hops max, 60 byte packets

  1. 1 Laurea triennale in Ingegneria Informatica @ Università di Ankara 2018 – 2023
    • Laureato con una media di 3,81 / 4,0 (GPA)
    • Ho iniziato a lavorare nell’industria durante gli studi, prima come stagista in ASELSAN e poi in TUSAS
  2. 2 Stagista DevOps @ ASELSAN ago – set 2022
    • Con KubeVirt ho fatto girare come VM su Kubernetes software legacy non containerizzabile, così VM e container condividevano un unico control plane
  3. 3 DevOps Engineer @ Turkish Aerospace (TUSAS) nov 2022 – set 2024
    • Ho costruito e mantenuto infrastruttura containerizzata su Kubernetes
    • Ho guidato la migrazione degli application server (ad es. Tomcat) da deployment sul sistema operativo a Kubernetes
    • Ho risolto problemi e ottimizzato le pipeline GitLab CI/CD di integrazione e deployment
    • Ho scritto automazioni in Bash e Python che hanno tolto al team il lavoro ripetitivo
  4. 4 Laurea magistrale @ Politecnico di Milano set 2024 – dic 2026
    • Corsi: Network Computing, Computing Infrastructures, Advanced OS, Advanced Algorithms, IoT
    • Tesi: networking kernel-bypass per un relay Media-over-QUIC (scopri di più)
  5. 5 * * * richiesta scaduta. Forse il tuo team è il prossimo hop? invia SYN →

L4 Trasporto · la mia tesi magistrale

Tesi

Accelerating a Media-over-QUIC Relay with AF_XDP Kernel-Bypass Networking

Osman Bugra Dagli · Politecnico di Milano · gen 2025 – oggi

Media over QUIC (MoQ) è un protocollo IETF emergente per la distribuzione di media in diretta, e i relay ne sono il cuore. Ogni pacchetto che inoltrano attraversa lo stack di rete del kernel. Questa tesi misura quanto costa nel relay moxygen di Meta e toglie il kernel da quel percorso.

Un’analisi del tempo CPU basata su perf mostra che il relay è limitato dalla CPU di un singolo core, a circa l’1% della velocità di linea da 100 Gbit/s della NIC, e che l’I/O dei pacchetti nel kernel occupa il 16–29% del tempo attivo di quel core. Ho costruito un fast path AF_XDP e l’ho collegato allo stack QUIC tramite un punto di iniezione dei socket: il punto in cui il server sceglie quali socket UDP usa QUIC. L’intero percorso UDP RX/TX del relay ora passa per AF_XDP senza modificare la logica di inoltro del relay; l’unica modifica al server sono poche righe, attivabili con un flag, che installano la socket factory AF_XDP.

Il margine è stato misurato prima, con un microbenchmark del percorso di ricezione sullo stesso hardware e senza lavoro applicativo per pacchetto: su un core, AF_XDP zero-copy riceve circa 2,4 volte più pacchetti al secondo del percorso kernel ottimizzato.

prima: ogni pacchetto attraversa il kernel

  1. NIC
  2. driver · sk_buff
  3. UDP stack
  4. recvmmsg
  5. QUIC
  6. relay

dopo: kernel bypass

  1. NIC
  2. XDP redirect
  3. UMEM (zero-copy)
  4. AF_XDP socket
  5. injection seam
  6. QUIC
  7. relay

Contributi

  • Una pipeline basata su perf che scompone il tempo CPU per core lungo il data path del relay
  • Un microbenchmark del percorso di ricezione sull’hardware del testbed: AF_XDP zero-copy raggiunge ~1,55 Mpps su un singolo core, contro ~0,65 Mpps di un percorso kernel ottimizzato (recvmmsg + GRO)
  • Un percorso RX/TX AF_XDP per il relay, in un nuovo modulo xdp/ di moxygen
  • Un punto di iniezione dei socket, costruito sulla socket factory di proxygen, che sposta il relay su AF_XDP lasciando invariata la sua logica di inoltro
  • Un testbed CloudLab riproducibile: un solo profilo prepara le macchine, applica le patch a moxygen e proxygen, sincronizza gli orologi con PTP per la latenza one-way ed esegue gli esperimenti di fan-out, throughput e flame graph

L5 Sessione · dove va il mio tempo libero

Progetti

Cose che ho costruito per capire come funzionano. Filtrale con la tabella lsmod qui sopra.

conntracker

eBPF/XDP · mag 2025

Connection tracking e fingerprinting TCP che girano nel kernel, a livello XDP, prima ancora che lo stack di rete allochi un sk_buff.

  • Macchine a stati TCP e UDP in eBPF, con metriche per connessione
  • Estrae le sequenze di opzioni TCP (MSS, SACK, timestamp, window scale) per il fingerprinting di sistema operativo e stack
  • Un demone user-space in C carica una configurazione YAML, aggancia il programma ed espone statistiche e ban list via HTTP
  • Count-Min sketch e filtri di Bloom per un filtraggio rapido a soglia con memoria limitata

cd2alloy

Python · metodi formali

Trasforma diagrammi delle classi UML in modelli Alloy, così un progetto si può verificare con il model checking invece di limitarsi a rileggerlo. Disegni il diagramma in PlantUML, esporti l’XMI e apri il .als generato nell’Alloy Analyzer.

  • Lettore XMI → modello delle classi (classi, classi di associazione, enum) → traduttore Alloy
  • Sceglie tra le librerie di base di Alloy a seconda che il diagramma usi enum e valori degli attributi
  • Verificato su soluzioni reali degli esami di Software Engineering 2

cloud-storage

Go · HTTP/3

Un file server self-hosted su HTTP/3 (QUIC). TCP+TLS e QUIC/UDP condividono la stessa porta. I browser arrivano via TCP, vedono Alt-Svc e passano a HTTP/3 da soli.

  • Nomi dei file protetti da path traversal e byte di controllo/NUL
  • Scritture sicure contro le collisioni, che non sovrascrivono mai un file
  • Middleware di autenticazione con API key; il server si rifiuta di partire senza una chiave

L6 Presentazione · stessi dati, codifiche diverse

iconv

Il livello di presentazione traduce tra formati diversi. Eccomi in alcuni di questi.

$ iconv -f osman -t <locale>

tr_TR.UTF-8Türkçemadrelingua
en_US.UTF-8Englishprofessionale
it_IT.UTF-8ItalianoB1, migliora ogni giorno

$ openssl x509 -in osman.crt -noout -text

Subject: CN = Osman Bugra Dagli
Issuer:  O = The Linux Foundation, OU = CNCF
X509v3 Extended Key Usage:
    Certified Kubernetes Administrator (CKA)
Verify return code: 0 (ok)

$ iconv -f osman -t application/pdf > cv.pdf

La stessa storia in una pagina, per chi preferisce la carta. (in inglese)

Scarica il CV (PDF)

L7 Applicazione · cosa sta girando adesso

ps aux | grep now

PIDSTATCOMMAND
1550Rsto scrivendo la tesi su AF_XDP, laurea a dicembre 2026
4433Rsto rinforzando cloud-storage: upload in streaming, quote, test
8080Rcerco ruoli DevOps, platform o SRE, e ruoli nel software di rete vicini alla mia tesi. A Milano o con trasferimento.
1100Smi alleno con l’AON Milano Sport per la prossima partita di campionato di tennistavolo

SYN Apri una connessione

Three-way handshake

  1. →SYNMi mandi un messaggio. Ruoli, collaborazioni, o anche solo una bella cattura di pacchetti.
  2. ←SYN-ACKTi rispondo, di solito entro un giorno.
  3. →ACKConnessione ESTABLISHED.
visitor@osman: ~