Tools
GitHub setzt auf eBPF gegen zirkuläre Deployment-Abhängigkeiten
Das Henne-Ei-Problem
GitHub hostet seinen eigenen Code auf github.com. Clever fürs Dogfooding, aber ein Albtraum bei Ausfällen: Wenn GitHub down ist, kann GitHub nicht repariert werden, weil die Deployment-Scripts GitHub brauchen. Zirkuläre Abhängigkeit pur.
Das Problem geht tiefer:
- Direkte Dependencies: Deploy-Script pullt Release von GitHub → GitHub down → Script failt
- Versteckte Dependencies: Tool auf der Maschine checkt bei Start auf Updates bei GitHub → hängt
- Transitive Dependencies: Script ruft Service, Service pullt von GitHub → Kaskadenfehler
Die Lösung: eBPF. GitHub nutzt Linux-Kernel-Hooks, um Netzwerk-Calls gezielt zu blocken oder zu erlauben. Mit speziellen cGroup-Programmen können sie Deployments validieren – ohne github.com komplett zu blocken und Traffic zu stören.
Der Clou: eBPF-Programme laufen im Kernel, sind extrem performant und lassen sich dynamisch laden. GitHub hat damit ein System gebaut, das Deployment-Scripts in isolierten cGroups überwacht und zirkuläre Dependencies erkennt, bevor sie zum Problem werden.
Wenn einer der größten DevOps-Player der Welt eBPF einsetzt, ist das kein Hype mehr – sondern Best Practice.