FaaSはサーバーレスバックエンドサービスであり、開発者は特定のイベントに応じて実行できるモジュラーコードをその場で作成できます。
この記事を読み終えると、以下のことができるようになります。
記事のリンクをコピーする
サービスとしての機能(FaaS)は、エッジでモジュール式のコードを実行するためのサーバーレス方法です。FaaSを使用すると、開発者はコードをその場で記述および更新でき、ユーザーはWebアプリケーションの要素をクリックするなどのイベントに応じて実行できます。これにより、コードのスケーリングが容易になり、マイクロサービスを実装するコスト効率の高い方法です。
Webアプリケーションがビジュアルアートの作品である場合、マイクロサービスアーキテクチャを使用することは、モザイクタイルのコレクションからアートを作成するようなものです。アーティストは、タイルを一度に1枚ずつ簡単に追加、置換、修復できます。モノリシックアーキテクチャは、作品全体を1枚のキャンバスに色を塗るようなものです。
モジュラーコンポーネントのセットからアプリケーションを構築するこのアプローチは、マイクロサービスアーキテクチャとして知られています。アプリケーションをマイクロサービスに分割することは、開発者がコードベースに簡単に実装できる小さなコードを作成および変更できることを意味するため、開発者にとって魅力的です。これは、すべてのコードが1つの大きなシステムに織り込まれたモノリシックアーキテクチャとは対照的です。大規模なモノリシックシステムでは、アプリケーションにわずかな変更を加えても、非常に大きなリリースプロセスが必要です。 FaaSは、このリリースの複雑さを排除します。
FaaSなどのサーバーレスコードを使用すると、Web開発者はアプリケーションコードの作成に集中でき、サーバーレスプロバイダーはサーバーの割り当てとバックエンドサービスを処理します。
FaaSを使用すると、開発者はアプリケーションロジックの作成により多くの時間を費やすことができ、サーバーやリリースについて心配する時間を短縮することができます。これは通常、開発期間が大幅に短縮されることを意味します。
FaaSコードは本質的にスケーラブルであるため、開発者はトラフィックが多い場合や頻繁使用の場合に偶発事象が発生することを心配する必要はありません。サーバーレスプロバイダーは、すべてのスケーリングの問題を処理します。
従来のクラウドプロバイダーとは異なり、サーバーレスFaaSプロバイダーは、クライアントにアイドル中の計算時間分を請求しません。このため、クライアントは使用する分だけの計算時間を支払うだけで、クラウドリソースのオーバープロビジョニングにお金を浪費する必要はありません。
第三者がインフラストラクチャの一部を管理すると、システム全体を理解するのが難しくなり、デバッグの課題が増えます。
ローカルテスト環境にFaaSコードを組み込むことは非常に困難な場合があり、アプリケーションの徹底的なテストをより集中的なタスクにします。
開発者は、WebアプリケーションのFaaS機能を有効にするために、サーバーレスプロバイダーとの関係を作成する必要があります。FaaS統合は、アプリケーションコードがエッジから配信されることを意味するため、エッジサーバーの可用性と地理的分布は重要な考慮事項です。ブラジルの過負荷のデータセンターから提供されるFaaSエッジコードに依存するサイトにアクセスするイタリアのユーザーは、バウンス率が高くなるような遅延に遭遇します。Cloudflare Workersは、330を超える都市にデータセンターを持つCloudflareのグローバルネットワークを活用するFaaSソリューションであり、一般的な選択肢となっています。