eBPFでスクリプト可能な新WebサーバーZeroserve公開
原題: Zeroserve: A zero-config web server you can script with eBPF
なぜ重要か
従来の設定ファイルに代わってeBPFプログラミングでWebサーバーを制御する新しいアプローチで、Web配信技術の進化を示している。
開発者がZeroserveという新しいWebサーバーを公開した。設定ファイル不要でeBPFプログラムを使ってリクエスト処理をスクリプト化でき、TLS1.3とHTTP/2に対応している。単一のtarファイルからWebサイトを配信し、nginx並みの性能を実現すると発表された。
Zeroserveは従来のnginxやCaddyの代替を目指すWebサーバーで、設定ファイルの代わりにeBPFプログラムを使用する独特な設計が特徴だ。開発者によると、従来のサーバーは宣言的な設定言語とスクリプトランタイムが分離されているが、Zeroserveではすべてを単一のeBPFプログラムに統合している。
サーバーは単一のtarファイルからWebサイト全体を配信し、ファイルを展開せずにバイトレンジ読み取りで直接提供する。デプロイは新しいtarファイルへの置き換えとSIGHUPシグナル送信だけで完了し、接続を切断することなく原子的にリロードできる。
eBPFスクリプトはユーザースペースで動作し、async-ebpfランタイムがバイトコードをネイティブx86-64コードにJITコンパイルする。カーネルのBPFサブシステムやCAP_BPF権限は必要なく、ポインタケージが通常のカーネル検証器の役割を果たしてメモリアクセスを制限する。
性能面では単一コアでnginxを上回ると主張しており、静的ファイル配信、スクリプト化されたミドルウェア、小さなレスポンスのプロキシ処理すべてでHTTPS経由の優秀な結果を示している。すべてのネットワークとディスクI/Oはio_uringを使用し、各インスタンスは単一スレッドのイベントループで動作する。