Cloudflare、NGINXに代えて自社開発のRust製HTTPプロキシ「Pingora」をグローバルCDNに採用。性能向上しつつCPUとメモリ消費を3分の1に

CDNプロバイダのCloudflareは、同社のグローバルなCDNの基盤として長らく利用してきたNGINXに代えて、同社自身がRust製のHTTPプロキシである「Pingora」を開発し利用していることを明らかにしました

Pingoraはすでに同社のCDNに採用され、毎日1兆回以上のリクエストを処理し、性能向上や数多くの新機能の提供を実現しつつ、従来と比較してCPUとメモリリソースの消費はいずれも3分の1程度に収まっているとのこと。

Pingoraは現時点でコードなどは公開されていませんが、いずれオープンソース化の計画についても明らかにするとCloudflareは説明しています。

NGINXはアーキテクチャや開発体制に課題があると指摘

CloudflareはNGINXの性能上の課題について、各リクエストが1つのワーカーで処理が行われる仕組みが特定のCPUコアに負荷を偏らせること、接続の再利用性が低いことなどが、性能低下を引き起こしていると指摘。

またオープンソースであるNGINXのアップストリームから乖離しない範囲でNGINXが望む機能を独自に追加していくのは容易ではなかったこと、NGINXはメモリセーフではないC言語で書かれていること、そしてNGINXのコミュニティはあまりアクティブではなく、しかも外部に対して閉鎖的であることなども、NGINXの採用を辞めた理由として挙げました。

そこでCloudflareは3つの選択肢を検討しています。

1つ目はなんとかしてNGINXをこのまま使うか、もしくは自社でフォークしてNGINXベースのソフトウェアを使い続けること。2つ目はEnvoyなどNGINX以外のHTTPプロキシの採用を検討すること、そして3つ目は独自に最初から開発することです。

1つ目の選択肢はNIGIXのアーキテクチャの課題の解決にならず、2つ目の選択肢は短期的にはよくても将来、NGINXと似たような課題を抱える可能性を排除できないとされ、最終的にCloudflareは3つ目の選択肢であるHTTPプロキシの自社開発に乗り出すことにしたと説明されています。

コメントする