このセクションでは、このホワイトペーパーで使用されている用語の幾つかを定義します。
BaaS(Backend as a Service)
アプリケーションは、アプリケーション自体の外部で管理されているサービス(リモートストレージサービスなど)を活用することがよくあります。これにより、アプリケーションは主要なビジネスロジックに集中できます。こうしたサードパーティサービスは、「バックエンドとしてのサービス(Backend as a Service:BaaS)」と呼ばれることがあります。BaaSは従来型のコンピューティングプラットフォームからも、サーバレスからも使用することができますが、それ自体がステートレスである関数をサポートするインフラストラクチャ(例えばステートを提供する)となることが多いため、サーバレスアーキテクチャでは重要な役割を果たすことには注意が必要です。 BaaSプラットフォームは、サーバレス処理をトリガするイベントを生成することもあります。
コールドスタート
「コールドスタート」とは、一般に、未デプロイ状態の関数インスタンス(新しいコード)を起動することを指します。
コンテキスト
サーバレスプラットフォームは通常、関数を実行する際に、入力パラメータとしてコンテキストオブジェクトを提供します。これには特定の関数呼び出しにかかわる環境や状況に関するトリガ・メタデータおよびその他の情報を含みます。
データバインディング
関数には、バックエンドストレージ(マウントポイント/ボリューム/オブジェクトストアなど)、データベースなど、データへの長期にわたる接続のためのデータバインディングが必要な場合があります。データバインディングには、関数そのものの中で保存できない秘密などのセキュリティ情報を含むこともあります。データバインディングは、複数の関数呼び出しで使用できます。
開発フレームワーク
関数が開発される環境。これは、ローカル(例えば、ラップトップ上)でも、ホストされた環境内でも構いません。
イベント
起こったことの通知。
イベントアソシエーション
イベントソースと、イベントの結果として実行される特定の関数との間のマッピング。
イベントデータ
発生したイベントに関する情報。詳細については、「イベントデータとメタデータ」を参照してください。
イベントソース
関数は、HTTPゲートウェイ、メッセージキュー、ストリームなどの1つまたは複数のイベントソースタイプを通じて呼び出すことも、データベースの書き込み、IoTセンサーのアクティブ化、または非アクティブの期間など、システムの変更発生に基づいて生成することもできます。
関数/アクション
トリガの結果として実行されるコード。
関数グラフ/ワークフロー
開発者にとってのサーバレスのシナリオでは通常、イベント、関数、イベントと関数のやり取り、および関数間の連携を定義します。幾つかのユースケースでは、複数のイベントと複数の関数が存在します。関数グラフ/ワークフローは、イベントと関数のやり取りおよび関数間の連携について説明します。ユーザーは、「どのイベントがどの関数をトリガするか」「関数はシーケンシャルに実行されるのか、それとも並列で実行されるのか」「関数間の遷移」「ワークフロー内のある関数から次の関数に情報がどのように引き渡されるか」をユーザーが指定する方法を提供します。関数グラフは、ワークフロー・ステートの集まり、およびこれらのステート間の遷移として表示でき、各ステートには関連するイベントおよび関数があります。関数グラフ/ワークフローの例には、AWS Step Functionsがあります。
関数パラメータ
関数が呼び出されると、ランタイムフレームワークは通常、この特定の呼び出しに関するメタデータを一連のパラメータとして提供します(「コンテキスト」を参照)。
Function as a Service(FaaS)
FaaSとは、エンドユーザーが提供する関数をオンデマンドで実行するために、プラットフォームが備える中核機能を示しています。これはサーバレスプラットフォームの中核となるコンポーネントで、オートスケールや課金など、ユーザーに代わって関数を管理する、追加的なQoS(Quality-Of-Service)機能が含まれています。
呼び出し(Invocation)
関数を実行する行為。例えば、イベントの結果としての実行などがあります。
ランタイムフレームワーク
サーバレスワークフローを実行するランタイム環境/プラットフォーム。トリガを関数にマッピングし、関数がコンテナリソースをホストし、言語パッケージ/ライブラリを動的にプロビジョニングし、これらの関数が実行されます。ランタイムフレームワークの中には、関数を記述できるランタイム言語が固定的に決められている場合もあります。
トリガ
関数の実行リクエスト。トリガは多くの場合、HTTP要求、データベース変更、メッセージストリームなど、着信イベントの結果です。
ウォームスタート
「ウォームスタート」とは、停止した(しかしデプロイされた)状態からの、関数インスタンスの開始を指します。
サーバレスコンピューティングに関する追加的な情報源を求めている読者のために、参考資料をリストします。
Serverless Architectures by Mike Roberts
containers-vs-serverless-navigating-application-deployment-optionsContainers vs serverless - Navigating application deployment options by Daniel Krook
Serverless Computing: Current Trends and Open Problems by Ioana Baldini, et al.
Serverless: Background, Challenges and Future by Yaron Haviv
What is serverless good for? by Andreas Nauerz
Serverless Architecture: Five Design Patterns by Mark Boyd
How Two College Kids Built A Better Census by Stefanie Monge
7 AWS Lambda Tips from the Trenches by Mitchell Harris
Why The Future Of Software And Apps Is Serverless by Ken Fromm
The Serverless Guide authored by the community, curated by Serverless, Inc.
Microservice Orchestration for Serverless Computing by Cathy Zhang, Louis Fourie
サーバレスは、クラウド事業者によってサービスとして提供される場合には、そのクラウドサービスにが提供するサービス(ストレージやデータストリーミング)を前提とする場合がある。これを「ベンダーロックイン」だと表現することもできる。だがこのホワイトペーパーでは、より根本的な点で、サーバレスプラットフォーム間の相互運用性を確保するにはどうすべきかを探っている。また、これに向けてCNCFあるいはServerless Working Groupがどんなアクションをとるべきかについて、具体的に説明している。
Copyright © ITmedia, Inc. All Rights Reserved.