[論文レビュー] Snafu: Function-as-a-Service (FaaS) Runtime Design and Implementation
Snafu は、低遅延かつ高パフォーマンスで実行可能な、Python およびマルチ言語関数をホスト・実行できるオープンソースでモジュラーな関数型サービス(FaaS)ランタイムである。プロトタイピングを迅速化するため、インプロセス実行とコンテナ化デプロイメントをサポートしており、高頻度の呼び出しにおいて AWS Lambda よりも優れたコストパフォーマンスを実現し、最大で 40.39 のユーティリティスコアを達成した。一方、AWS Lambda は 5.02 であった。
Snafu, or Snake Functions, is a modular system to host, execute and manage language-level functions offered as stateless (micro-)services to diverse external triggers. The system interfaces resemble those of commercial FaaS providers but its implementation provides distinct features which make it overall useful to research on FaaS and prototyping of FaaS-based applications. This paper argues about the system motivation in the presence of already existing alternatives, its design and architecture, the open source implementation and collected metrics which characterise the system.
研究の動機と目的
- 研究やプロトタイピングに適した、商業プロバイダーの制約に縛られない柔軟で簡単にデプロイ可能な FaaS ランタイムの不足を解消すること。
- インプロセス実行とコンテナ化実行の両方をサポートする、モジュラーでオープンソースの FaaS システムを設計すること。
- 基本機能のセットアップ時間を 10 分未満に短縮することで、迅速なプロトタイピングと実験を可能にすること。
- 高負荷下でのパフォーマンス対コスト比に優れた、既存のオープンソースおよび商業的 FaaS ランタイムと競合可能な代替手段を提供すること。
- クラウドネイティブおよび科学計算ワークロードにおけるモノリシックアーキテクチャから細粒度の関数ベースアーキテクチャへの移行を支援すること。
提案手法
- Snafu はモジュラーなアーキテクチャを採用し、関数を状態なしのユニットとしてホスティングし、インプロセスでの Python 実行と、コンテナを介した外部言語関数の実行を両方サポートする。
- ソースコードからコール可能関数を動的に抽出することで、明示的な関数登録が不要なため、レガシーコードベースの迅速な移行が可能である。
- 2 種類のデプロイメントモードをサポートする:インプロセス(Snafu IP)と Docker を用いたコンテナ化(Snafu Docker)、それぞれが認証および隔離レベルを設定可能である。
- パフォーマンスおよびコスト指標は、異なる構成とクラウドリージョン(us-west-1)におけるベンチマーク関数(fib(20))を用いて収集された。
- パフォーマンス対コストの比較のため、ユーティリティインデックスを cpm / (ppm × 1,000,000) として計算し、ppm は時間単価または100万回呼び出し単価のいずれかから導出される。
- 実際の価格と測定された呼び出し頻度を用いて、Snafu のコストとパフォーマンスを AWS Lambda と比較する実験が実施された。
実験結果
リサーチクエスチョン
- RQ1最小限のセットアップオーバーヘッドで迅速なプロトタイピングを可能にする、軽量でオープンソースの FaaS ランタイムを設計できるか?
- RQ2さまざまな呼び出し頻度において、自前でホスティングする FaaS ランタイムのパフォーマンスとコスト効率は、AWS Lambda などの商業的ソリューションと比べてどの程度優れているか?
- RQ3FaaS ワークロードにおいて、コンテナ化実行と比較してインプロセス実行が、パフォーマンス向上とコスト削減にどの程度寄与するか?
- RQ4モジュラーな FaaS アーキテクチャにおいて、隔離、認証、および実行速度の間にはどのようなトレードオフがあるか?
- RQ5Python およびマルチ言語関数を両方サポートし、柔軟なデプロイメントオプションを備えた FaaS システムを構築できるか、かつ商業的およびオープンソースの代替手段と競争力を持てるか?
主な発見
- Snafu IP は 40.39 のユーティリティインデックスを達成し、AWS Lambda の 5.02 よりも顕著に優れており、高頻度ワークロードにおけるパフォーマンス対コスト効率の優位性が示された。
- 1 分間に 2.6 億回を超える呼び出しにおいて、EC2 上の Snafu デプロイは AWS Lambda を上回るコスト効率を示し、負荷が高くなるほど性能優位性が拡大した。
- Snafu のインプロセス実行モードが最高のユーティリティ(40.39)を達成した一方、常に認証を行うコンテナ化実行は最低(16.07)であった。これは認証オーバーヘッドがコストに与える影響を示している。
- 依存関係のインストール後、10 分未満で運用可能状態に到達する Snafu の最小限のセットアップ時間は、プロトタイピングおよび研究用途に適した低負荷性を裏付けている。
- システムはソースコードからの動的関数抽出をサポートしており、明示的な設定が不要なため、レガシーコードベースの FaaS 移行が迅速に可能である。
- 利点がある一方で、Snafu のパフォーマンスは高負荷で頭打ちとなり、約 6 億 6000 万回/分を超える呼び出しではコストが非現実的になることが判明した。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。