The Doppler Quarterly (日本語) 春 2018 | Page 67
ここで中心的な役割を果たすサーバーレスアーキテクチャーは、オンデマンドで呼び出して
スケジュールを設定し、実行後に終了する、一部の言語に固有の関数で構成されます。サー
バーレスは、アプリケーションを構築して展開するための VM やコンテナーに続く手段として
もてはやされていますが、サーバーレス関数も何らかのプラットフォーム上で実行しなければ
なりません。ただしこれに関しては、最適なプラットフォームとなる Kubernetes があり、実際
のところ、少なくとも2 つのオープンソースプロジェクト (KubelessとFission) において、サー
バーレスの基盤となるプラットフォームとして K8s が使用されています。Fission プロジェク
トは、 K8s をサーバーレスにどのように使用できるのかがわかる好例です。Fission は、 API
サーバー、サービスルーター、プールマネージャー、および K8s 上でレイヤー化された一連
の関数に固有の Pod で構成されます ( 図 4 を参照 )。Fission は、 Fission にロードされた
関数をホストする Pod のプールを管理します。コントローラーは、関数のトラッキングを行い、
イベントトリガーと定義済みの関数で構成されたコンテナーイメージを管理します。プールマ
HTTP の要求
Fission CLI
コント
ローラー
ルーター
...
プール
マネージャー
「一般的な」
Pod
関数に「固有の」
Pod
図 4: Fission - Kubernetes のサーバーレス関数
ネージャーは、関数を実行するための一連のコンテナーを管理し、それらのコンテナーの「稼
働」を維持するとともに、特定のイベントによってトリガーされたときにオンデマンドでそのス
ケジュールを設定します。ルーターは、 HTTP の要求を受け取って適切な関数 Pod に転送
し、必要に応じてプールマネージャーによる Pod のスケジュール設定を要求します。プール
マネージャーは、ほぼ瞬時に起動して関数を実行できるようにし、コンテナーのロードのレイ
テンシを回避するため、 Fission に不可欠です。
2018 年春号 | THE DOPPLER | 65