サービスとしての機能(FaaS)とは?

FaaSはサーバーレスバックエンドサービスであり、開発者は特定のイベントに応じて実行できるモジュラーコードをその場で作成できます。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • FaaSの定義
  • FaaSの長所と短所について
  • FaaSアプリケーションのパフォーマンスに大規模なエッジネットワークが不可欠である理由を説明

記事のリンクをコピーする

Function as a Serviceとは?

サービスとしての機能(FaaS)は、エッジでモジュール式のコードを実行するためのサーバーレス方法です。FaaSを使用すると、開発者はコードをその場で記述および更新でき、ユーザーはWebアプリケーションの要素をクリックするなどのイベントに応じて実行できます。これにより、コードのスケーリングが容易になり、マイクロサービスを実装するコスト効率の高い方法です。

マイクロサービスとは?

Webアプリケーションがビジュアルアートの作品である場合、マイクロサービスアーキテクチャを使用することは、モザイクタイルのコレクションからアートを作成するようなものです。アーティストは、タイルを一度に1枚ずつ簡単に追加、置換、修復できます。モノリシックアーキテクチャは、作品全体を1枚のキャンバスに色を塗るようなものです。

マイクロサービス vs モノリシックアーキテクチャ

モジュラーコンポーネントのセットからアプリケーションを構築するこのアプローチは、マイクロサービスアーキテクチャとして知られています。アプリケーションをマイクロサービスに分割することは、開発者がコードベースに簡単に実装できる小さなコードを作成および変更できることを意味するため、開発者にとって魅力的です。これは、すべてのコードが1つの大きなシステムに織り込まれたモノリシックアーキテクチャとは対照的です。大規模なモノリシックシステムでは、アプリケーションにわずかな変更を加えても、非常に大きなリリースプロセスが必要です。 FaaSは、このリリースの複雑さを排除します。

FaaSなどのサーバーレスコードを使用すると、Web開発者はアプリケーションコードの作成に集中でき、サーバーレスプロバイダーはサーバーの割り当てとバックエンドサービスを処理します。

FaaSを使用する利点とは?

開発者の速度を改善

FaaSを使用すると、開発者はアプリケーションロジックの作成により多くの時間を費やすことができ、サーバーやリリースについて心配する時間を短縮することができます。これは通常、開発期間が大幅に短縮されることを意味します。

組み込みのスケーラビリティ

FaaSコードは本質的にスケーラブルであるため、開発者はトラフィックが多い場合や頻繁使用の場合に偶発事象が発生することを心配する必要はありません。サーバーレスプロバイダーは、すべてのスケーリングの問題を処理します。

コスト効率

従来のクラウドプロバイダーとは異なり、サーバーレスFaaSプロバイダーは、クライアントにアイドル中の計算時間分を請求しません。このため、クライアントは使用する分だけの計算時間を支払うだけで、クラウドリソースのオーバープロビジョニングにお金を浪費する必要はありません。

FaaSの欠点は何ですか?

少ないシステム制御

第三者がインフラストラクチャの一部を管理すると、システム全体を理解するのが難しくなり、デバッグの課題が増えます。

テストにはさらなる複雑さが必要

ローカルテスト環境にFaaSコードを組み込むことは非常に困難な場合があり、アプリケーションの徹底的なテストをより集中的なタスクにします。

FaaSの開始方法

開発者は、WebアプリケーションのFaaS機能を有効にするために、サーバーレスプロバイダーとの関係を作成する必要があります。FaaS統合は、アプリケーションコードがエッジから配信されることを意味するため、エッジサーバーの可用性と地理的分布は重要な考慮事項です。ブラジルの過負荷のデータセンターから提供されるFaaSエッジコードに依存するサイトにアクセスするイタリアのユーザーは、バウンス率が高くなるような遅延に遭遇します。Cloudflare Workersは、330を超える都市にデータセンターを持つCloudflareのグローバルネットワークを活用するFaaSソリューションであり、一般的な選択肢となっています。