FaaS(Function-as-a-Service)は、マイクロサービス ・アプリケーションの 構築と起動に関連する複雑なインフラを管理することなく、顧客がイベントに応じてコードを実行できるように する クラウドコンピューティングサービス です。
インターネット上でソフトウェア アプリケーションをホストするには、通常、仮想サーバーまたは物理サーバーのプロビジョニングと管理、およびオペレーティング システムと Web サーバーのホスティング プロセスの管理が必要です。FaaS を使用すると、物理ハードウェア、仮想マシンのオペレーティング システム、Web サーバー ソフトウェアの管理はすべてクラウド サービス プロバイダーによって自動的に処理されます。これにより、開発者はアプリケーション コード内の個々の機能のみに集中できるようになります。
サーバーレスと Functions-as-a-Service (FaaS) はよく混同されますが、実際のところ、FaaS は実際にはサーバーレスのサブセットです。
サーバーレスは、コンピューティング、ストレージ、データベース、メッセージング、API ゲートウェイなど、あらゆるサービス カテゴリに焦点を当てています。ここでは、サーバーの設定、管理、課金がエンドユーザーには見えない。
一方、FaaS はおそらくサーバーレス アーキテクチャの最も中心的なテクノロジーですが、アプリケーション コードまたはコンテナーがイベントまたはリクエストに応答してのみ実行されるイベント駆動型コンピューティング パラダイムに焦点を当てています。
FaaS は、アプリケーションを効率的かつコスト効率よくクラウドに移行したい場合に貴重なツールです。以下はあなたが享受するいくつかの利点です:
FaaS の導入を容易にし、より効果的に使用するために従うことができるベスト プラクティスがいくつかあります。
FaaS はトランザクションを簡単に分離して拡張できるため、大量の並列ワークロードに適しています。バックエンド システムの作成や、データ処理、形式変換、エンコード、データ集約などのアクティビティにも使用できます。
FaaS は、Web アプリ、バックエンド、データ/ストリーム処理、またはオンライン チャットボットや IoT デバイス用のバックエンドを作成するための優れたツールでもあります。FaaS は、サードパーティ サービスの管理と使用に役立ちます。例えば Androidアプリの開発を検討している場合、FaaSアプローチを採用することでコストを抑えることができます。 アプリがバッチ処理などの特定の機能のためにクラウドに接続する場合にのみ料金が発生するため、従来のアプローチを使用する場合よりもコストを大幅に下げることができます。
FaaS はコンピューティング パフォーマンスを劇的に向上させることもできます。例えば、2人の学生は最近、IBMのエンジニアと協力して、 IBM Cloud Functionsを活用してモンテカルロ・シミュレーション(予測困難な特定の事象の将来の結果を推定するために使用される数学的手法)を行い、株価を推定する方法を探った。 モンテカルロ シミュレーションは、重要なハイパフォーマンス コンピューティング ワークロードとみなされます。モンテカルロと IBM Cloud Functionsの 組み合わせにより、チームは大規模な計算を実行できるようになり、ビジネスロジックに集中できるようになった。 FaaS を使用して、チームは 1,000 回の同時呼び出しによるモンテカルロ シミュレーション全体を約 90 秒で完了しました。比較すると、4 つの CPU コアを搭載したラップトップで同じフローを実行すると 247 分かかり、CPU 使用率はほぼ 100% になりました。
FaaSの使用例については、"IBM Cloud Functionsが提供する主な利点のまとめ"をご覧ください。
FaaS、PaaS(Platform-as-a-Service)、コンテナ、 仮想マシン(VM )はすべて、サーバーレスのエコシステムにおいて重要な役割を果たしています。FaaS はサーバーレス スタックの最も中心的で最も定義的な要素であるため、FaaS が現在市場にある他の一般的なコンピューティング モデルと主要な属性に関してどのように異なるかを検討する価値があります。
Kubernetes と Knative は、FaaS の背後にある「配管」の実装の 1 つです。Kubernetesは オープンソースのコンテナオーケストレーションツールで、クラウドアプリケーションの管理には欠かせない。 Knativeを 使えば、Kubernetesクラスタ内でサーバーレスを実行できます。
KnativeとKubernetesの組み合わせは、モニタリング、セキュリティ、ロギング、認証といったKubernetesの機能を活用し、自動コンテナビルド、完全な移植性、 ハイブリッド環境での作業といったKnativeの利点と組み合わせることができることを意味します。
このテクノロジーの作成者は、開発者がクラウド アプリを構築するときにサーバーレスとコンテナーのどちらかを選択する必要はないと考えていました。目標は、サーバーレスの強力なスケーリングとオンデマンド アクセスにより、コンテナーの可用性と一貫性を強化することでした。
Knativeの詳細については、このビデオをご覧ください。
コンテナー イメージ、バッチ ジョブ、またはソース コードをサーバーレス ワークロードとして実行します。サイジング、デプロイ、ネットワーク、スケーリングは必要ありません。
この Functions-as-a-Service (FaaS) プログラミング プラットフォームを使用して、オンデマンドでスケーラブルに実行される軽量コードを開発します。
サーバーレスは、開発者がサーバーやバックエンド インフラストラクチャのプロビジョニングや管理を行わずにアプリケーション コードを構築および実行できるクラウド アプリケーションの開発および実行モデルです。
コンテナーは、アプリケーション コードをライブラリの依存関係とともにパッケージ化するソフトウェアの実行可能な単位であり、デスクトップ、従来の IT、クラウドなど、どこでも実行できます。
PaaS (Platform-as-a-Service) は、アプリケーションの開発、実行、管理のための、完全かつ柔軟でコスト効率の高いクラウド プラットフォームを提供します。