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を使用し、各インスタンスは単一スレッドのイベントループで動作する。

出典

su3.io — 元記事を読む →