Function as a Service ( FaaS ) はクラウドコンピューティングサービスのカテゴリであり、アプリケーションの開発と起動に通常伴うインフラストラクチャの構築と維持の複雑さなしに、顧客がアプリケーション機能を開発、実行、管理できるようにするプラットフォームを提供します。[ 1]このモデルに従ってアプリケーションを構築することは、「サーバーレス」アーキテクチャを実現する 1 つの方法であり、通常はマイクロサービスアプリケーションを構築するときに使用されます。
FaaSは、2010年頃にPiCloudなどのさまざまなスタートアップ企業によって最初に提供されました。[2]
AWS Lambda [3]は大手パブリッククラウドベンダーによる最初のFaaS提供であり、その後、Google Cloud Functions、Microsoft Azure Functions、 2016年にIBM / ApacheのOpenWhisk(オープンソース)、 2017年にOracle Cloud Fn(オープンソース)が続きました。
ユースケース
FaaS のユースケースは、サポートインフラストラクチャの電源をオフにして、使用していないときに料金が発生しないようにする「オンデマンド」機能に関連しています。例としては、データ処理 (例:バッチ処理、ストリーム処理、抽出、変換、ロード(ETL))、インターネットに接続されたデバイス向けのモノのインターネット(IoT) サービス、モバイルアプリケーション、Web アプリケーションなどがあります。[4] もう 1 つの実際のユースケースは、アプリケーションの現在の機能や既存の機能を破壊したり変更したりすることなく、既に構築されているアプリケーション用の API を作成することです。
アンチパターン
FaaS アーキテクチャの一般的なアンチパターンは、ソフトウェア アーキテクトの Mark Richards が考案した「砂粒アンチパターン」です。このアンチパターンは、関数が過度に細分化され、些細なタスクや過度に具体的な操作のみを実行する場合に発生します。モジュール性は FaaS の主な利点ですが、極端な断片化は通信オーバーヘッドの増加、運用の複雑さ、凝集性の低下につながる可能性があります。過度に細分化された関数は、他の関数やサービスとの頻繁なやり取りを必要とすることが多く、その結果、レイテンシが長くなり、システムが密に結合されます。このアンチパターンを回避するには、関数が意味のあるビジネス ロジックをカプセル化し、粒度と凝集性のバランスをとる必要があります。[5]
移植性の問題
Function as a Serviceワークロードは、ベンダーとの緊密な統合によるサービスロックインにより移行の障害に遭遇する可能性があります。六角形アーキテクチャはワークロードの移植性を容易にします。[6]
PaaSアプリケーションホスティングサービスとの比較
プラットフォーム・アズ・ア・サービス(PaaS) アプリケーション・ホスティング・サービスは、開発者から「サーバー」を隠すという点で FaaS に似ています。しかし、このようなホスティング・サービスでは通常、外部リクエストを受信するサーバー・プロセスが少なくとも 1 つ常に実行されています。スケーリングは、より多くのサーバー・プロセスを起動することで実現され、開発者は通常、その費用を直接請求されます。その結果、スケーラビリティは開発者にとって目に見えるままです。[7]
対照的に、FaaSではサーバープロセスを常に実行する必要はありません。最初のリクエストはアプリケーションホスティングプラットフォームよりも処理に時間がかかる場合がありますが(最大数秒[8])、キャッシュにより、後続のリクエストを数ミリ秒以内に処理できるようになります。開発者は関数の実行時間に対してのみ料金を支払い(プロセスのアイドル時間はかかりません)、レイテンシを犠牲にして、コストを抑えながらスケーラビリティを高めることができます。
参照
参考文献
- ^ Fowler, Martin (2016 年 8 月 4 日). 「サーバーレス アーキテクチャ」 . 2018 年1 月 26 日閲覧。
- ^ 「PiCloud、サーバーレス コンピューティング プラットフォームを一般公開」。
- ^ 「リリース: AWS Lambda 2014-11-13」Amazon Web Service . 2017 年2 月 26 日閲覧。
- ^ 「AWS Lambda – サーバーレスコンピューティング - Amazon Web Services」。Amazon Web Services, Inc. 2018年5月4日閲覧。
- ^ リチャーズ、マーク。マイクロサービスのアンチパターンと落とし穴。オライリー。
- ^ Cui, Yan (2020). AWS のサーバーレスアーキテクチャ(第 2 版). Manning. ISBN 978-1617295423。
- ^ Avram, Abel (2016 年 6 月 25 日)。「FaaS、PaaS、そしてサーバーレス アーキテクチャの利点」。InfoQ。
- ^ 「AWS Lambda でのコールドスタートへの対処」2018 年 4 月 17 日。
