非同期マルチスレッドフレームワーク「Pingora」をオープンソース化 Cloudflareゲートウェイやロードバランサー構築に向くカスタマイズ可能なAPI

Cloudflareは、RustフレームワークPingoraのオープンソース化を発表した。Pingoraは、Cloudflareが開発したHTTPプロキシサービスの構築を支援するRustの非同期マルチスレッドフレームワークだ。

» 2024年03月22日 14時00分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 Cloudflareは2024年2月28日(米国時間)、RustフレームワークPingoraのオープンソース化を発表した。PingoraはApache License version 2.0でリリースされている。

 Pingoraは、Cloudflareが開発したHTTPプロキシサービスの構築を支援するRustの非同期マルチスレッドフレームワークで、これまでCloudflareのグローバルネットワーク全体で約4兆件のインターネットリクエストを処理してきた。

 Pingoraをオープンソース化する背景として、Cloudflareは「全性の高いフレームワークを使用し、独自のインターネットインフラを構築するためのツール、アイデア、インスピレーションを提供したい。メモリ安全性の重要性に対する認識が高まっている現在、Pingoraのようなフレームワークには大きな意義がある」と述べている。

 Pingoraは、プロキシだけでなく、クライアントとサーバのためのビルディングブロックを提供する。これらのコンポーネントとともに、イベントカウント、エラー処理、キャッシュなどの一般的なロジックを実装するユーティリティーライブラリも提供している。

Pingoraのオープンソース化で何が提供されるのか?

 Pingoraは、HTTP/1、HTTP/2、TLS、または単なるTCP/UDPの上にサービスを構築するためのライブラリとAPIを提供する。プロキシとしては、HTTP/1とHTTP/2のエンドツーエンド、gRPC、WebSocketのプロキシをサポートしている(HTTP/3のサポートはロードマップに含まれている)。

 また、カスタマイズ可能なロードバランシングとフェイルオーバー戦略も備えている。コンプライアンスとセキュリティに関しては、一般的に使用されている「OpenSSL」と「BoringSSL」ライブラリの両方をサポートしており、FIPSコンプライアンスとポスト量子暗号(PQC)が付与されている。

 これらの機能に加えて、Pingoraはフィルターとコールバックを提供し、ユーザーがサービスをどのようにリクエストを処理、変換、転送するかを完全にカスタマイズできるようにしている。「これらのAPIは、多くがOpenRestyの『*_by_lua』コールバックに直感的にマッピングされているため、OpenRestyおよびNGINXのユーザーにとって特に馴染みのあるものとなるだろう」(Cloudflare)

 運用面では、Pingoraはゼロダウンタイムのグレースフルリスタートを提供しており、受信中のリクエストを残らずアップグレードできる。「Syslog」「Prometheus」「Sentry」「OpenTelemetry」その他必要な観測ツールもPingoraと統合可能だ。

Pingoraのメリット

セキュリティ

 Cloudflareによると、Pingoraは、C/C++で記述されたサービスにとって、メモリ安全性の高い選択肢であるという。また、コーディングミスやメモリ安全性の問題に取り組む時間が短縮されるため、新機能を実装する際の生産性が向上するとしている。

パフォーマンス

 Pingoraはマルチスレッドアーキテクチャを採用しており、CPUとメモリリソースを節約できる。

カスタマイズの容易さ

 Pingoraプロキシフレームワークが提供するAPIはプログラム可能で、カスタマイズされたゲートウェイやロードバランサーを構築したいユーザーに適している。

Pingoraのプロキシフレームワーク

 PingoraのAPIでロードバランサーを構築した場合、Pingoraのプロキシフレームワークがフィルターとコールバックを経由してどのようにリクエストを処理しているかについては下図の通り。

(提供:Cloudflare)

 Pingoraのプロキシフレームワークは、リクエストのさまざまな段階で多くのフィルターとコールバックを提供している。ユーザーはこれを活用して、リクエストとレスポンスを修正したり、拒否したり、ルーティングやログへ記録したりできる。

 Pingoraのプロキシフレームワークがコネクションプール、TLSハンドシェイク、リクエストの読み込み、書き込み、解析、その他一般的なプロキシタスクを処理している。そのためユーザーは、自分にとって重要なロジックに集中できる。

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。