サーバーレス Functions のアーキテクチャの設計

サーバーレス アーキテクチャは、実行する必要のあるインフラストラクチャのコードを抽象化することにより、クラウド プラットフォームを純粋なクラウドネイティブ コードに進化させます。 Azure Functions関数をサポートするサーバーレス コンピューティング オプションです。関数とは、1 つの処理を実行する小さいコードです。

Functions アプリケーションでサーバーレス アーキテクチャを使用する利点は次のとおりです。

  • Azure インフラストラクチャでは、アプリケーションで大規模に実行し続ける必要がある最新のすべてのサーバーが自動的に提供されます。
  • コンピューティング リソースは動的に割り当てられ、弾力的な需要に対応するために瞬時に自動スケーリングされます。 サーバーが必要な場合にのみ実行されるため、サーバーレスは "サーバーなし" ではなく "サーバーが少ない" ことを意味します。
  • マイクロ課金では、コードの実行に使用されるコンピューティング リソースと期間に対してのみ課金されるため、コストが節約されます。
  • 関数バインドを使用すると、さまざまな Azure サービスやサードパーティ サービスへの宣言型アクセスが提供されるため、統合が効率化されます。

関数はイベント ドリブンです。 HTTP Web 要求、メッセージ、スケジュール、データ変更などの外部イベントによって関数コードがトリガーされます。 Functions アプリケーションでは、トリガーのコードは記述せず、トリガーへの応答のコードのみを記述します。 記述のしきいが低くなるため、開発者はメッセージングなどのインフラストラクチャの問題を処理するコードの記述に煩わされることなく、ビジネス ロジックに焦点を合わせることができます。

Azure Functions は、Azure と Azure Stack のマネージド サービスです。 オープンソースの Functions ランタイムは、Kubernetes、Azure IoT Edge、オンプレミス、その他のクラウドなど、多くの環境で動作します。

サーバーレスおよび Functions では、アプリケーションを構築するための新しい考え方と新しいアプローチが必要です。 これらがすべての問題に対して適切なソリューションであるとは限りません。 サーバーレス Functions のシナリオの例については、参照用アーキテクチャに関するページを参照してください。

実装手順

Azure Functions でサーバーレス テクノロジを正常に実装するには、次の操作が必要です。

  • 決定と計画

    アーキテクト技術的意思決定者 (TDM) が、必要に応じて、アプリケーション評価を実行し、テクニカル ワークショップとトレーニングを実施またはこれに参加し、概念実証 (POC) またはパイロット プロジェクトを実行し、アーキテクチャ デザイン セッションを実施します。

  • アプリの開発とデプロイ

    開発者が、サーバーレス Functions アプリ開発のパターンとプラクティスを実装し、DevOps パイプラインを構成し、サイト信頼性エンジニアリング (SRE) のベスト プラクティスを採用します。

  • 運用の管理

    IT プロフェッショナルが、ホスティング構成を特定し、インフラストラクチャのプロビジョニングの自動化によって将来のスケーラビリティに対応し、事業継続とディザスター リカバリーの計画によって可用性を維持します。

  • アプリのセキュリティ保護

    セキュリティの専門家が、Azure Functions のセキュリティの要点を処理し、ホスティングのセットアップをセキュリティで保護し、アプリケーションのセキュリティ ガイダンスを提供します。